MSP430F5438A中断向量存放在Flash和RAM的问题!!!

2019-03-24 10:28发布

本帖最后由 darkduck 于 2015-3-5 10:47 编辑

         我在调试MSP430F5438A的在线升级功能时,遇到如下问题:

         由Datasheet知道,MSP5438A可以将中断向量设置为保存在Flash或者RAM中(SYSCTL寄存器的SYSRIVECT位来控制,如附图所示)。

         为了在Flash不同的BANK区运行中断服务程序, 我将中断向量设置为保存在RAM中,即设置SYSRIVECT = 1

         结果发现程序无法正常运行。

         通过仿真,跟踪代码发现,当程序运行到使能全局中断 __bis_SR_register(GIE); 之后,


         PC跳转到0x0000,接下来执行到0x0004地址时,里面是条跳转指令 JMP     (0x0004),


         程序最后在0x0004这个地址陷入死循环!!!

         同样的程序,如果将中断向量设置为保存在Flash中,即将SYSRIVECT = 1屏蔽,就能够正常运行!
         PS:相关代码见附件

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
1条回答
传媒学子
2019-03-24 12:28
< 不懂。顶

一周热门 更多>

相关问题

    相关文章