看了ne64代码,中断函数有两种写法 ,一种是通过
void ( * const vector[])() = {
ISR_Empty, // ff80 (reserved)
ISR_Empty, // ff82 (reserved)
} 这种方式来写,例外一种 写法是这样的
__interrupt 7 void isrRTI(void)
对于7为什么就对应着时间中断函数呢,搞不清楚,到网上找了一下,明白一下这种情况
主要是在S12 DATASHEET里 没有表明 其中断向量号
可能会给初学者带来一些麻烦
从RESET 为0 算起 以后递增
中断的服务程序的写法有一下几种
1.interrupt关键字+中断向量号+isr函数
2.interrupt关键字+isr函数(isr在prm中VECTOR ADDRESS 映射)
3.#pragma TRAP_PROC声明(isr在prm中VECTOR ADDRESS 映射)
4.interrupt关键字+isr函数(isr在vector.c文件中定义函数指针数组 映射)
vector.c文件我只有在用PE的时候才能看到....
再看看ne64的头文件,终于明白了怎么回事
#define VectorNumber_VReserved9 9
#define VectorNumber_VReserved8 8
#define VectorNumber_Vrti 7
#define VectorNumber_Virq 6
#define VectorNumber_Vxirq 5
#define VectorNumber_Vswi 4
#define VectorNumber_Vtrap 3
#define VectorNumber_Vcop 2
#define VectorNumber_Vclkmon 1
#define VectorNumber_Vreset 0
或者看下面这个blog,他写着比较详细
文章评论(0条评论)
登录后参与讨论