1. 如果IE(interrupt enable)置位指令置于中断处理程序外,而且有HALT或STOP指令,则需将这两指令紧跟在IE置位指令之后; 2. CPU响应中断后,在IE重新置位前必须清除IRQ,以防止出现一次中断多次响应的现象; 3. 进入中断服务程序后,会自动Disable Interrupt (IE自动清零),如果太早Enable IE,会有Re-Entry的可能。因此将中断Enable的指令放在最后,必须在Enable IE之后的第二条指令就RTNI结束中断。(两条指令包括RTNI指令); 4. CPU执行完中断开放指令后,在接下来的两个指令周期内,不会响应任何中断; 5. CPU响应中断后,IE各bit位均由硬件清零,IRQ的清零和IE的重新开放则需软件完成。 6. 若需保存某一中断具有最高优先级,在中断处理过程中开中断,会形成中断嵌套,则需在每个中断处理程序中用不同的寄存器保存ACC的值,设计时需防止中断循环次数与程序CALL的层数之和小于MCU的stack层数。
|