|
Hercules 的TMS470的中断优先级配置
[复制链接]
由于TMS470 系列 是属于M3内核的 这个上手会比较快点的哦
中断优先级配置的分享如下
1. CHANCTRL01寄存器中的改动,现在把compare2 (中断6)放在了第4号中断源处;compare0 (中断4)放在了第6号中断源处。
2. 在vim_table中,也要做相应的修改,让第4号和第6号中断,分别对应rtiCompare2Interrupt和rtiCompare0Interrupt。
3. 打开中断嵌套(NVIC_enable();)
4. 在rtiCompare0Interrupt();中,打开rtiCompare2Interrupt的响应,并且进入无限循环。
5. 在rtiCompare2Interrupt();中设置断点,并可以观测到PC进入该断点, 这意味着本来优先级更低的rtiCompare2Interrupt中断,现在可以打断正在执行的rtiCompare0Interrupt中断了。也就是说,两个中断的优先级顺序发生了改变。
所有中断的默认映射和优先关系(排在前面的优先级高)。这个关系是可以随意设置的,设置方法就是修改CHANCTRLx寄存器。
只要把您需要的几个中断按照优先级在这个映射表中排序就可以了。
比如说,映射表中,默认的优先级是RTI-0(4) > HET-0(13) > DCAN1-0(22),简单的办法是吧RTI-0的映射位置向后移,移至DCAN1-0后边。
从数据手册可以看到映射区32是reserved,没有使用,那么就把RTI-0放在这里即可。同时也要注意RTI-0所对应的IF, MASK等位也都有相应的变化。
|
|