实验指导书(月日改).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验指导书(月日改).doc

《ARM系统结构和原理》 实验指导书 李力 谭雄乐 编 广东科学技术职业学院 广州学院 目录 实验一 ARM汇编初识 1 实验二 系统引导实验 9 实验三 系统引导实验 22 实验四 系统引导实验 29 实验五 数码管显示 41 实验六 键盘 46 实验七 定时器 59 实验八 串口 63 实验九 RTC 71 实验一 ARM汇编初识 一、例1实验目的 ARM汇编初识 CPU内部寄存器与memory的编址。 AXD Debugger的使用 数据搬运练习; 例一:数据块拷贝; 项目名:Example1.mcp,文件名:Example1.s 三、例1仿真 1、调试界面调出 打开AXD仿真软件 Options?Configure target ARMUL? Configure “ok”、“ok”。 File?Load Image Processor Views?Registes Processor Views?Memory 2、单步执行进行调试 Execute?Step In(注意观察寄存器与Memory的变化) (观察R3与R0、memory与R1的对应变化关系) 3、代码段、数据段与寄存器 整个程序的Memory如下: 代码段地址:0x8000—0x8027 数据段地址:0x8028—0x8077 寄存器 四、例1总结: 由例1可知Xscale memory是统一编址(最大4GB)的,也就是说cpu的所有外设如GPIO、串口、键盘等都是挂接在地址总线、数据总线、控制总线上。Xscale的cpu内部寄存器没有编址,所以只能通过汇编指令进行存取。 五、例2实验目的 掌握数据块拷贝指令LDM/STM 六、例2代码 例二:数据块拷贝项目名:Example.mcp,文件名:Example.s 七、例2仿真 执行毕19行,观察memory堆栈空间: 0x3e0—0x400变化 第一次执行毕22行观察寄存器变化 第一次执行毕23行观察memory地址0x80B8—0x80D4变化 第二次执行毕22行观察寄存器变化 第二次执行毕23行观察memory地址0x80D8—0x80F4变化 执行毕26行观察寄存器变化 八、cpsr的变化值 重新装载文件File?Reload Current Image,并设置cpsr为十六进制(右键Format?Hex),单步运行并记录cpsr的值的变化情况在表格中,并依此详细说明当前程序的状态。 Cpsr值 N Z C V… I F T M4-M0 说明当前程序的状态 初始值 变化值1 变化值2 九、掌握指令STMFD与LDMFD 在源程序中,用mov指令给R4-R11赋值(最好使用课本P49的有效立即数或者无效立即数),编译并仿真,观察堆栈的执行,掌握指令STMFD与LDMFD。 十、例2总结: 由例2可知 LDM/STM常用来进行大规模数据拷贝,如把代码从flash拷贝到sdram。 LDM/STM常用来进行出入堆栈数据拷贝。 实验二 系统引导实验 实验目的: ARM集成开发工具的使用及理解 ARM汇编最小结构的理解 熟悉基于JTAG的调试系统 ADS使用 (1)新建工程。 (图1新建菜单) (图2新建工程) (2)新建工程文件:汇编文件s后缀、c文件。 (图3新建.s文件) (图4新建.c文件) (图5新建后结果) (3) 设置(工具栏中settings) (通过以上几步就可以建立一个简单的工程项目,但要想最终生成能够运行和调试的Image文件,还必须做好相应的参数设置工作) (图6) “设置”工具 (图7) Linker:下拉列表框用于选择要使用的链接器。 Post-linker:用于选择对链接器输出文件的处理方式。 (图8入口地址设置) Ro Base:这个文本框设置包含有RO段的运行时域基地址,用户可以根据需要设定相应的地址,保证程序运行时代码能正确跳转。RW Base:这个文本框设置了包含RW和ZI输出段的运行时域地址。B或BL指令引起处理器转移到“子程序名”处开始执行。两者的不同之处在于BL指令在转移到子程序执行之前,将其下一条指令的地址拷贝到R14(LR,链 接寄存器)。由于BL指令保存了下条指令的地址,因此使用指令“MOV PC ,LR”即可实现子程序的返回。而B指令则无法实现子程序的返回,只能实现单纯的跳转。用户在编程的时候,可根据具体应用选用合适的子程序调用语句 ——复位向量是打开电源被处理器执行的第一条指令,——未定义指令向量,被用在处理器无法解码指令的时候 ——软件中断向量........软件中断指令常用在操作系统条用。——预取终

文档评论(0)

zhangningclb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档