STM32F407的RAM调试

最近一直在用STM32F407调试,更改验证时需要频繁的烧写Flash,于是就想试试能不能将程序在线加载到内部RAM中,避免反复擦除Flash。经过baidu得到的方法加上自己试验,终于调通了,现总结一下。

1.首先,新建配置项RAM,专用于加程序到RAM。STM32F407的RAM调试_第1张图片
2.然后设置RAM的具体配置。
2.1 设置程序和数据的下载地址
 
  



STM32F4xx的RAM大小为192KB(112+16+64):

  • 112KB和16KB的起始地址为0x2000 0000,通过AHB总线访问

  • 64KB的起始地址为0x1000 0000,只能通过CPU直接访问。STM32F407的RAM调试_第2张图片
2.2 在Linker中确保使用的是Target中设置的映射方式STM32F407的RAM调试_第3张图片
2.3 添加初始化文件,保存为RAM.ini,并保存到工程所在目录中
STM32F407的RAM调试_第4张图片

 
   
   
  
2.4 仿真器下载地址的配置

STM32F407的RAM调试_第5张图片STM32F407的RAM调试_第6张图片

 2.5 定义中断向量宏

STM32F407的RAM调试_第7张图片

2.6  在文件system_stm32f4xx.c中,去掉#define VECT_TAB_SRAM前面的注释,据说这样可以使用中断,我没试过

STM32F407的RAM调试_第8张图片

设置完成后,全部编译一遍,然后点开始调试按键,将程序加载到RAM中,程序开始运行。

PS:注意RAM.ini中load *.axf 文件的路径要设置正确,如果出错程序无法进入main函数,运行异常,这在调试信息里可以看到。

 
 

你可能感兴趣的:(STM32)