ARM与嵌入式实验报告_第1页
ARM与嵌入式实验报告_第2页
ARM与嵌入式实验报告_第3页
ARM与嵌入式实验报告_第4页
ARM与嵌入式实验报告_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上ARM与嵌入式实验报告题 目: ARM与嵌入式实验 专业年级:11级电子信息工程 学 号: 姓 名: 指导教师: 郑汉麟 2014年5月17日一、实验目的1学习使用Embest IDE开发环境及ARM 软件模拟器;2.掌握简单ARM 汇编指令,进一步加强对嵌入式的熟悉和了解。3.了解集成开发环境Embest IDE及其开发软件的应用。二、 实验设备硬件:PC 机软件:Embest IDE 开发环境三、实验环境Embest IDE 应用于嵌入式软件开发的新一代图形化的集成开发环境,它包括一套完备的面向嵌入式系统的开发和调试工具。其开发软件Embest IDE for A

2、RM 是集编辑器、编译器、调试器、工程管理器(projectmanager)于一体的高度集成的窗口环境,用户可以在Embest IDE 集成开发环境中创建工程、编辑文件、编译、链接、运行,以及调试嵌入式应用程序。四、实验内容例2:编写程序将R2的高8位传送到R3的低8位(不考虑R3的其它位);例3:实现64位加法运算,要求【R1:R0】+【R3:R2】,结果放回【R1:R0】中;例7:编写一段程序计算10!; 例8:字符串拷贝(R1指向源数据串的首地址,R0指向目的数据串的首地址)。四、实验步骤1) 新建工程:运行Embest IDE 集成开发环境,选择菜单项File New Workspac

3、e ,如图一,系统弹出一个对话框,键入文件名“ti8”,如图二,点击OK 按钮。将创建一个新工程,并同时创建一个与工程名相同的工作区。此时在工作区窗口将打开该工作区和工程.。2) 建立源文件:点击菜单项File New,如图三,系统弹出一个新的文本编辑窗,输入源文件代码。编辑完后,保存文件“ti.s”后缀,如下图。3) 添加源文件:选择菜单项Project Source Files ,在工程目录下选择刚才建立的源文件.s后缀文件,如下图4) 基本配置:选择菜单项Project Settings,弹出工程设置对话框。在工程设置对话框中。 选择Processor 设置对话框,按照下图所示,进行配置

4、: 选择Remote设置对话框,按照下图所示,进行配置: 选择最右边一个进行编译,显示如图九,则编译成功。 选择Project Settings Debug设置对话框,按照图十所示,进行配置: 选择最右边一个进行编译。5)选择菜单项Debug Remote Connect 进行连接软件仿真器,将存储器地址改为0x1000,如图,执行Debug Download 命令下载程序,并打开寄存器窗口。打开memory 窗口,按F10进行单步跟踪,观察寄存器的数据变化并分析。六、各实验的参考程序及运行结果例2:编写程序将R2高8位传送到R3的低8位(不考虑R3的其它位);1.程序代码如下:.global

5、 _start_start:ldr r2,=0xldr r3,=0xand r2,r2,#0xff /*保留R2的高8位,屏蔽低24位*/and r3,r3,#0xffffff00 /*保留R3的高24位,屏蔽低8位*/orr r3,r3,r2,lsr #24 /*将R2的高8位传送到R3的低8位*/stop: b stop.end 2.分析调试:(1)调试过程值: 将R2赋值为0x,R3赋值为0x, 取R2的高8位,消去R3的低8位, 将R2的高8位传送到R3的低8位。download下载:保留r2的高8位,屏蔽低24位:保留r3的高24位,屏蔽低8位:将R2的高8位传送到R3的低8位:(2

