打印
[ZLG-ARM]

关于IAP应用(AN070701)的疑问?

[复制链接]
2028|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
astudent|  楼主 | 2009-4-29 09:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
文档中提到的方法,似乎没有实际应用价值。因为从文档的描述看,只能更新用户代码区的RO部分,RW、ZI部分等并没有更新,这样显然意义不大。因为,假若用户代码做更新,重新编译后,RO部分会变化,RW、ZI部分也会变化。

不知道说得对不对?

假若说的对,那有没有有实用价值的自己写BOOTLOADER实现程序升级的思路?

相关帖子

沙发
roger_lj| | 2009-5-12 17:27 | 只看该作者

这个问题不错

这个问题问的好, 涉及到了很多问题. 我这里抛砖引玉, 大家来指正.
1, 一般来说, 烧写在FLASH里的代码是RO+RW, 所谓的更新代码也就是把新的RO+RW烧写进去.
2, 烧写好用户代码后, 要保证用户能正确运行, 必须初始化RW+ZI(RW复制, ZI清零), 这个是用户程序的职责, 如果你使用keil, 调用__main会自动完成这个工作, 然后跳转到用户主程序main.
3, bootloader一般用来更新全部用户或部分用户代码, 当然, 它也只是更新RO+RW部分, 至于初始化RW+ZI, 那就是你刚刚更新的代码的工作了.
参考资料<ARM体系结构与编程>

使用特权

评论回复
板凳
ictty| | 2009-5-14 13:17 | 只看该作者

看看

使用特权

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

本版积分规则

41

主题

509

帖子

0

粉丝