3.2.2 中断处理程序
函数通过 interrupt 属性标记为中断处理程序函数。
默认下,KF32 编译器已将中断向量表转为中断向量配置文件(vector.c 或vector.asm)。可根据喜好修改文件中对应位置的符号为函数名,或修改对应符号为自定义中断处理函数名。示例如下。
如 T1 中断的入口地址被配置为“.long _T1_exception”,则其中断处理程序写为:
void __attribute__((interrupt)) _T1_exception (void)
{
}
或用户修改中断向量配置文件将_T1_exception 修改为自定义函数名。
KF32 中断处理函数必须遵守下列规定:
1、返回的数据类型必须是 void;
2、不能有参数;
3、必须使用__attribute__((interrupt))声明;
4、函数地址必须与中断向量一致,即函数名称必须与 vector.c 文件中指定位置的向量名称一致;
5、既可以被中断处理程序访问也可以被其他函数访问的全局变量应定义为volatile;
6、中断入口会自动保存寄存器(R0、R1、R2、R3、R4、R13),并在中断返回时恢复;
7、使用的中断必须建立该中断函数,否则芯片将运行错误。
|