6、)结果分析: R2赋值为 0x和0xff相与得到0x,将R3赋值为0x,在与0xffffff00相与得到0x,再讲R2的高8位传送到R3的低8位得到0x.例3:实现64位加法运算,要求【R1:R0】+【R3:R2】,结果放回【R1:R0】中;程序代码如下:. global _start .text_start: mov R0,#15 /*R0=15*/mov R1,#26 /*R1=26*/mov R2,#35 /*R2=35*/mov R3,#46 /*R3=46*/ADDS R0,R0,R2 /*R0等于低32位相加,并影响标志位*/ADC R1,R1,R3 /*R1等于高32位相加,并加

7、上低位进位*/stop: b stop.end2.分析调试:(1)调试过程值: R0赋值为15,转换成16进制为000f,R1赋值为26,转换成16进制为0019, R2赋值为35,转换成16进制为0023, R3赋值为46,转换成16进制为002e.download下载: 读入数据: R0+R2R0 (低32位): R1+R3R1(带进位的加法):(2)结果分析: R0,R1,R2,R3分别赋值为0xf,0x.0x,0xe,R0+R2低4位相加结果存在R0中,R0为0x, R1+R3高位相加再加上低位进位1存在R1中,R1为0x.最后得到【R1:R0】例7:编写一段程序计算10!1.程序代码

8、如下:.global _start.text.equ num,10 _start:mov r0,#nummov r1,r0s1:subs r1,r1,#1 /*把r1-1放入r1*/mul r0,r1,r0 /*r0*r1放入r0*/cmp r1,#1 /*比较R1与1的大小*/beq stopbne s1stop:b stop.end2.分析调试:(1)调试过程值: num设置为10,R0赋值为num即为10,把R0的值给R1,R1也为10.之后执行程序。download下载: 第一次执行S1,R1=10-1=9,10*9=90,换成16进制是5a。 第二次执行S1,R1=9-1=8,10*

9、9*8=720,换成16进制是2d0。 第三次执行S1,R1=8-1=7,10*9*8*7=5040,换成16进制是13b0。 依次执行S1,到R1=1,停止,10*9*8*1=,换成16进制是375f00。(2)结果分析: 第一次执行S1,R1=10-1=9,10*9=90,换成16进制后, R0结果为0xa第二次执行S1,R1=9-1=8,10*9*8=720,换成16进制后,R0结果为0xd0,依次执行S1,到R1=1,停止,10*9*8*1=,换成16进制后,R0结果为0x00375f00。例8:字符串拷贝(R0指向源字符串的首地址,R1指向目的字符串的首地址)。程序代码如下:.glo

10、bal _start.text.EQU NUM,9_start: LDR R0,=srcstr /*指向源数据串R0*/ LDR R1,=dststr /*指向目标数据串R1*/ mov R3,#NUM /*R3=9*/ mov LR,PC /*返回*/ B strcopy /*调用串拷贝子程序*/stop: b stop strcopy: LDRB R2,R0,#1 /*装载字节同时更新地址*/ STRB R2,R1,#1 /*存储字节同时更新地址*/ SUBS R3,R3,#1 CMP R3,#0 /*判断是否结束*/ BNE strcopy /*不是,则继续*/ MOV PC,LR /*

11、返回*/.data srcstr: .long 1,2,3,4,5,6,7,8,0 /*定义源字符串*/ dststr: .long 8,7,6,5,4,3,2,1,0 /*定义目的字符串*/2.分析调试:(1)调试过程值: R0指向源字符串,R1指向目标字符串,R3的初始值设为num,即为9 ,将源数据存入1,将数据加载到R2,将目的数据存入1,将数据存储到R2,再将num减去1然后放到R3,继续循环。 download下载:num=9,将num减去1然后放到R3,此时num=8: num依次减去1,直到num=0,再存放到R3,R3=0X:寄存器的结果显示:(2)结果分析: 每次循环都使num的值减去1,直到num等于0,R3的值即为num最后的值0,最后结果为R0=0X=x,R1=0x,R2=0xffffffff,R3=0x.七、过程中遇到的问题 在做ARM 实验时遇到了一些问题,有时会出现下载失败的情况,比若说做错某一步,为改为.s文件,或是Project Source File中未添加.s文件,后面过程就无法进行下去,下载失败,另一个原因就是程序编写

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论