?? irq.s
字號:
;/*******************************************************************************************************
;* 文件名:IRQ.s
;* 功 能:管理中斷嵌套,可通過宏實現(xiàn),在一般情況下無須用到。
;* 作 者:POWER
;* 日 期:2006年5月25號
;* 斯凱科技主頁:www.armsky.net
;* 斯凱科技論壇:www.armsky.net/bbs
;********************************************************************************************************/
NoInt EQU 0x80 ;// Bit7,I位
USR32Mode EQU 0x10 ;// M[4:0]=10000,用戶模式
SVC32Mode EQU 0x13 ;// M[4:0]=10011,管理模式
SYS32Mode EQU 0x1f ;// M[4:0]=11111,系統(tǒng)模式
IRQ32Mode EQU 0x12 ;// M[4:0]=10010,IRQ中斷模式
FIQ32Mode EQU 0x11 ;// M[4:0]=10001,F(xiàn)IQ中斷模式
CODE32
AREA IRQ,CODE,READONLY
MACRO
$IRQ_Label HANDLER $IRQ_Exception_Function
EXPORT $IRQ_Label ;// 輸出的標號
IMPORT $IRQ_Exception_Function ;// 引用的外部標號
$IRQ_Label
SUB LR, LR, #4 ;// 計算返回地址
STMFD SP!, {R0-R3, R12, LR} ;// 保存任務環(huán)境
MRS R3, SPSR ;// 保存狀態(tài)
STMFD SP, {R3,LR}^ ;// 保存SPSR和用戶狀態(tài)的SP,注意不能回寫
;// 如果回寫的是用戶的SP,所以后面要調(diào)整SP
NOP
SUB SP, SP, #4*2
MSR CPSR_c, #(NoInt | SYS32Mode) ;// 切換到系統(tǒng)模式
BL $IRQ_Exception_Function ;// 調(diào)用c語言的中斷處理程序
MSR CPSR_c, #(NoInt | IRQ32Mode) ;// 切換回irq模式
LDMFD SP, {R3,LR}^ ;// 恢復SPSR和用戶狀態(tài)的SP,注意不能回寫
;// 如果回寫的是用戶的SP,所以后面要調(diào)整SP
MSR SPSR_cxsf, R3
ADD SP, SP, #4*2
LDMFD SP!, {R0-R3, R12, PC}^
MEND
;/* 以下添加中斷句柄,用戶根據(jù)實際情況改變 */
;// 例如:Timer0_Handler HANDLER Timer0
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -