打印

avr Bootloader

[复制链接]
2289|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
EEstudy|  楼主 | 2009-5-7 20:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 我的升级思路是:从应用程序区接到升级命令后,通过跳转指令跳转到boot区执行升级.升级成功后,从boot区退出跳到应用区的开始处执行应用程序。


请问在这个过程中,应用区和boot区的变量是否会互相影响到呢?avr是怎样处理这种事情的呢?还请各位爱玩单片机的朋友出来讨论讨论!指教指教!

相关帖子

沙发
ayb_ice| | 2009-5-7 21:24 | 只看该作者

升级成功后软件强制复位即可

使用特权

评论回复
板凳
EEstudy|  楼主 | 2009-5-7 21:52 | 只看该作者

强制复位


那你的意思是有影响了,强制软复位的话,RAM中的数据是不会初始化的。

从boot区用语句asm("jmp 0x0000")跳到应用区后,那么boot区里变量和宏定义是否会影响到应用区里的某个变量和宏定义呢?

使用特权

评论回复
地板
John_Lee| | 2009-5-8 02:40 | 只看该作者

bootloader程序和应用程序应该设计为互不相关的

不管是从application跳到bootloader,还是从bootloader跳到application,整个ram都归当前程序使用,不要考虑以前的bootloader或application在ram中留下了什么东西,使用ram前初始化就是了(.data和.bss),一切按规矩来。

那你的意思是有影响了,强制软复位的话,RAM中的数据是不会初始化的。

难道你的程序没有初始化ram?因为软件复位和硬件复位对程序是同样的逻辑。

使用特权

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

本版积分规则

8

主题

15

帖子

0

粉丝