微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM异常处理程序

ARM异常处理程序

时间:11-21 来源:互联网 点击:
实验目的:
掌握ARM异常处理过程。
理解SWI程序的结构。
掌握从应用程序中调用SWI异常的方法。

实验一:使用SWI异常设计字符串输出程序
本实验利用SWI异常输出字符串“hello world!”,采用ARMualtor方式调试,选用ARM7作为目标处理器。
序号执行指令指令执行后的变化情况
寄存器存储空间
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 软中断调用

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




实验二:设计SWI异常处理程序(ARM9)
本实验设计的SWI异常处理程序分为两级:第一级SWI异常处理程序获得SWI的功能号,由汇编程序实现;第二级SWI异常处理程序完成具体的SWI异常操作,由c程序实现。
阅读程序,画出程序间调用的结构图。(11.4)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top