《嵌入式系统》实验报告zq.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:6 大小:110KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

《嵌入式系统》实验报告zq.doc

《嵌入式系统》实验报告zq.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

班级:试验台:第行列学号:姓名:实验一ARM指令实验实验目的1、了解ADS1.2集成开发环境的使用方法。2.掌握ARM数据处理指令的使用方法;3.了解ARM指令灵活的第2个操作数。二、实验设备1.硬件:PC机1台。2.软件:1)Windows98/2000/XP操作系统;2)ADS1.2集成开发环境。三、实验内容1.使用MOV和MVN指令访问ARM通用寄存器;2.使用ADD、SUB、AND、ORR、CMP、TST等指令完成数据加减运算及逻辑运算。四、实验预习要求1、仔细阅读实验附带文档“ARM指令参考资料”或其它相关资料。2、仔细阅读实验附带文档“ADS集成开发环境及JTAG仿真器应用.pdf”或其它ADS相关资料,了解ADS工程编辑和AXD调试的内容。(本实验使用软件仿真)五、实验步骤1、新建一个你的专用目录。在F:\新建一个目录,作为今后你的嵌入式实验的专用目录,比如:张伟的目录名为zw。2、建立工程。启动ADS1.2IDE集成开发环境,即“CodeWarriorforARMDeveloperSuite”。点击【File】菜单,选择【New…】即弹出New对话框。使用ARMExecutableImage工程模板建立一个工程,名称为ADS,目录为F:\zw(步骤1建的目录)。3、建立文件,添加到工程中。选择【File】->【New…】建立一个新的文件TEST1.S,设置直接添加到项目中。输入如程序代码,并保存,此时在工程窗口中可以看到TEST1.S文件。4、设置文本编辑器支持中文(不是必须的步骤)选择【Edit】->【Perferences…】,在Font选项设置字体是Fixedsys,Script是CHINESE_GB2312。5、编译连接工程。选择【Edit】->【DebugRelSettings…】,在DebugRelSettings对话框的左边选择ARMLinker项,设置链接地址。设置工程链接地址ROBase为0x40000000,RWBase为0x40003000。设置调试入口地址Imageentrypoint为0x40000000。选择【Project】->【Make】,或者按下快捷键F7,将编译链接整个工程。6、工程的调试选择【Project】->【Debug】,或者按下快捷键F5。IDE环境就会启动AXD调试软件。点击AXD菜单【Options】选择【ConfigureTarget…】,即弹出ChooseTarget窗口,本实验选择ARMUL(软件仿真)。接着可以执行单步、全速运行调试。打开寄存器窗口(ProcessorRegisters),选择Current项监视各寄存器的值。7、重复2~6步,另建立工程Instruction1,另建立工程TEST2.S。使用LDR指令读取0x40003100上的数据,将数据加1,若结果小于10则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址……周而复此循环。要求:调试过程中,使用ADS1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口(ProcessorRegisters)监视R0、R1的值,打开存储器观察窗口(Memory)监视0x40003100上的值。8、重复2~6步,另建立工程Instruction2,另建立工程TEST3.S。使用MOV和MVN指令访问ARM通用寄存器;使用ADD、SUB、AND、ORR、CMP、TST等指令完成数据加减运算及逻辑运算。六、实验参考程序以下是三段程序的完整代码。请把注释填写完整。;TEST1.S程序代码AREAExample1,CODE,READONLY;声明代码段Example1ENTRY;标识程序入口CODE32;声明32位ARM指令STARTMOVR0,#15;设置参数MOVR1,#8ADDSR0,R0,R1;R0=R0+R1BSTARTEND;TEST2.S程序代码COUNTEQU0x40003100;定义一个变量,地址为0x40003100AREAExample2,CODE,READONLY;声明代码段Example2ENTRY;标识程序入口CODE32;声明32位ARM指令STARTLDRR1,=COUNT;R1<=COUNTMOVR0,#0;R0<=0STRR0,[R1];[R1]<=R0,即设置COUNT为0LOOPLDRR1,=COUNTL