在mini2440光盘中,提供了一个逻辑程序。其中2440init.s函数对异常进行了处理,分析IRQ处理部分,没有发现有从IRQ模式返回之前模式的操作。IRQ中断操作如下:
IsrIRQ
sub sp,sp,#4 ;reserved for PC
stmfd sp!,{r8-r9}
ldr r9,=INTOFFSET
ldr r9,[r9]
ldr r8,=HandleEINT0
add r8,r8,r9,lsl #2
ldr r8,[r8]
str r8,[sp,#8]
ldmfd sp!,{r8-r9,pc}
麻烦大家帮忙分析下,谢谢