硬件中断向量表本身是被保护的,如果想要修改,必须要打开控制寄存器MPUCTL0中的MPUSEGIE。
然而问题来了,当我将中断向量表里由少到多的写入中断时,比如本身只有一个通信A0,然后我加入了定时,管脚等中断,这个时候新加入的中断是可以使用,跳转到复位中断向量,
程序运行正常的。
然后,当我将中断恢复FF,也就是删除中断后,跳转到复位中断向量,程序便跑飞了。
我在修改中断前已经DINT了中断。
硬件中断向量表的修改我还不是很熟,是需要在修改的时候注意哪些寄存器的使用吗?
求大神解答
灰小子:
没见过直接修改中断向量表的。。。
中断的使用可以参考ti提供的例程,都在msp430ware里。
Susan Yang:
是的,MPUCTL0控制寄存器里的MPUSEGIE 控制着中断向量表的修改。另外MPUSAM也得打开您要修改的部分
Chauncy Li3:
回复 Susan Yang:
三部分我都开了读写。但是我发现其实是我的一些中断是我的引导程序通过bootloader写入新的程序然后开启的,当我跳回引导程序又强行再把这些中断写成ff,导致程序跑飞的。实际上我的中断一经开启,就没再关闭了。我想问一下,如何能关闭自己不要的中断呢,就是不执行这些,形成中断部分开启,部分关闭。还是说我必须在程序里在修改中断之前,关闭自己的中断使能?
Chauncy Li3:
回复 Susan Yang:
MPUSEGB1、B2如果我不进行分配的话,默认是什么呢?还有15:0啊一些的,我也有点看不太懂,这个比例是什么意思呢?