【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了!!!

 

 

 

 

 

 

 

 

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM