Xiangxiang8 发表于 2013-4-8 18:33:52

关于AVR的Bootloader问题,应用区的程序中断后自动重启,求分析

本帖最后由 Xiangxiang8 于 2013-4-8 18:35 编辑

RT,使用Bootloader,Bootloader是用的AVRUBD 4.5版本的,熔丝位配制成复位向量指向Boot区

问题是,下载进去程序后,应用区程序的中断不正常,如果一触发中断,会立即发生复位。。。。

但是如果把熔丝位改成复位向量指向0x0000的话,就立马变成正常了,程序可以正常运行了

求分析,这是为啥。。。

编译环境是GCC   Atmel Studio 6.0

已经在应用程序的一开始加上了       
MCUCR = (1<<IVCE);      // 中断返回0x0000
        MCUCR = 0x00;

还是不行。。。求分析

Xiangxiang8 发表于 2013-4-9 08:35:57

顶帖。。。求分析

tomhe666 发表于 2013-4-9 08:55:00

从bootloader返回到应用程序时,修改中断向量的时间不能超过 4个机器周期,否则修改不成功,一般汇编为两条指令,C语方视写法和编译器的不同,不好确定,请检查反汇编代码确认,不行的话就内嵌汇编吧
页: [1]
查看完整版本: 关于AVR的Bootloader问题,应用区的程序中断后自动重启,求分析