|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
实验目的:
! X$ o+ v# D3 R掌握ARM异常处理过程。
. C _1 l" V% N3 j理解SWI程序的结构。
! `- ] q5 z% O) A$ j1 ?掌握从应用程序中调用SWI异常的方法。
9 A8 Q$ G9 B4 `5 K& [/ d8 r; d+ _
/ L2 M1 k2 b) s5 z: i, F- S实验一:使用SWI异常设计字符串输出程序
! ~3 L; X* {2 J8 ?& @本实验利用SWI异常输出字符串“hello world!”,采用ARMualtor方式调试,选用ARM7作为目标处理器。" J6 f/ I+ D* R0 C5 Y; w
| 序号 | 执行指令 | 指令执行后的变化情况 | | | 寄存器 | 存储空间 | | | R0 | R1 | R2 | R3 | SP | LR | PC | 0xB000 | 0xCFFC | 0xCFF8 | 0xCFF4 | 0xCFF0 | 0xCFEC | | 0 | ---- | | | | | | | | | | | | | | | 1 | | | | | | | | | | | | | | | | 2 | | | | | | | | | | | | | | | | 3 | | | | | | | | | | | | | | | | 4 | | | | | | | | | | | | | | | | 5 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - X2 D8 C `8 n) y E2 F; z
; k$ R* Z# a% ~; D
SYS_WRITEC EQU &3
2 A! l8 J5 G _& U* s5 l* s: f& W
AREA STR_OUT,CODE,READONLY
+ J; T2 E, o8 o, O! m/ q9 k' EENTRY
+ _2 L8 o8 _7 G/ |3 a( RSTART
, {% \8 \" K9 t9 XMOV SP,#0xD000. N# A! i/ a9 e, I: C$ b0 c4 s
MOV R1,#0xB000: Z! H. ?2 i3 E$ k t
ADR R2,TEXT
8 B/ b/ Q6 m% |- ZBL STROUT+ U$ D) _( B3 [" a7 O, r
MOV R0,#0x18
! Q( w0 m( M" ]( \+ s; ^% \5 ^LDR R1,=0x20026) N" n: t2 s; G: ~" G/ M
SWI 0x123456 ;semihost 软中断调用
+ X3 C8 e1 K8 K$ y+ r# i. k+ Z! g7 _9 o7 `2 u
STROUT; g5 |8 S% {7 j& I- _: `; c1 u
STMFD SP!,{R0-R3,LR}6 U! |! J$ f1 D* Y
CHROUT
( U5 N- T0 ]& ~0 Y* n0 `LDRB R3,[R2],#1* y: ?: d0 o6 v" }4 b
CMP R3,#04 k4 K+ k6 C7 T+ |8 e( _( {
STR R3,[R1]
: g$ Y* v% \6 g% r+ h( n' Q7 F$ ^MOV R0,#SYS_WRITEC. q2 [, W! ^( I' ]# u4 Y3 c6 } T
SWINE 0x123456- V7 t. A5 d; B: x$ E" e3 t
BNE CHROUT
* ?) z8 L, ^" U8 }( t5 _LDMFD SP!,{R0-R3,PC}" }7 ^3 x8 l4 \! y1 V6 B* B
5 u( A; A5 O b7 f' `8 JLTORG
, R6 R# z1 e1 i& [5 ~TEXT DCB "Hello World!",0x0a,0x0d,0x0
$ [% B% W6 W [8 lEND D7 E8 P) `; V1 d( Q+ N6 W O6 v
( i# W R l$ X: @& Y7 Z
+ r( N0 Q$ a$ ?" w1 v/ j4 W" G; B! p, E3 V3 _# J# C
* o3 u% k+ {* j5 O- C; D: L9 |4 D& I2 ?! |/ O, `# Z
实验二:设计SWI异常处理程序(ARM9)" h" n; o. ?) X' }% K6 N2 e
本实验设计的SWI异常处理程序分为两级:第一级SWI异常处理程序获得SWI的功能号,由汇编程序实现;第二级SWI异常处理程序完成具体的SWI异常操作,由c程序实现。$ ?" O8 ? `9 k
阅读程序,画出程序间调用的结构图。9 k2 a: X+ I+ t3 y( G6 ` c0 z/ b
|
|