⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exint_isr.s

📁 杭州立宇泰豪华型44B0开发板
💻 S
字号:
BIT_TIMER0	EQU		(0x1<<13)
BIT_GLOBAL  EQU     (0x1<<26)
I_ISPC		EQU		0x1e00024
INTMSK		EQU		0x1e0000c
EXTINTPND   EQU     0x1d20054
BIT_EINT4567		EQU     (0x1<<21);#define BIT_EINT4567	(0x1<<21)


    AREA |C$$code|, CODE, READONLY
	
	IMPORT need_to_swap_context
	IMPORT EXINT4isr
	IMPORT IrqStart
	IMPORT IrqFinish
	IMPORT _CON_SW
	IMPORT _NOT_CON_SW
    
    EXPORT	EXINT4_ISR
    
EXINT4_ISR
	STMDB    sp!,{r0-r11,lr}      ;=push  lr, r0-r11-->sp

	;interrupt disable(not nessary)
	mrs		r0, CPSR            ; r0=CPSR
	orr		r0, r0, #0x80		; and set IRQ disable flag
	msr		CPSR_cxsf, R0       ; CPSR_cxsf=R0
	
	;End of interrupt
	;(Clear pending bit of INTPEND that don't accessed it.)
	;rEXTINTPND=0xf;		//clear EXTINTPND reg.
	LDR R0, =EXTINTPND
	MOV R1, #0x0f
	STR R1, [R0]
	
	LDR	r0, =I_ISPC
	LDR	r1, =BIT_EINT4567;clr INT_TIMER0 pending bit
	STR	r1, [r0] 
	
	LDR R0, =INTMSK
	LDR R2, [R0]
	LDR R1, =BIT_EINT4567
	ORR R2, R1, R2
	LDR R1, =BIT_TIMER0
	ORR R2, R1, R2
	STR R2, [R0]
	
	BL	IrqStart
	
	BL	EXINT4isr

	BL	IrqFinish
	
	LDR		r0, =need_to_swap_context
	LDR		r2, [r0]   ;ldr: memory to register,r2=need_to_swap_context
	CMP		r2, #1
	LDREQ	pc, =_CON_SW;if equal,then switch context
	LDR     pc, =_NOT_CON_SW
    
	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -