EDA365电子论坛网

标题: ARM异常处理程序 [打印本页]

作者: zxcvbvbnmn    时间: 2021-4-25 13:27
标题: ARM异常处理程序
实验目的:
2 ?/ y& Y% \  D  q4 a: d0 J3 Z掌握ARM异常处理过程。" I+ t' ]( U! g$ |  R$ Q
理解SWI程序的结构。  C: C1 s# k+ U% v- M/ G
掌握从应用程序中调用SWI异常的方法。1 S/ H) j* M5 y: j
4 I. h- {& F) u' T) L! R
实验一:使用SWI异常设计字符串输出程序# V! a7 |* C7 s  E% e
本实验利用SWI异常输出字符串“hello world!”,采用ARMualtor方式调试,选用ARM7作为目标处理器。/ n& _: N% t# M* F' W
序号执行指令指令执行后的变化情况
寄存器存储空间
R0R1R2R3SPLRPC0xB0000xCFFC0xCFF80xCFF40xCFF00xCFEC
0----
1
2
3
4
5

, O7 [, _4 w% M8 z
- R4 {+ a7 x5 h& `. A: aSYS_WRITEC EQU &3
* X4 Z# u" F8 f( A9 G: a7 ]/ [7 L5 w) T9 P$ C5 E! t/ c0 A% S, |6 X
AREA STR_OUT,CODE,READONLY1 [0 W1 T2 t6 [) ~
ENTRY
0 W: U( s1 V2 |8 s: G0 WSTART( a& M" D5 `: ^( f1 p0 s
MOV SP,#0xD000
, U" I7 r5 E2 }9 j. k( iMOV R1,#0xB0004 A) Z& v' k8 m# Y. G+ |. t! k; t! y+ W- }
ADR R2,TEXT( w2 U; Z5 K; E0 J
BL STROUT
1 \) F  ^' I+ H1 s' J1 D4 YMOV R0,#0x18& X- U# Q) x9 L! V: ~
LDR R1,=0x20026
5 h1 F5 y. n1 f/ v6 T) K) v  i; \; \SWI 0x123456 ;semihost 软中断调用
4 W. |! ]$ B  ?- [" Q+ T- D
9 R; A# ^- c# d  ]  GSTROUT
  t$ ]( S* b9 o* \# n) l5 t) MSTMFD SP!,{R0-R3,LR}6 v/ p, ~* l* e
CHROUT! H/ \4 k0 k  N* U8 y
LDRB R3,[R2],#1% k* R" r! Q8 f
CMP R3,#0
/ R- h# I; D' b' N2 D5 h. D! `; tSTR R3,[R1]+ _5 |2 R- ]- K1 ?
MOV R0,#SYS_WRITEC
, R9 n2 A! S- d6 G' n# U# USWINE 0x123456
0 a1 o! a1 s; g" z5 p3 P6 E# ~9 s& fBNE CHROUT  T) g; ~7 N+ b
LDMFD SP!,{R0-R3,PC}# o! z) `$ O4 g- E* O
% o* c1 x/ E6 F1 Y, @
LTORG
& W" m; F* p* c( _TEXT DCB "Hello World!",0x0a,0x0d,0x0
  H3 N2 V; o3 G" O% UEND& U- X, N6 A0 w8 }+ A% {- r
& w: Y! I& b) F& ~8 _# f
+ x2 K3 X' k, c, H6 o$ t

* d. i+ T) i2 B( u: X6 x6 z3 o2 W9 V* g4 h# z0 z6 c2 ]
0 ~% E4 p. {- s
实验二:设计SWI异常处理程序(ARM9)/ Z" C1 ^5 f' p& T6 g; H- Q
本实验设计的SWI异常处理程序分为两级:第一级SWI异常处理程序获得SWI的功能号,由汇编程序实现;第二级SWI异常处理程序完成具体的SWI异常操作,由c程序实现。4 s7 [2 E+ F) K1 Q4 l
阅读程序,画出程序间调用的结构图。9 Y8 ^( Q; H5 h. @$ M

作者: twel2e    时间: 2021-4-25 16:08
ARM异常处理
, _" F) ~( V8 d0 Y! y




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2