stm32iap跳转后停留在boot

stm32iap跳转后停留在boot,第1张

1、检查代码跳转方式是否正确:IAP程序为了跳转到bootloader中,使用函数指针+汇编指令的方式进行跳转,这样可以保证代码跳转的正确性。需要检查跳转代码中是否有误,确保可以正常跳转到指定的ROM段。

2、检查内存布局是否正确:在跳转前,需要确保在IAP和bootloader两段程序之间有足够的空间,以免跳转后出现内存溢出等问题。需要检查bootloader程序所在的ROM段以及可以被复制和更新的数据段是否设置正确。

在线编程目前有两种实现方法:在系统编程(ISP)和在应用编程(IAP)。ISP一般是通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程,而IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将控制从一个存储体转向另一个。ISP的实现一般需要很少的外部电路辅助实现,而IAP的实现更加灵活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序来编程内部存储器。

使用仿真器烧写app并且仿真是直接运行的app,没有经过IAP跳转。掉电后重新上电运行app则要通过IAP进行跳转。

说白了,那你的IAP存在bug,多半是逻辑上的,自己在IAP里面多看看吧,找找原因。

以上就是关于stm32iap跳转后停留在boot全部的内容,包括:stm32iap跳转后停留在boot、IAP的与ISP区别、Stm32里用IAP方式烧程序正常,但是发现掉电再上电之后,程序好像就不进主程序了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10073551.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存