我想在我的STM32闪存中有两个应用程序,一个基本上是启动,另一个是'主'应用程序.我已经想出如何将它们中的每一个加载到闪存的不同区域,并且在获取内存转储后,所有内容看起来都在正确的位置.
因此,当我进行重置时,它会加载引导,此时所有引导都会跳转到应用程序.调试启动,这一切似乎都正常工作.但是,在我跳转到应用程序之后问题到了,它只执行一条指令(汇编),然后跳回到启动.它应该无限期地留在应用程序中.
我的问题是,我应该在应用程序中"跳转"到哪里?
似乎有一些潜在的点,例如中断向量,重置处理程序,应用程序的主要功能.其实我已经尝试了所有这些没有成功的人.
希望这是有道理的,如果没有,我会更新问题.
谢谢你的帮助!理查德
我在调试器中玩了一个游戏并手动将程序计数器更改为应用程序的主要部分,这很有效,所以它让我觉得我的跳转有问题,为什么程序计数器不能继续运行跳后?
实际上它似乎是PSR,'T'在跳转时被重置,如果我在跳转之后再次设置它继续使用app我想要的
好的找到了一个解决方案,似乎你需要在执行分支时将PC LSB设置为1或者它处于'ARM'模式(32位指令而不是像'拇指'模式中的16位指令.相当一个模糊的小问题,谢谢你让我和你分享!
Richard.. 6
确保跳转到LSB为1的地址.请参阅此站点以获取解释:http://www.embedded.com/columns/beginerscorner/15200241 ? _requestid = 162471
确保跳转到LSB为1的地址.请参阅此站点以获取解释:http://www.embedded.com/columns/beginerscorner/15200241 ? _requestid = 162471