stm32 iap 程序跳转进入硬件异常 hex合并

本文记录了在STM32F103RET6上进行IAP过程中遇到的问题,即在跳转到APP时出现硬件异常。经过分析发现,原因是BIN文件的最后部分代码未能正确写入Flash。解决方案是调整Bootloader程序中指针的处理,以确保完整写入。同时,文章探讨了如何合并BOOTLOADER和APP的HEX文件,以兼容不同的ISP工具。通过删除BOOTLOADER HEX文件的最后一行并附加APP HEX,使得两个烧录工具都能正常工作。
摘要由CSDN通过智能技术生成

工作多年,常常觉得自己遇到的问题及解决办法,时间稍长,就容易遗忘,且没地方查。再者,经常看别人的文章,受益匪浅,自己也有些经验,却从来没有分享出来,深感惭愧。工作忙不是好借口,今日开始开博,不为别的,只为记录、备忘,以及解决其他人可能遇到的相同问题顺利找到解决办法。

问题:

stm32f103ret6上做的IAP,仿真调试阶段没有遇到过问题,外场使用就发现不能跳转到app,且不同板子、不同isp等都可能出现这种问题

解决:

直觉上是有规律的,一直找规律,经过一天试验、跟踪、bin代码对比,终于发现bin的最后一部分代码没有成功写入flash。

进一步分析iap的bootloader程序,果然最后不够整页的代码写入时指针不对,在已写入的区域,由于有代码且没擦除,不会执行编程操作,对已写入的部分没有影响,但是最后一部分程序丢失,当app启动运行时pc指针0xFFFFFFFF,进入硬件异常,修正指针后正常。其实增加写入代码验证会更利于debug。


附加问题:

1、bootloader、app是采用flash_loader_demo_v2.8.0,分两次写入flash

2、使用mcu isp可以使用网上的一个批处理文件合并之后,下载,也能运行

copy /b .\bootloader.hex+.\app.hex *-hb.hex

效果就是把app.hex拷贝到bootload

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值