嵌入式技术william hill官网
直播中

而无返还

8年用户 1224经验值
擅长:光电显示
私信 关注
[问答]

求解,把Bootloader和app合并成一个固件后出现的几个问题

各位大佬,大家好,我想把Bootloader和app合并成一个固件,但是目前出现问题了,请大家不吝赐教。几种情况如下:
1.单独用J-flash烧录bootloader,然后用RT Studio烧录app一切正常。
2.单独用J-flash烧录bootloader,再用J-flash烧录app,出现问题,bootloader的起始地址为0x8000000,app起始地址为0x08008000。
1.png

这样烧录后,程序从bootloader跳转到app后出错了,如下:
2.png

3.单独用J-flash烧录bootloader,然后用RT Studio烧录app,然后用J-flash读出整个芯片程序,然后再通过J-flash烧录后运行,出现跟2一样的问题。

以上问题,请大家帮小弟看看什么原因,谢谢了。

回帖(2)

五斤麻辣油

2023-9-7 18:28:30
利用Windows脚本,可以手动双击合并;或者链接到编译器,编译完自动执行合并Boot和App(IAR验证过支持)。
举报

陈勇

2023-9-22 09:33:33
可能的原因是固件合并后,app的起始地址与bootloader的起始地址有重叠导致程序出错。应该在合并时注意调整app的起始地址,使其不与bootloader重叠。你可以考虑将app的起始地址调整为0x0800C000或0x0800E000等,避免与bootloader冲突。同时,合并时还需注意将app的vector table正确转移到新的起始地址,否则也会导致程序出错。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分