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

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2013-08-06 19:31  望月追忆  阅读(3984)  评论(0编辑  收藏  举报