ZHCU820Y September 2004 – June 2021
C/C++ 中断例程就像任何其他 C/C++ 函数一样,它可以有局部变量和寄存器变量。除软件中断例程外,中断例程必须声明为不带参数且必须返回 void。例如:
__interrupt void example (void)
{
...
}
如果 C/C++ 中断例程未调用任何其他函数,则只会保存和恢复中断处理程序使用的寄存器。但如果 C/C++ 中断例程调用了其他函数,这些函数可修改中断处理程序未使用的未知寄存器。因此,如果调用了任何其他函数,例程会保存所有调用保存寄存器。(这不包括分组寄存器。)请勿直接调用中断处理函数。
可使用 INTERRUPT pragma 或 __interrupt 关键字,直接通过 C/C++ 函数处理中断。相关信息,请参见Topic Link Label6.11.19和Topic Link Label6.7.2。