摘要:
首先ARM芯片要中断设置要使能中断向量,然后当有IRQ中断来之后,CPU自动的到0x18地址处取指。0x18处的指令呢是CPU根据中断源算好的(比如:中断EINT4567来了,那么0x18处的指令就是跳转到地址0x30处)。然后就执行“ldr pc,=HandlerEINT4567”这条指令。这条指令的执行结果就是跳转到 “HandlerEINT4567 HANDLER HandleEINT4567”处执行。这条是宏指令,你可以看一下宏定义。执行结果就是跳转到HandleEINT4567处执行。
那么HandleEINT4567处又是什么指令呢?这就要联系44b.h文件的#define pISR_EINT4567 (*(unsigned *)(_ISR_STARTADDRESS+0x74))定义看了。HandleEINT4567处的地址就是“_ISR_STARTADDRESS+0x74”。到此还不知道这个地址对应的指令是什么。
这时候就要去看Target.c文件的中断初始化了,其中pISR_EINT4567= (unsigned) OSEINT4567ISR;这条语句就解释了中断去 阅读全文
posted @ 2010-05-19 21:40 冰灵天堂 阅读(754) 评论(0) 推荐(1) 编辑