ARM与嵌入式技术实验报告专业班级:10通信工程1班姓名:万洁学号:100103011125实验日期:2013年5月28日指导老师:郑汉麟1、 通过实验掌握ARM 指令的特点和寻址方式;2、 掌握简单的ARM 汇编语言的程序设计;3、 了解集成开发环境 Embest IDE 及其开发软件的应用;、实验环境Embest IDE 应用于嵌入式软件开发的新一代图形化的集成开发环境,它包括一套完备 的面向嵌入式系统的开发和调试工具。
其开发软件 Embest IDE for ARM 是集编辑器、编译 器、调试器、工程管理器( projectma nager )于一体的高度集成的窗口环境,用户可以在Embest IDE 集成开发环境中创建工程、编辑文件、编译、链接、运行,以及调试嵌入式应 用程序。
三、实验步骤1)新建工程:运行Embest IDE 集成开发环境,选择菜单项 File 宀New Workspace ,如图一,系统弹出一个对话框,键入文件名“ wj ”,如图二,点击 0K 按钮。
将创建一个新工程,并同时创 建一个与工程名相同的工作区。
此时在工作区窗口将打开该工作区和工程 .。
(老师提醒:不要放入Bin 文件夹中)■ Emb«t QE Pre 亠 Educat「販]£dii_VwwBuid frtbug D if** Qri+W 诊 Open-"Qrl*O2)建立源文件:点击菜单项 File T New ,如图三,系统弹出一个新的文本编辑窗,输入源文件代码。
编辑完后,保存文件“ wj.s ”后缀,如图三,四。
Hr*Open Workspace.・图一■■ rflJO IUU rl jil rd f rfl,rlClop: h Ho. .end图tut vUrl:3)添加源文件:选择菜单项Project T Add To Project Files,在工程目录下选择刚才建立的源文件.s 后缀文件,如图五,图六,图七。
Project Build Debug Took Window Help图五:-43 Workspace 'w]I: 1projectfs) ^1 @ wj files口Project Source Files ■-LJ Praject Header Files -“禺VI].s图七4)基本配置:选择菜单项Project T Sett in gs ,弹出工程设置对话框。
在工程设置对话框中。
①选择Processor设置对话框,按照图八所示,进行配置:岸切F<eiTb4jifc U ebum LSil-rE4:l«irv Compiler |emb *图八②选择Remote设置对话框,按照下图九所示,进行配置:P E V DCCSI-S ur l-lC O E bug Dire c.Vnvv' C ompller ! 4I^IrviAfvii?L vriibe wl. ¥-4miFl»lur fur AUMfV1TF:&>ipiE E <t :JC<*rrai iiu nlEJkilio m type:I f i.<Rsr«ilei FM?rl!* LJ^I I u>ia图九Active Projed图六S-upiflniirV tor■■■■Ml#* I i*il c 1 n dllArifHife-g t »nBuilding project: wj arm-elf-as -gdwarf-^ F !\ARH\Ex3iiples\uj\wj -o Adebugkuj .o arn»-elf'Id -o .elf ,\*iebug\w j .0Cominandf?) ^uccessftilltj executed ・图十④选择Project T Settings Debug设置对话框,按图^一,十二,十三所示,进行配置:图十图十二图十三---- - ------ - ----- Auiltlznq project: 刖 j -------------------- □rn -elf-a5 -gdwarf2 F;\ARH\Esc0iipiT :5\切j\wj ・s ~o \debug\T>] .o arn-elF-ld -oAdebugXwj .elF.oConmand (5) successfully executed ・5)选择菜单项Debug T Remote Connect 进行连接软件仿真器,将存储器地址改为0x1000 ,如图十五,执行 Debug T Dow nload命令下载程序,并打开寄存器窗口。
打开memory 窗口,按F10进行单步跟踪,观察寄存器的数据变化并分析。
Address:R15; 0x09001608SP : QxnOOOOHBQLR :馭0卿0朋凹PC : axUOOOl0d8 £PSR: 9K0SS38Bd3H»Ur»p inMU 广1. Bl*上J<:add产・;尸0“ ifH ;■ ftE 1 ■•:i^atMiBin%-HikIWf Ff FF _15*law4kV«fffffF 3--:4KD^ID1CiHinu a-:<jw-n*fi=i*i<w転0啊H 0 ■宅 # m : c^Mtotkoe^ —f HZ : iKiMiinDiHia Rofliictiir |A PferipherHl |按照老师所说的,将源程序的 add r0,r0,r1中的add 改为adds ,并设置 R0, R1分别为 0xffffff88和0x000000aa 再次观察,得到如下结果:noynoDhUdUUl 0^4 ndul jri! m vrfi 』叽rd asx joeel esc b 0x180c tH 00001818 nv CxMFfrFFF 9XUOO Q1 Bl ft ^ui nv QxDOFf^FFffiMaoDQiais ^.llK RtJ flxDQFfFFFfS M BOBQI 01C SUlllilUflxBaFfffffsuinu BxtVFfFFFFSXUU&U1 昨i suilnui U5{口叶"HHb AxnDQOIQ7S nv GxfiftffFFff 0^89001 B2t syimv QxOOffffFfHMHHHH1 Md IIcninu 収朋4“卜44 图十五 d E13: '* R15 : 第SP: 0 LR : 9xonn0nooo d PC ! 00001 99c 0 EPSR: 0x2DUa0ad3 d SPS«: OXOOHO0O0O — I ■尸科 u —四、实验内容:1.(原题目第二题)编写程序将 R2的高8位传送到R3的低8位(不考虑 R3的其他位) 源程序: .global _start .text _sta 比 mov r2,#0x66000000mov r3,#0x88000000 and r0,r2,#0xff000000 andr3,r3,#0xffflff00 orr r3,r3,r0,lsr #24 stop: b stop .end /*把第一个立即数送进 r2*//*把第二个立即数送进 r3*/ /*取r2高8位到rO*/ /*r3低8位清零*/ /*r0逻辑右移24位后与r3相或,结果送进r3*/ 调试结果:nuu r2, 11711276092HH NUMMI ANilnnw rO p sdlldr 叭池、11-1*777216 foafiacifflai bitr3 , r3, 弓写khcHUHMtHMiierr , r :[, rB, \sr 斗” ftKOOOOlOl^ 13 OK 1014OKlMDIOIfl buji nuDxQBfFf Fff HKMUHHiriC强inu UMHUIIf FFF O K «0BO1(^Sswin^ONOOFfFFFFflsaeantfli?& ^uii nu D>:iOftFfFFf1=ihcuaatHH&'A <?; wi nu ff FFF①Download 下载: ----- -------- ------ —Builrting proj«t T wj? --------------------------arnrciF-as -gtluarfa F:\.ARM\Bln\wj2Awj2.s -□.\dobug\uj2.o J flddress:M 2 *a *1 +2 +3 +^i *»0fl1 BM 64 7ti AH £3 ?? F$.." nouuioK 時 AH L3 PF 0^1 "■■■OODOIOtM 02 E2 FF 30 C3 一 .0- nnaniRnr E3 2)0 9C B9 Fl , uu^ui mi4 FE FF FF 1ER FF ..... DOQQI019 FF FF FF FF FFnnaciifriFF fT FF 『F FF ____Ciomanid(s)exrcuted.F 1?_s :tfi- Earning ! end flF file not 白t mdl adirii-HJlF-ld F 叭ifj?・ u>②取r2高8位到r0: 900010»0 non r2, 111711276002 鞅卿斛 mov 281326^979网sxflnflRinftR Annrn # r?t i-ifi777?ifiBXUUUC1 QOcdie r3, *25S9K 00GG1 91 Qorr r3t r3 r r3f Jsr 42■« OOCdflm b 0x1914ax nnntii sis smlnu exntiFffffF BxLJHbUl Ehrinu ajcULM-1-+4;f :P 8K 90S Bitza suinu ooeci S24 suiFiu sorrrf FF n 舶帕PMZRsmluu ftx SOffffff罰Current』HP : HH4U14in^Hm 鼻 IH:9xfl6«0d9Oe0 K2: UH66UU0UUU• RS: 9xB8«OS9O0 H UI F : UMUUUUttUUU * R5: 9KCQ«g^900③r3低8位清零: txaoasiiBD naj | 趴 #17112 76 832r3P ll-2(l 1320592fox snoiai a DR 丸rm F ・p ®>ihT772i 丽Bx OHeDl Httcbiu r9P r2, it 咖8x90601 81 B arr r3, r3, Lsr t248x90801 614 b 0x1 91U«xaoaaifiia bwinu ^eaFFFfffAx bimunn-tc swlnulIXflrtl-FHtfVX UUUU1 U2U suinuuxnui-FH^fE W Curr ent4 KU : «x66mW<l4 i R1; d R ?Z d R9;④r0逻辑右移24位后与r3相或,结果送进r3 :2.(原题目第三题)编程实现64位的加法运算,要求【R1 : R0】+【R3 : R2】结果放回【R1 : R0】。