分类:
2010-05-31 16:21:55
interrupt属于非标准的关键字。
C/C++编译器通过interrupt关键字扩展了C语言。这个关键字用来指定一个函数应该被看成一个中断函数。
处理中断的函数要求特殊的寄存器保存规则,增加一些特殊的返回序列(return sequence).当C/C++代码被中断时,ISR必须预先 保存 所有会被ISR用到的寄存器的内容。被ISR调用到的函数的寄存器也要保存的。
当你使用interrupt关键字时,编译器会按 ISR 函数要求的寄存器保存规则 去保存寄存器,然后生成一些特殊的返回代码序列(return sequence)
ISR必须这样定义才能使用interrupt关键字:
interrupt void myISR(void)
{
unsigned int flags;
...
}