欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    arm实验报告最终版要点.docx

    • 资源ID:13612960       资源大小:1.03MB        全文页数:16页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    arm实验报告最终版要点.docx

    1、arm实验报告最终版要点ARM与嵌入式技术实验报告 专业班级:10通信工程1班 姓名:万洁学号:100103011125实验日期:2013年5月28日指导老师:郑汉麟一实验目的1、 通过实验掌握ARM指令的特点和寻址方式;2、 掌握简单的ARM汇编语言的程序设计;3、 了解集成开发环境Embest IDE及其开发软件的应用;2、实验环境Embest IDE 应用于嵌入式软件开发的新一代图形化的集成开发环境,它包括一套完备的面向嵌入式系统的开发和调试工具。其开发软件Embest IDE for ARM 是集编辑器、编译器、调试器、工程管理器(projectmanager)于一体的高度集成的窗口环

    2、境,用户可以在Embest IDE 集成开发环境中创建工程、编辑文件、编译、链接、运行,以及调试嵌入式应用程序。3、实验步骤1) 新建工程:运行Embest IDE 集成开发环境,选择菜单项File New Workspace ,如图一,系统弹出一个对话框,键入文件名“wj”,如图二,点击OK 按钮。将创建一个新工程,并同时创建一个与工程名相同的工作区。此时在工作区窗口将打开该工作区和工程.。(老师提醒:不要放入Bin文件夹中) 图一 图二2) 建立源文件:点击菜单项File New,如图三,系统弹出一个新的文本编辑窗,输入源文件代码。编辑完后,保存文件“wj.s”后缀,如图三,四。 图三 图

    3、四3) 添加源文件:选择菜单项Project Add To Project Files ,在工程目录下选择刚才建立的源文件.s后缀文件,如图五,图六,图七。 图五 图六 图七4) 基本配置:选择菜单项Project Settings,弹出工程设置对话框。在工程设置对话框中。1 选择Processor 设置对话框,按照图八所示,进行配置: 图八2 选择Remote设置对话框,按照下图九所示,进行配置: 图九3 选择最右边一个进行编译,显示如图十,则编译成功。 图十4 选择Project Settings Debug设置对话框,按图十一,十二,十三所示,进行配置:图十一 图十二图十三 5 选择最右

    4、边一个进行编译,显示如图十四,则编译成功。 5)选择菜单项Debug Remote Connect 进行连接软件仿真器,将存储器地址改为0x1000,如图十五,执行Debug Download 命令下载程序,并打开寄存器窗口。打开memory 窗口,按F10进行单步跟踪,观察寄存器的数据变化并分析。 按照老师所说的,将源程序的add r0,r0,r1中的add改为adds,并设置R0, R1分别为0xffffff88和0x000000aa再次观察,得到如下结果:图十五4、实验内容:1. (原题目第二题)编写程序将R2的高8位传送到R3的低8位(不考虑R3的其他位)源程序:.global _st

    5、art.text_start: mov r2,#0x66000000 /*把第一个立即数送进r2*/ mov r3,#0x88000000 /*把第二个立即数送进r3*/ and r0,r2,#0xff000000 /*取r2高8位到r0*/ and r3,r3,#0xffffff00 /*r3低8位清零*/ orr r3,r3,r0,lsr #24 /*r0逻辑右移24位后与r3相或,结果送进r3*/stop: b stop.end调试结果:1 Download下载:2 取r2高8位到r0:3 r3低8位清零:4 r0逻辑右移24位后与r3相或,结果送进r3:2.(原题目第三题)编程实现64

    6、位的加法运算,要求【R1:R0】+【R3:R2】结果放回【R1:R0】。.global _start .text_start: mov R0,#24 /*R0=24*/mov R1,#12 /*R1=12*/mov R2,#16 /*R2=16*/mov R3,#18 /*R3=18*/ADDS R0,R0,R2 /*R0等于低32位相加,并影响标志位*/ADC R1,R1,R3 /*R1等于高32位相加,并加上低位进位*/stop: b stop.end1.Download下载:1 单步跟踪后的结果:2 存储器的结果显示:寄存器的结果显示:R0RO+R2;R1R1+R3: 3. (原题目第七

    7、题)编写一段程序计算10!.global _start.text.equ num,10 _start: mov r0,#num mov r1,r0s1: subs r1,r1,#1 /*把r1-1放入r1*/ mul r0,r1,r0 /*r0*r1放入r0*/ cmp r1,#1 /*比较R1与1的大小*/ beq stop bne s1 stop: b stop.end分析调试:1 第一次执行S1,r1=10-1=9,10*9=90,换成16进制是5a。2 第二次执行S1,r1=9-1=8,10*9*8=720,换成16进制是2d0。依次执行S1,到r1=1,停止,10*9*8*1=362

    8、8800,换成16进制是375f00。4. (原题目第八题) 串拷贝(R0指向源数据的首地址,R1指向目的数据串的首地址).global _start.text.EQU NUM,8_start: LDR R0,=srcstr /*指向源数据串R0*/ LDR R1,=dststr /*指向目标数据串R1*/ mov R3,#NUM /*R3=8*/ mov LR,PC /*返回*/ B strcopy /*调用串拷贝子程序*/stop: b stop strcopy: /*字符串的复制*/ LDRB R2,R0,#1 /*装载字节同时更新地址*/ STRB R2,R1,#1 /*存储字节同时更

    9、新地址*/ SUBS R3,R3,#1 CMP R3,#0 /*判断是否结束*/ BNE strcopy /*不是,则继续*/ MOV PC,LR /*返回*/.data srcstr: .long 1,2,3,4,5,6,7,8 /*定义源数据串*/ dststr: .long 8,7,6,5,4,3,2,1 /*定义目的字符串*/分析调试:1 单步跟踪后的结果及存储器的结果显示:2.存储器结果显示寄存器的结果显示:5、实验体会心得:这是第一次接触ARM与嵌入式实验,在此次实验过程里,我发现实验课比理论学习课有趣得多,因为老师一边讲解怎么使用软件,一边询问我们相关知识点,不仅使我们记得模糊的

    10、理论知识变更加清晰确切了,而且也在对软件的学习实践中,增加了浓厚的兴趣,真正实现了手把手教的详细教学。认真听老师讲,积极主动去思考,我发现学习起来,并没有想象中的那么难。不懂的问题,不断去尝试调试,并请教老师,可以有很多收获。以下是本次试验中的学习收获:1.为何要将存储器地址改为0x1000,而不是从0x0000开始(这是老师问到我的问题) 2.00系列可以存放程序的范围,分为四个空间 内部程序存储器 地址范围0000H-0FFFH 共4KB ,外部程序存储器 0FFFH-0FFFFH 共64KB;内部数据存储器 00H-FFH 共256个字节(其中包括低128字节和特殊功能寄存器SFR 12

    11、8个字节),外部数据存储器可扩展至64KB。由于异常向量放在064字节中,系统要用到,所以为了避免冲突,选用从0x1000开始的地址,即从4K开始的地址。2. little Endian / Big Endain little Endian就是低位字节排放在内存的低端,高位字节排放在内存的高端。而Big Endain正好相反。3. Add / Adds 的区别 Add 是不影响标志位的加法算数运算指令,即操作结果不更新CPSR中的相应条件标识位;而Adds是影响标志位加法算数运算指令,即操作结果会更新CPSR中的相应条件标识位。4.进位和溢出是两个不同的概念 溢出标志OF和进位标志CF是两个意

    12、义不同的标志.进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。 5.程序书写中注意 .global _start 中间是有空格的,而不是相连的。6.因为是单步调试的,所以要注意先连续按键F10三次,再去修改Rigester中的数据。7.不仅可以用F10,也可以用 F11 进行单步调试。8.调试过程中遇到的问题如:1:于是我把程序代码改写为stop: b stop,即写为一行,然后保存,结果如下:2.程序中偶尔还会遇到问题如下:于是我重新建立项目文件,分类安放文件夹的位置,就慢慢改正完成好了。3这是由于没有将文件添加到项目文件中引起的。4而这往往是由于配置过程中过快,不细心,最后一行的Built tools 忘了进行配置为GNU TOOLS FOR ARM 引起的。改正后结果:5.这是由于没有将symbol和download 文件加入导致的,一方面是由于自己的粗心,一方面也是由于对软件使用的熟练程度不够,以致于不能清晰的去做每一步,总是看着错误提示,才知道哪里错了,再去加以改正。 当然此次实验中的程序源文件,是在同学们的帮助下,书上,以及网络资源的查阅中慢慢写出的,历时长久,但还是很欣慰,因为感觉自己对一向生涩难懂的ARM有了些许的收获和进一步的提高。


    注意事项

    本文(arm实验报告最终版要点.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开