关于在SRAM中调试程序的方法,网上已经有很多**说明,野火的《零死角玩转STM32-F429挑战者》第52章“在SRAM中调试代码”讲的尤其清楚,并且最后介绍了如何在不设置BOOT引脚为SRAM启动时如何在SRAM中调试的方法,感谢野火的分享;
但是如果不设置为SRAM启动,在调试界面点击复位时,无**常复位,原因是ARM检测到启动模式是FLASH,从地址0x08000000获取SP的初始值,从地址0x08000004获取PC的初值,这里面的值对于当前在SRAM中调试的程序来说是无效的,所以复位之后不会执行SRAM中的程序;要想实现正常的复位,笨的方法是重新下载点击调试按钮,下载一次程序,但是这样太麻烦,如果可以在点击复位按钮时执行一个操作,将地址0x20000000的值赋给SP,0x20000004处的值赋给PC,就相当于执行了复位,最简单的解决方法是:
在调试界面的命令行处,执行以下语句:
file:///C:/Users/dongyanbo-m/AppData/Local/YNote/data/deru_qq@163.com/b45ec2d1eae84edd9b924e4e704c1e5c/clipboard.png
其实这个语句就是从Debug_RAM.ini中复制过来的,能完成SP,PC和XPSR的赋初值操作,下次执行复位时,将光标定位到命令行处,上下箭头就可以调出这个语句,非常方便。
|