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 + -
显示快捷键?