TI中文支持网
TI专业的中文技术问题搜集分享网站

bootloader中断-BOOT中断与APP中断共用问题

哪里有关于在BOOT区用了定时中断与UART中断,与APP中断也用定时中断与UART中断的程序范例?

#pragma vector=18__interrupt void intec_9(void)              //{
   asm(" br &0xEFF2;");
}

用以上的方法是没有问题。

但是我在BOOT区若是如下用,就会中断错误。应该怎么写?

#pragma vector=18__interrupt void intec_9(void)              //{

if((ResetVectorValid()==1)&&(UpMode==0))          {
        asm("br &0xEFF2;");
        }

   else if(ResetVectorValid()==0)      {
       ++UpTime10ms;        TACCR0 +=1000 ;                          // Add Offset to TACCR0
    }

}

Maka Luo:

你需要什么样功能,UART中断和定时中断?

chao Fang1:

回复 Maka Luo:

你好,是的,需要在bootloader 里用到UART 与定时器。 有这样的范例?

而且APP里也需要用,应该用怎么样的方法的去实现?我用的芯片是MSP430G2755.

其实还要兼容 bootloader 里I2C 升级,不然光UART 与定时器还是可以不放到bootloader 里去处理的。只有弄明白BOOTLOADER 里中断 与APP中断的问题才能更好的开发。谢谢。

Hardy Zhou:

不理解你指的错误是什么,能把你的代码完整贴出来吗?

才知道ResetVectorValid()的内容是什么, UpMode又是如何定义的?全局变量?

如果UpMode是全局变量,由于bootloader和APP可能会占用相同的RAM空间,会将UpMode的值改掉.

所以建议Bootloader的UART采用查询方式,APP采用中断方式运行

chao Fang1:

回复 Hardy Zhou:

ResetVectorValid()  只是判断地址有没有问题,已经仿真过了,跳转的问题。哎,看来只好自己在仿真,在看汇编了。

chao Fang1:

回复 灰小子:

谢谢,就是参考附件那个文档写的。

赞(0)
未经允许不得转载:TI中文支持网 » bootloader中断-BOOT中断与APP中断共用问题
分享到: 更多 (0)