vectoridentify.s
来自「ARM嵌入式系统关于IRQ中断处理基于c语言的实验代码」· S 代码 · 共 64 行
S
64 行
IMPORT interruptVectorListBase
IMPORT osStack
IMPORT int_ICPR
EXPORT vectorIdentify
AREA vectorIdentify ,CODE ,READONLY
nop
nop
ldr r13,=osStack
stmfd r13!,{r14}
ldr r11,=int_ICPR
ldr r4,[r11]
mov r5,#0x80000000
mov r7,#31
handleIdentifyLoop
and r6,r4,r5
cmp r6,#0x0
bne interruptIdentify
mov r5,r5,LSR #0x1
sub r7,r7,#0x1
cmp r7,#0x7
bne handleIdentifyLoop
b handleIdentifyError
;//////////
interruptIdentify
mov r5,r7,LSL #0x2
ldr r11,=interruptVectorListBase
ldr r4,[r11,r5] ;handle routine entry
cmp r4,#0x0
beq handleIdentifyError
ldr r14,=handleIdentifyEnd
;$$$$$
;
mov pc,r4
;
;$$$$$
;;//////////
handleIdentifyError
nop
nop
b handleIdentifyEnd
handleIdentifyEnd
ldmfd r13!,{pc}^
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?