共3条
1/1 1 跳转至页
请问:I_ISPR中是否有可能同时有几位被置成1?

感觉如果I_ISPR中同时有几个bit被置1,那么采用非矢量中断模式来裁决哪个中断发生,看s3c44box的Datasheet推荐的代码,好像是优先级最低(ADC)的那个反而具有最高的优先级。
代码如下:
IsrIRQ
sub sp,sp,#4 ; reserved for PC
stmfd sp!,{r8-r9}
ldr r9,=I_ISPR
ldr r9,[r9]
mov r8,#0x0
0 movs r9,r9,lsr #1
bcs %F1
add r8,r8,#4
b %B0
1 ldr r9,=HandleADC ; 以ADC为基址
add r9,r9,r8
ldr r9,[r9]
str r9,[sp,#8]
ldmfd sp!,{r8-r9,pc}
. . . . . .
HandleADC # 4
HandleRTC # 4
HandleUTXD1 # 4
HandleUTXD0 # 4
. . . . . .
HandleEINT3 # 4
HandleEINT2 # 4
HandleEINT1 # 4
HandleEINT0 # 4 ; 0xc1(c7)fff84
共3条
1/1 1 跳转至页