各位TI的大神好,我用的是5438A。
1. 我在 5C00 - FFFF 的flash 空间内存在 两段程序(修改了.xcl 文件)。
2. 其中 程序一(应用程序) 占有 5C00 - DF7F ,占有虚拟中断为 DF80 - DFFF(重定义中断向量表)
3. 再次 程序二(引导程序) 占有 E000 - FF7F , 占有真实中断 FF80 - FFFF,在程序二中虚拟中断向量表(DF80 - DFFF)表给程序一。
4. 两端程序 均使用了 串口中断。程序执行顺序是 : 上电先执行程序二,一段时间后跳入程序一。
5. 程序二中 重定义的中断向量(下面为串口中断)
#pragma vector=114
__interrupt void intec_57(void) // USCI_A0_ISR
{ if(满足跳转条件){ asm ("br &0xDFF2;"); }
.......
.......// 程序二串口中断程序
}
6 程序一 串口中断
#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
{ .......
.........// 程序一串口中断程序
}
现在只知道程序二的串口中断没有问题,但是在进入程序一后,发现串口中断未响应。
1 为什么进入到程序一后,中断没有实现跳转,想知道到底 是哪里的 逻辑 出了问题。
2. 对于串口升级 重定义 向量表 这一块儿 网上说的都很模糊,一笔带过,问题是应用程序根本没进去中断!