《嵌入式系统》实验报告zq.doc_第1页
《嵌入式系统》实验报告zq.doc_第2页
《嵌入式系统》实验报告zq.doc_第3页
《嵌入式系统》实验报告zq.doc_第4页
《嵌入式系统》实验报告zq.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

实验一 ARM 指令实验一、 实验目的1、了解ADS 1.2集成开发环境的使用方法。2. 掌握ARM数据处理指令的使用方法;3了解ARM指令灵活的第2个操作数。 二、实验设备1. 硬件:PC机1台。2软件: 1)Windows 98/2000/XP操作系统;2)ADS 1.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.2 IDE集成开发环境,即“CodeWarrior for ARM Developer Suite”。点击【File】菜单,选择【New】即弹出 New对话框。使用ARM Executable Image工程模板建立一个工程,名称为ADS,目录为F:zw(步骤1建的目录)。3、建立文件,添加到工程中。选择【File】-【New】建立一个新的文件TEST1.S,设置直接添加到项目中。输入如程序代码,并保存,此时在工程窗口中可以看到TEST1.S文件。 4、设置文本编辑器支持中文(不是必须的步骤)选择【Edit】-【Perferences】,在Font选项设置字体是Fixedsys,Script是CHINESE_GB2312。5、编译连接工程。选择【Edit】-【DebugRel Settings】,在DebugRel Settings对话框的左边选择ARM Linker项,设置链接地址。设置工程链接地址RO Base为0x40000000,RW Base为0x40003000。设置调试入口地址Image entry point为0x40000000。选择【Project】-【Make】,或者按下快捷键F7,将编译链接整个工程。6、工程的调试选择【Project】-【Debug】,或者按下快捷键F5。IDE环境就会启动AXD调试软件。点击AXD菜单【Options】选择【Configure Target】,即弹出 Choose Target 窗口,本实验选择 ARMUL(软件仿真)。接着可以执行单步、全速运行调试。打开寄存器窗口(Processor Registers),选择Current项监视各寄存器的值。7、重复26步,另建立工程Instruction1,另建立工程TEST2.S。使用LDR指令读取0x40003100上的数据,将数据加1,若结果小于10则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址周而复此循环。要求:调试过程中,使用ADS 1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口(Processor Registers)监视R0、R1的值,打开存储器观察窗口(Memory) 监视0x40003100上的值。 8、重复26步,另建立工程Instruction2,另建立工程TEST3.S。使用MOV和MVN指令访问ARM通用寄存器; 使用ADD、SUB、AND、ORR、CMP、TST等指令完成数据加减运算及逻辑运算。 六、实验参考程序以下是三段程序的完整代码。请把注释填写完整。;TEST1.S程序代码AREAExample1,CODE,READONLY; 声明代码段Example1 ENTRY ; 标识程序入口CODE32; 声明32位ARM指令START MOVR0,#15 ; 设置参数MOVR1,#8ADDSR0,R0,R1; R0 = R0 + R1BSTARTEND;TEST2.S程序代码COUNTEQU0x40003100; 定义一个变量,地址为0x40003100AREAExample2,CODE,READONLY; 声明代码段Example2 ENTRY; 标识程序入口CODE32; 声明32位ARM指令STARTLDRR1,=COUNT; R1 = COUNTMOVR0,#0; R0 = 0 STRR0,R1; R1 = R0,即设置COUNT为0LOOP LDRR1,=COUNTLDRR0,R1; R0 = R1 ADDR0,R0,#1; R0 = R0 + 1CMPR0,#10; R0与10比较,影响条件码标志MOVHSR0,#0; 若R0大于等于10,则此指令执行,R0 = 0STRR0,R1; R1 = R0,即保存COUNTBLOOPEND;TEST3.S程序代码XEQU11; 定义X的值为11YEQU9 ; 定义Y的值为9BIT23EQU(123); 定义BIT23的值为0x00800000AREAExample3,CODE,READONLY; 声明代码段Example3ENTRY; 标识程序入口CODE32; 声明32位ARM指令START; 使用MOV、ADD指令实现:R8 = R3 = X + YMOVR0,#X; R0 = X,X的值必须是8位图数据MOVR1,#Y; R1 = Y,Y的值必须是8位图数据ADDR3,R0,R1; MOVR8,R3; R8 (2*X)吗?若大于则R5 = R5&0xFFFF0000,否则R5 = R5|0x000000FFMOVR0,#YADDR0,R0,R0,LSL #2; MOVR0,R0,LSR #1; MOVR1,#XMOVR1,R1,LSL #1; 计算R1 = 2*XCMPR0,R1; 比较R0和R1,即(5*Y/2)和(2*X)进行比较LDRHI R2,=0xFFFF0000; 若(5*Y/2)(2*X),则R2 (2*X),则R5 = R5&R2ORRLSR5,R5,#0x000000FF; 若(5*Y/2)(2*X),则R5 = R5|0x000000FFTST R5,#BIT23 ; BICNER5,R5,#0x00000040BSTARTEND七、思考1、请把上述源程序中的注释补充完整。2、AXD 运行调试工具条和调试观察窗口工具条如下图所示,请指出每个图标的作用。 3、CPSR寄存器显示分为两部分,一部分是各个标志位,另一部分是工作模式。标志位NZCVQ为条件码标志N、Z、C、V、Q,显示为大写字母,表示该位为1;显示为小写字母,表示该位为0。标志位IFT为IRQ中断禁止位I、 FIQ 中断禁止位F、ARM 处理器状态位T,显示为大写字母,表示该位为1;显示为小写字母,表示该位为0。工作模式指示ARM处理器当前的工作模式,包括User(用户模式)、FIQ(FIQ中断模式)、IRQ(IRQ中断模式)、SVC(管理模式)、Abort(中止模式)、Undef(未定义模式)、SYS(系统模式)。在TEST2.S中执行CMP R0,#10指令后,CPSR由nzcvqIFt_SVC变成了NzcvqIFt_SVC,请解释说明一下。八、心得体会实验后的实验结果分析和心得体会必须独立完成,对实验中发现的问题应加以讨论,并提出自己的改进意见和要求。实验二 GPIO输入/输出实验一、 实验目的1掌握DeviceARM2410专用工程模板的使用;2掌握Wiggler JTAG仿真器的安装和使用;3能够在MagicARM2410实验箱上运行第一个程序(无操作系统);4熟悉S3C2410A处理器的I/O配置方法及GPIO输出控制。 5. 掌握3C2410A处理器的I/O配置方法,能够使用GPIO输入模式读取开关信号。二、实验设备1. 硬件: 1)PC机1台;2)MagicARM2410教学实验开发平台1台。2软件: 1)Windows 98/2000/XP操作系统;2)ADS 1.2集成开发环境。三、实验内容控制MagicARM2410实验箱上的LED1LED4显示及蜂鸣器报警。先使用片外SDRAM进行调试,调试通过后将程序固化到片外NOR FLASH中,脱机运行程序。不断地读取GPF4口上的电平值,然后将读到的值输出控制蜂鸣器。四、实验预习要求1、仔细阅读实验附带文档“ADS集成开发环境及JTAG仿真器应用.pdf”或其它ADS相关资料,了解ADS 1.2集成开发环境、DeviceARM2410专用工程模板、Wiggler JTAG仿真器的应用。五、实验原理S3C2410A具有117个通用I/O口,分为AH等8个端口,由于每个I/O都有第2功能,甚至第3功能,所以需要通过设置GPxCON寄存器来选择GPx口I/O的功能,其中x可以为A、B、C、D、E、F、G、H,表示相应的I/O端口。当I/O设置为GPIO输出模式(Output模式)时,可以通过写GPxDAT控制相应I/O口输出高电平或低电平。GPxDAT为1的位对应I/O输出高电平,为0的位对应I/O输出低电平。当I/O设置为GPIO输入模式(Input模式)时,读取GPxDAT寄存器即取得I/O口线上的电平状态。通常会使用if(GPxDAT & (1n)语句来判断GPxn口是否为高电平。MagicARM2410实验箱上使用了S3C2410A的GPF4口连接一个独立按键KEY1。当KEY1键按下时,GPF4口上的电平值为0;当KEY1键放开时,由上拉电阻将GPF4口拉到高电平,所以其电平值为1。六、实验步骤1、为ADS1.2增加DeviceARM2410专用工程模板(若已增加过,此步省略)。将“ADS集成开发环境及JTAG仿真器应用 MagicARM2410 Project module”目录下的所有文件和目录拷贝到“Stationery”即可。参看“ADS集成开发环境及JTAG仿真器应用.pdf”。这个步骤只需 1 次,以后就可以直接使用工程模板了。2、连接Wiggler JTAG仿真器和MagicARM2410实验箱,然后安装Wiggler JTAG仿真器,正确设置仿真器(若已经安装、设置过,此步省略)。1)安装H-JTAG软件。(本机已安装)2)将 Wiggler JTAG仿真器的 25 针接口通过并口延长线与 PC 机的并口 LPT1 连接,先将Wiggler JTAG仿真器的20针接口通过连接电缆接到MagicARM2410实验箱主板的J29上,再给 MagicARM2410 实验箱供电。 3)点击 Windows 操作系统的【开始】-【程序】-【H-JTAG V0.2】-【H-JTAG】启动 H-JTAG,或双击桌面“H-JTAG”快捷方式启动。H-JTAG 会自动检测 ARM 内核,如果JTAG连接正确将会在H-JTAG主窗口中显示S3C2410A处理器的内核ARM920T。4)从【开始】-【程序】处启动 AXD调试环境,打开【Options】-【Configure Target.】,弹出 Choose Target窗口,如图 1.12 所示。点击“ADD”添加仿真器的驱动程序,在添加文件窗口选择如C:Program FilesH-JTAG V0.2 目录下的 H-JTAG.dll,点击“ Choose Target窗口中选择 H-JTAG项,点击“OK”按钮即可。 5)将”ADS集成开发环境及JTAG仿真器应用 初始化文件 ARM2410.txt”复制到“ bin”目录下,在AXD中打开【Options】-【Configure Interface】菜单,在弹出的Configure Interface 窗口中选择“Session file options”页,选中“Run Configuration Script”项,然后单击“Browse.”命令按钮去选择(ADS 安装目录 bin 目录下的)ARM2410.txt 文件,点击“确定”按钮,再关闭 AXD。这样,每次启动 AXD 时,在加载调试程序到目标板之前,AXD会先执行 ARM2410.txt 文件中的初始化命令,对目标板进行初始化(如系统时钟、SDRAM控制器等)。 3、 启动ADS 1.2,使用ARM Executable Image for DeviceARM2410工程模板建立一个工程LEDCON。4、 在src组中的main.c中编写实验代码。(验证GPIO输出功能)5、 选用DebugRel生成目标,然后编译链接工程。 6、 将MagicARM2410实验箱上的蜂鸣器跳线JP9短接,将启动方式选择跳线JP8短接,然后按RST键复位系统。7、 选择【Project】-【Debug】,启动AXD进行JTAG仿真调试。此时AXD主窗口将显示Starup.s源程序。如有问提,可能在步骤2中没有正确设置仿真器,还可以参看“ADS集成开发环境及JTAG仿真器应用.pdf”。8、调试程序,观察数据的变化 全速运行程序,程序将会在main.c的主函数中停止(因为main函数起始处默认设置有断点)。单击Context Variable图标按钮(或者选择【Processor Views】-【Variable】)打开变量观察窗口,通过此窗口可以观察局部变量和全局变量。可以单步运行程序,可以设置/取消断点,或者全速运行程序,停止运行程序,观

温馨提示

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

评论

0/150

提交评论