打印
[STM32F4]

不设置BOOT引脚在SRAM中调试程序时复位问题解决经验分享

[复制链接]
978|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
deru_qq|  楼主 | 2017-12-7 11:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
关于在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的赋初值操作,下次执行复位时,将光标定位到命令行处,上下箭头就可以调出这个语句,非常方便。

沙发
mmuuss586| | 2017-12-7 12:26 | 只看该作者

感谢楼主分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

132

帖子

2

粉丝