arm实验报告最终版.docx
- 文档编号:26782545
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:24
- 大小:507.78KB
arm实验报告最终版.docx
《arm实验报告最终版.docx》由会员分享,可在线阅读,更多相关《arm实验报告最终版.docx(24页珍藏版)》请在冰豆网上搜索。
arm实验报告最终版
ARM与嵌入式技术
实验报告
专业班级:
10通信工程1班
姓名:
万洁
学号:
100103011125
实验日期:
2013年5月28日
指导老师:
郑汉麟
1、通过实验掌握ARM指令的特点和寻址方式;
2、掌握简单的ARM汇编语言的程序设计;
3、了解集成开发环境EmbestIDE及其开发软件的应用;
、实验环境
EmbestIDE应用于嵌入式软件开发的新一代图形化的集成开发环境,它包括一套完备的面向嵌入式系统的开发和调试工具。
其开发软件EmbestIDEforARM是集编辑器、编译
器、调试器、工程管理器(projectmanager)于一体的高度集成的窗口环境,用户可以在
EmbestIDE集成开发环境中创建工程、编辑文件、编译、链接、运行,以及调试嵌入式应用程序。
三、实验步骤
1)新建工程:
运行EmbestIDE集成开发环境,选择菜单项File宀NewWorkspace,如图一,系统弹
出一个对话框,键入文件名“wj”,如图二,点击0K按钮。
将创建一个新工程,并同时创
建一个与工程名相同的工作区。
此时在工作区窗口将打开该工作区和工程.。
(老师提醒:
不要放入Bin文件夹中)
■Emb«tQEPre亠Educat
「販]£dii_VwwBuidfrtbug
Dif**Qri+W
诊Open-"Qrl*O
2)建立源文件:
点击菜单项FiletNew,如图三,系统弹出一个新的文本编辑窗,输入源文件代码。
编辑完后,保存文件“wj.s”后缀,如图三,四。
3)添加源文件:
选择菜单项ProjecttAddToProjectFiles,在工程目录下选择刚才建立的源文件.s
后缀文件,如图五,图六,图七。
ProjectBuildDebugTookWindowHelp
图五
图六
:
-43Workspace'w]:
1projectfs)^1@wjfiles
口ProjectSourceFiles■-LJPrajectHeaderFiles-“禺VI].s
图七
4)基本配置:
选择菜单项ProjecttSettings,弹出工程设置对话框。
在工程设置对话框中。
1选择Processor设置对话框,按照图八所示,进行配置:
岸切F l«irvCompiler|emb* 图八 2选择Remote设置对话框,按照下图九所示,进行配置: PeVdccsi-surl-lCOebugDirec.Vnvv'Compller! 4 I^IrviAfvii? Lvriibewl.¥-4miFl»lurfurAUMf V1TF: &>ipiEE J C<*rraiiiunlEJkiliomtype: 3选择: : : 一L-J最右边一个进行编译,显示如图十,则编译成功。 Buildingproject: wjarm-elf-as-gdwarf-^F! \ARH\Ex3iiples\uj\wj-oAdebugkuj.oarn»-elf'Id-o.elf,\*iebug\wj.0 Cominandf? )^uccessftilltjexecuted・ 图十 ④选择ProjecttSettingsDebug设置对话框,按图^一,十二,十三所 示,进行配置: 图十 图十二 图十三 ⑤选择二: 一A最右边一个进行编译,显示如图十四,则编译成功。 Auiltlznqproject: 刖j □rn-elf-a5-gdwarf2F;\ARH\Esc0iipiT: 5\切j\wj・s~o\debug\T>].o arn-elF-ld-oAdebugXwj.elF.o Conmand(5)successfullyexecuted・ 5)选择菜单项DebugtRemoteConnect进行连接软件仿真器,将存储器地址改为 0x1000,如图十五,执行DebugtDownload命令下载程序,并打开寄存器窗口。 打 开memory窗口,按F10进行单步跟踪,观察寄存器的数据变化并分析。 Address: R15;0x09001608 SP: QxnOOOOHBQ LR: 馭0卿0朋凹 PC: axUOOOl0d8£PSR: 9K0SS38Bd3 H»U r»pin MU 广1.Bl* 上J <: = add 产・;尸0“ifH; ■ ftE1■•: i^atMiBin %-HikIW fFfff _1 5*law 4kV«fffffF 3--: 4KD^ID1C iHinu a-: i*i 転0啊 H0■宅 #m: c^Mtotkoe^—fhz: iKiMiinDiHiaRofliictiir|APferipherHl| 按照老师所说的,将源程序的addr0,r0,r1中的add改为adds,并设置R0,R1分别为 0xffffff88和0x000000aa再次观察,得到如下结果: noy no DhUdUUl0^4 ndulj ri! mv rfi』叽rd] asxjoeelesc b 0x180c tH00001818 nv CxMFfrFFF 9XUOOQ1Blft ^uinv QxDOFf^FFf fiMaoDQiais ^.llKRtJ flxDQFfFFFf SmBOBQI01c SUlllilU flxBaFfffff suinu BxtVFfFFFF SXUU&U1昨i suilnui U5{口叶"HHb AxnDQOIQ7S nv GxfiftffFFff 0^89001B2t syimv QxOOffffFf HMHHHH1MdII cninu 収朋4“卜44 图十五 dE13: '*R15: 第SP: 0lr: 9xonn0nooo dPC! 0000199c 0EPSR: 0x2DUa0ad3dSPS«: OXOOHO0O0O —I■尸科u— 四、实验内容: 1.(原题目第二题)编写程序将R2的高8位传送到R3的低8位(不考虑R3的其他位)源程序: .global_start .text _sta比 movr2,#0x66000000 movr3,#0x88000000andr0,r2,#0xff000000andr3,r3,#0xffflff00orrr3,r3,r0,lsr#24stop: bstop .end /*把第一个立即数送进r2*/ /*把第二个立即数送进r3*/ /*取r2高8位到rO*/ /*r3低8位清零*/ /*r0逻辑右移24位后与r3相或,结果送进r3*/ 调试结果: nuu r2,11711276092 HhNUMMIANil nnw rOps dlld r叭池、11-1*777216 foafiacifflai bit r3,r3,弓写 khcHUHMtHMii err r: [,rB,\sr斗” ftKOOOOlOl^ 13 OK1014 OKlMDIOIfl bujinu DxQBfFfFff HKMUHHiriC 强inu UMHUIIfFFF Ok«0BO1(^S swin^ ONOOFfFFFF flsaeantfli? & ^uiinu D>: iOftFfFFf1= ihcuaatHH&'A ;winu ffFFF ①Download下载: —Builrtingproj«ttwj? arnrciF-as-gtluarfaF: \.ARM\Bln\wj2Awj2.s-□.\dobug\uj2.o Jflddress: M 2 *a*1+2+3+^i* »0fl1BM 647tiAH£3? ? F$.." nouuioK 時AHL3PF0^1"■■■ OODOIOtM 02E2FF30C3一.0- nnaniRnr E32)09CB9Fl, uu^uimi4 FEFFFF1ERFF DOQQI019 FFFFFFFFFF nnaciifrir FFfTFF『FFF Ciomanid(s)exrcuted. F1? _s: tfi-Earning! endflFfilenot白tmdla dirii-HJlF-ldF叭ifj? ・u> ②取r2高8位到r0: 900010»0nonr2,111711276002 鞅卿斛mov281326^979 网 sxflnflRinftRAnnrn#r? ti-ifi777? ifi BXUUUC1QOcdier3,*25S 9k00GG191Qorrr3tr3rr3fJsr42■« OOCdflmb0x1914 axnnntiisissmlnuexntiFffffF BxLJHbUlEhrinuajcULM-1-+4;f: P 8k90SBitzasuinu ooeciS24suiFiusorrrfff n舶帕PMZRsmluuftxSOffffff 罰Current 』HP: HH4U14in^Hm鼻IH: 9xfl6«0d9Oe 0K2: UH66UU0UUU •RS: 9xB8«OS9O0 HUIf: UMUUUUttUUU *R5: 9KCQ«g^900 ③r3低8位清零: txaoasiiBD ■xifreaiBB4 naj nun |趴#1711276832r3Pll-2(l1320592f oxsnoiaiadr 丸rm F・p®>ihT772i丽 BxOHeDlHttc biu r9Pr2,it咖| 8x9060181B arr r3,r3,Lsrt24 8x90801614 b 0x191U «xaoaaifiia bwinu ^eaFFFfff Axbimunn-tc swlnu lIXflrtl-FHtf VXUUUU1U2U suinu uxnui-FH^f EWCurrent 4KU: «x66mW iR1; dr? z dR9; ④r0逻辑右移24位后与r3相或,结果送进r3: 2.(原题目第三题)编程实现64位的加法运算,要求【R1: R0】+【R3: R2】结果放回 【R1: R0】。 .global_start.text _sta比 movR0,#24 /*R0=24*/ movR1,#12 /*R1=12*/ movR2,#16 /*R2=16*/ movR3,#18 /*R3=18*/ ADDSR0,R0,R2 /*R0等于低32位相加,并影响标志位 */ ADCR1,R1,R3 /*R1等于咼32位相加,并加上低位进位 */ stop: bstop.end ■xUHh91hnil mu r«.WM tKlHH町・的 rw»u rlrB1? £h(0@Q9im rwv r2.114 3k0@S9190£ IHfV r3,118 妣陆的rpkmo duds ra.rOpr? mifluvimi 41d! c 1-1*rlFra MxniiMHimi n WM1IT1K Q^OC01191c 首Bn甲 Q^OQHFfF^Ff €^06091920 $uinv ON06FfFfFf swinv BHflBFfFFFf ttxOHM9lE7M nu MxBOKFlff sulnv U>i4IUi1f1f1 I.Download下载: T 乌単ams: Bxiflfin aoiMriona i» nn nn HMfllHfiBS IB E3 nuunukiA Ail 12 MMiaOF E3 02 00 ssMim «3 10 m …u. --BuiIdingproject: u]3-drPi-Elf-ji! i-ydwdirf2FXARH\BinXvj2\deb&iy\uj3・当-ax\dtebug\iwj3.uF: \ftRl(\eiiifc\wJ2\dvbug\aJJ-b: ftirseuljlyrriu注』唱u*r: SARt<\nliin\wJ? \drhiig\uj3B5: Q: UrfFning: nn Arm-elf-l«d-n.XdFbuqXu'j3.ell-Vdpbuq\ujll.& DumiidiiilKs)i>ucc^sbfullyux^uuled・ "Ft13;Qm00090990 : dwui: UKUUijwwiiwu •ms: nxnnnni *sp;Boeoaaoa dlk; 异*pc: nxnnnnims : 彳cpsr: oxesaaaada -A 神SP^R: Bk00000803 ①单步跟踪后的结果: : ^00001600 IIIUU F0,B21J IHDU r1,1112 awoOflsiooB nou r2,1116 GwOOfleiflOc ITJOU r9,tfIS OkOOSMC1B adds rd,rfl,r2 kOQO0lO1if ddc r11r1,r3 -=> Rx»oonois b 0X1018 fix»«001H1£ suinv OxOOfFffff II-? El cnHmi ②存储器的结果显示: +0+1+2+3+U oomsee 18 OU A0 E3 OC ■■■■ oesoieo5 10 no E3 10 20 ■■丽■ 0600100A E3 12 39 AU …B 00Q01eor 曰 02 as 90 EO ■■■■ OQ0U&1JI 03 10 EO FE ■■■■ 006(1-1019 FF FF EA FF FF ■■•■ Q004101E FF Ff FF FF FF n■■■ ③寄存器的结果显示: R0—RO+R2;R1—R1+R3: Reg 曰副Current WRO: 0X60000028j|: dR1: OxOGOflOQIe .R2: OxDUOHflMO B3;血卿胛凹霍 3.(原题目第七题)编写一段程序计算10! .global_start .text .equnum,10 _sta比 movrO,#num movr1,r0 s1: subsr1,r1,#1 mulr0,r1,r0 cmpr1,#1 beqstop bnes1 stop: .end bstop /*把r1-1放入r1*//*r0*r1放入r0*/ /*比较R1与1的大小*/ 分析调试: hooooiovo mov mo 0x06091004 rwu ro 0XQ0OO1QO9 subs r1tIt1 OxOUOOl00c nul r1,rfl OK00O0101O cnp tt1 0X00001014 beq 0x191c OxO@001O1S bne ox1m 0X0600101C b 0X101C 6XOB0O1O20 swinu OK00FFFFFF ①第一次执行S1,r1=10-仁9,10*9=90,换成16进制是5a。 RD: 0x0090095a R1: 0x00000009 R2: OxOBOOODOO R3: oxflooeoaae 0x00801004 0X0O0Q13Q8 OxO0601OBc ROMniousubsnul ro,#10r1,rflr11r1,U1rO,r1,rO 8x00001010 cmp r1t#1 1X88081014 beq 0x1Q1c 0x00601014 bne 0x1003 0X00001Q1C b 0x101c axemiEi2o swinu 0xO0fFFfff ② 第二次执行S1, r仁9-仁8,10*9*8=720,换成16进制是2d0。 三働—Current— 「“R0: OxS9O0O2dO )R1: 0x00000008 0R2: 0x90000009 0R3: 0x00000090 0x06001000 nou rd,tlfi BxOQOOl004 nou r1tr0 0x00001008 subs r1,rl.tt1 0(x0000106c nul r0,r1,rft QNQQ001019 cnp r1tS1 0X00001014 beq 0x101c 0x00001Olt bne 0x1808 0X0000101C b 0x1QIC 0X09001920 swinu 0X00fffFff ③依次执行S1,至Ur1=1,停止,10*9*8……*仁3628800,换成16进制是375f00。 -密—Current— 0RO: 0x00375(00 (0R1: 0X00000001 “R2: 0x90000000 LgR3: 0x00000000 4.(原题目第八题) 串拷贝(R0指向源数据的首地址, R1指向目的数据串的首地址) .global_start.text •EQUNUM,8_sta比 LDRR0,=srcstr LDRR1,=dststrmovR3,#NUMmovLR,PC Bstrcopystop: bstop /*指向源数据串R0*/ /*指向目标数据串R1*/ /*R3=8*/ /*返回*/ /*调用串拷贝子程序*/ strcopy: LDRBR2,[R0],#1 STRBR2,[R1],#1 SUBSR3,R3,#1 CMPR3,#0BNEstrcopyMOVPC,LR E霁Cunrent R0: 9x00008138 H1: 909Q819S /*字符串的复制*/ /*装载字节同时更新地址*/ /*存储字节同时更新地址*/ /*判断是否结束*/ /*不是,则继续*/ /*返回*/ .data srcstr: 」ong1,2,3,4,5,6,7,8/*定义源数据串*/ dststr: .long8,7,6,5,4,3,2,1/*定义目的字符串*/ 分析调试: ConipilingFileiF: XARN\£xanples\vjj\ujS\debug\vij\dBbug\uijU.s arn-elF-asF: \ARM\Exanples\wj\wj5\detjug\uj\debug\wjU.s-c_\debug\wj4_o Pomnianr1(<;)^urcp^^Fully*Mprut"pd. ①单步跟踪后的结果及存储器的结果显示: ldr rfl, [pc, #28] : 0X103B UXUQSC1UC14 Iflr 【", it28j ;0x163^1 &x0Qg(iioo» HIDU r2rttB OKfJH9G10Hr nou lr,pc 0^00661010 b 0X1018 0x06061(Hh b 0x1014 ldrb r2( [rU| #1 0000101c strb [rt] #1 2•存储器结果显示 十0 *1 *3 *3 09001001 2S 00 9F E5 28 (…衣 *0091905 1S 9F E5 GS 90 …-羽 A0 E9 0F 匚阳 AO aoosiOOF E1 OO BQ 60 EA &9001014 FE FF FF E白 I flibofliaiv 20 DO E4 G1 ■■■ moiaie G1 EA 01 30 S3 AS E迟 00 00 53 £3 ..-S- nnnni ra PF FF ■io 寄存器的结果显示: r: nxnnnnisp: axonnunoDnLM: UMU(JUU-|U~l>1PC: U^ltJ cpsr: OMoecooods 五、实验体会心得: 这是第一次接触ARM与嵌入式实验,在此次实验过程里,我发现实验课比理论学习课有趣得多,因为老师一边讲解怎么使用软件,一边询问我们相关知识点,不仅使我们记得模糊的理论知识变更加清晰确切了,而且也在对软件的学习实践中,增加了浓厚的兴趣,真正实现了手把手教的详细教学。 认真听老师讲,积极主动去思考,我发现学习起来,并没有想象中的那么难。 不懂的问题,不断去尝试调试,并请教老师,可以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- arm 实验 报告 最终版