新聞中心

ARM異常處理程序

作者: 時間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
實(shí)驗(yàn)?zāi)康模?br />掌握ARM異常處理過程。
理解SWI程序的結(jié)構(gòu)。
掌握從應(yīng)用程序中調(diào)用SWI異常的方法。

實(shí)驗(yàn)一:使用SWI異常設(shè)計(jì)字符串輸出程序
本實(shí)驗(yàn)利用SWI異常輸出字符串“hello world!”,采用ARMualtor方式調(diào)試,選用ARM7作為目標(biāo)處理器。
序號執(zhí)行指令指令執(zhí)行后的變化情況
寄存器存儲空間
R0R1R2R3SPLRPC0xB0000xCFFC0xCFF80xCFF40xCFF00xCFEC
0----
1
2
3
4
5


SYS_WRITEC EQU &3

AREA STR_OUT,CODE,READONLY
ENTRY
START
MOV SP,#0xD000
MOV R1,#0xB000
ADR R2,TEXT
BL STROUT
MOV R0,#0x18
LDR R1,=0x20026
SWI 0x123456 ;semihost 軟中斷調(diào)用

STROUT
STMFD SP!,{R0-R3,LR}
CHROUT
LDRB R3,[R2],#1
CMP R3,#0
STR R3,[R1]
MOV R0,#SYS_WRITEC
SWINE 0x123456
BNE CHROUT
LDMFD SP!,{R0-R3,PC}

LTORG
TEXT DCB "Hello World!",0x0a,0x0d,0x0
END





實(shí)驗(yàn)二:設(shè)計(jì)SWI異常處理程序(ARM9)
本實(shí)驗(yàn)設(shè)計(jì)的SWI異常處理程序分為兩級:第一級SWI異常處理程序獲得SWI的功能號,由匯編程序?qū)崿F(xiàn);第二級SWI異常處理程序完成具體的SWI異常操作,由c程序?qū)崿F(xiàn)。
閱讀程序,畫出程序間調(diào)用的結(jié)構(gòu)圖。(11.4)


關(guān)鍵詞: ARM異常處理程

評論


技術(shù)專區(qū)

關(guān)閉