STM32程序下载到SRAM调试方法

STM32程序下载到SRAM调试方法

调试程序时,我们通常是把程序加载到STM32的flash,然后调试。因为flash本身的写入次数是有限的,且市面上很多STM32是拆机片,flash的写入次数就是更严重的问题。 下面介绍的方法,在调试时,程序下载到ram运行。调试完成后,程序再写入flash正式发行。因此给项目设定了2个编译选项。 Project manager里面增加一个编译目标选项。如led表示正式的发行编译方案,SRAM表示调试编译选项。

把RAM空间切分成两部分,第一部分模拟ROM存储代码,第二部分作为RAM使用。切多大呢?保险的话查编译输出,Code+RO-data需要放ROM里面,划分的ROM空间要大于这个数。也可以按照经验,对半砍,保险的话,按照上述方法进行确认。

空间切分好之后,把参数写入Options的Target页,IROM要用RAM的起始地址,按照第1步划分的大小填写。IRAM空间紧接其后。

记住output页设定的执行文件的路径和名称,方框里面的内容

**C/C++**页面,Define需要加VECT_TAB_SRAM宏,中断向量搬移到SRAM

debug页面,不要选择Load Application at Startup。在Initialization File添加文件,文件名随意。文件内容参考下面的内容

FUNC void Setup (void) { SP = _RDWORD(0x20000000); //设置堆栈指针 PC = _RDWORD(0x20000004); //设置PC指针 _WDWORD(0xE000ED08, 0x20000000); //设置中断向量表地址 }

经验分享 程序员 微信小程序 职场和发展