|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
实验目的:
8 u d: p: S* j( u# {/ }掌握ARM异常处理过程。8 \$ w6 R9 ] w' ]$ b
理解SWI程序的结构。
. k& ?: l; D9 T掌握从应用程序中调用SWI异常的方法。
3 H9 l, j$ a: b3 t' F5 f- J0 @+ n9 T/ g
实验一:使用SWI异常设计字符串输出程序
: @0 U/ K' M v2 K0 B2 H o8 z本实验利用SWI异常输出字符串“hello world!”,采用ARMualtor方式调试,选用ARM7作为目标处理器。* p/ m, \+ T5 ]7 Y" S& y( Z
| 序号 | 执行指令 | 指令执行后的变化情况 | | | 寄存器 | 存储空间 | | | R0 | R1 | R2 | R3 | SP | LR | PC | 0xB000 | 0xCFFC | 0xCFF8 | 0xCFF4 | 0xCFF0 | 0xCFEC | | 0 | ---- | | | | | | | | | | | | | | | 1 | | | | | | | | | | | | | | | | 2 | | | | | | | | | | | | | | | | 3 | | | | | | | | | | | | | | | | 4 | | | | | | | | | | | | | | | | 5 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
1 @; G. n) ]5 Y0 D/ ?" }$ K$ F+ }) g7 f8 S% f5 K( l9 _+ S y7 Q3 x
SYS_WRITEC EQU &3
/ a8 q6 q. o) P
$ n/ f7 [1 S' d& ~6 Z1 YAREA STR_OUT,CODE,READONLY
, C1 P: v# q5 BENTRY
; p/ {0 ]$ u- U, MSTART
% N1 H6 ^. r1 H) R2 QMOV SP,#0xD000
6 b1 z/ ^" i3 |6 V; @2 D& jMOV R1,#0xB000& }* ~2 k( y6 j0 l: b
ADR R2,TEXT1 ^2 o7 Y) [) u
BL STROUT
/ s' H# V2 c' NMOV R0,#0x18
! ?) w- k3 z0 @' X" u; aLDR R1,=0x20026
- G$ _# E, [9 e7 ~2 Q! YSWI 0x123456 ;semihost 软中断调用
% {& w1 m6 T y' j6 Q' [7 l; n* u6 V$ R: p
STROUT0 O; f* G: x6 v$ t
STMFD SP!,{R0-R3,LR}- X! K- M3 u: I# H/ u" P
CHROUT
0 z4 f9 V5 F8 g3 M- ^$ N9 kLDRB R3,[R2],#1% R5 S2 p- @7 i6 H u
CMP R3,#0
* `, u: Z1 D" h% D7 f8 Y7 U5 ]; A& O" WSTR R3,[R1]
$ @8 |7 b8 z4 j! H1 g2 E" ^0 bMOV R0,#SYS_WRITEC
1 I S: L* h1 u5 L I" i7 m( \SWINE 0x123456
/ b" T# k$ L5 a/ v- n6 i' r; fBNE CHROUT
- ]7 z) ]/ J; f7 TLDMFD SP!,{R0-R3,PC}
0 O* S, z2 y& T2 z+ m
: Z. c) s% X% ^/ eLTORG; Z, [) x* \+ V
TEXT DCB "Hello World!",0x0a,0x0d,0x0
% E0 I3 E! p7 ^! N: }2 {3 y& YEND
2 `8 T: q% Y# p" {* X6 K" |0 J' e8 F7 ^2 }/ E& {; J
$ D! i! Y# {, V# n: E0 L6 K
$ x, q! u; N. f u* u+ {4 h+ }6 |- p1 t5 @( U) {6 H
7 G4 B; m, u9 P3 Y( V5 H
实验二:设计SWI异常处理程序(ARM9)2 L# s6 N; D/ F7 n( N. ?/ H
本实验设计的SWI异常处理程序分为两级:第一级SWI异常处理程序获得SWI的功能号,由汇编程序实现;第二级SWI异常处理程序完成具体的SWI异常操作,由c程序实现。
+ [# f& O1 F7 ^ J$ V6 Z, m阅读程序,画出程序间调用的结构图。
- R3 |: i- X& w) {" K7 j |
|