【1】STM32 Debug in RAM 在RAM中调试STM32 !!!
1.确定自己芯片的RAM起始地址和大小,例如我用的神舟王STM32F1底板
CPU为STMF103ZET 包含 64K RAM:0x2000 0000----0x2000 FFFF。
2.重新划分RAM
我将64K RAM分成两部分 48K(0xC000)用来当做Flash,16K(0x4000)当做RAM
3.Debug设置
4.CpuRAM.ini文件内容
------------------------------------------------------------------------------------
FUNC void Setup (void) {
SP = _RDWORD(0x20000000); // 设置堆栈指针
PC = _RDWORD(0x20000004); // 设置PC指针
_WDWORD(0xE000ED08, 0x20000000); // 设置中断向量表地址
}
LOAD obj\My_STM32F1.axf INCREMENTAL // 装在代码到CPU内部RAM (工程选择就不要选 Load Application ar Startup)
Setup(); // 再调用Setup函数修改堆栈指针和PC指针 因为SP的值要从目标代码中读取
g, main // 运行到main函数
------------------------------------------------------------------------------------------------
4.下载部分设置
点击Seting,删除里面的器件编程算法
至此设计就完成了,点击debug按键就可以在RAM中调试了。
5.如果要在RAM中调试中断还要如下定义 VECT_TAB_SRAM
6.在main的最开始加一句:NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
7.最后记得把硬件启动模式也改了 在CPU中调试就OK了!!!