资源描述:
《ARM嵌入式开发基础实践》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、电气与信息工程学院实践基地实践报告XXXX学院综合性实践报告实践项目名称ARM嵌入式开发基础实践所属课程名称ARM工程实践实践日期班级学号姓名成绩电气与信息工程学院实践基地电气与信息工程学院实践基地实践报告ARM实践1:汇编程序设计1【实践目的】1.熟悉ADS1.2软件开发环境;2.掌握ARM920T汇编指令的用法,并能编写简单的汇编程序;3.掌握指令的条件执行和使用LDR/STR指令完成存储器的访问。【实践内容】1.使用LDR指令读取0x30003100上的数据,将数据加1,若结果小于10,则
2、使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址。2.使用ADS1.2软件仿真,单步,全速运行程序,设置断点,打开寄存器窗口(ProcessorRegisters)监视R0,R1的值,打开存储器观察窗口(Memory)监视0x30003100上的值。【实践设备】硬件:PC机一台。软件:Windows98/XP/2000系统,ADS1.2集成开发环境。【实践过程】(实践步骤、记录、数据、分析)1.启动ADS1.2,使用ARMExecutableImage工程模板建立一个工程ar
3、m1.mcp。2.建立汇编源文件arm1.s,编写实验程序,然后添加到工程中。3.设置工程连接地址ROBase为0x30000000,RWBase为0x30003000,设置options中的调试口地址Imageentrypoint为0x30000000。4.编译连接工程,选择Project
4、Debug,启动AXD进行软件仿真调试。5.打开寄存器窗口(ProcessorRegisters),选择Current项监视R0,R1的值。打开存储器观察窗口(Memory),设置观察地址为0x300031
5、00,显示方式Size为32Bit,监视0x30003100地址上的值。说明:在Memory窗口中点击鼠标右键,Size项中选择显示格式为8bit,16bit,32bit。设置寄存器显示格式与之类似。使用鼠标左键选择某一个寄存器,然后点击鼠标右键,Format项中选择显示格式Hex,Decimal等等。6.可以单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行。这时观察寄存器和0x30003100地址上的值。电气与信息工程学院实践基地实践报告【实践程序分析】COUNTEQU0x30
6、003100;定义变量COUNT的基地址AREAExample1,CODE,READONLY;声明代码段Example1为只读ENTRY;标识程序入口CODE32;声明32位ARM指令STARTLDRR1,=COUNT;将0X30003100赋给R1MOVR0,#0;执行R0=0STRR0,[R1];存储R0寄存器的数据到R1指向的存储单元LOOPLDRR1,=COUNT;将0X30003100赋给R1LDRR0,[R1];将R1中的数值作为地址,取出此地址中的数据保存到R0中ADDR0,R0,
7、#1;执行R0=R0+1电气与信息工程学院实践基地实践报告CMPR0,#10;将R0与10进行比较MOVHSR0,#0;若R0大于等于10,则R0=0STRR0,[R1];存储R0寄存器的数据到R1指向的地址单元BLOOP;跳转到LOOPEND;汇编文件结束【实践小结】通过本实践,我熟悉了ADS1.2软件开发环境,掌握了ARM920T汇编指令的用法,并能编写简单的汇编程序,还掌握了指令的条件执行和使用LDR/STR指令完成存储器的访问。电气与信息工程学院实践基地实践报告ARM实践2:汇编程序设计
8、2【实践目的】1.掌握ARM乘法指令的使用方法;2.了解子程序编写及调用。【实践内容】使用STMFD/LDMFD,MUL指令编写一个整数乘方的子程序,然后使用BL指令调用子程序计算Xn的值。【实践设备】硬件:PC机一台。软件:Windows98/XP/2000系统,ADS1.2集成开发环境。【实践过程】(实践步骤、记录、数据、分析)1.启动ADS1.2,使用ARMExecutableImage工程模板建立一个工程arm2.mcp。2.建立汇编源文件arm2.s,编写实验程序,然后添加到工程中。3
9、.设置工程连接地址ROBase为0x30000000,RWBase为0x30003000,设置调试口地址Imageentrypoint为0x30000000。4.编译连接工程,选择Project
10、Debug,启动AXD进行软件仿真调试。5.打开寄存器窗口(ProcessorRegisters),选择Current项监视寄存器R0,R1,R13(SP)和R14(LR)的值。6.打开存储器观察窗口(Memory),设置观察地址为0x30003EA0,显示方式Size为32Bit,监视从0x30003