第一篇ARM培训实验指导书(第一版).doc_第1页
第一篇ARM培训实验指导书(第一版).doc_第2页
第一篇ARM培训实验指导书(第一版).doc_第3页
第一篇ARM培训实验指导书(第一版).doc_第4页
第一篇ARM培训实验指导书(第一版).doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

NXP大学计划指定实验教材ARM与嵌入式技术版 本:2008年1月第一版9目 录熟悉Embest IDE集成开发环境1 ARM汇编指令实验(1)4ARM汇编指令实验(2)9实验一熟悉Embest IDE集成开发环境一 实验目的:初步学会使用Embest IDE for ARM开发环境。二实验设备:硬件:PC机;软件:Embest IDE 2003集成开发环境,WindowsXP。三 实验内容1. 学会使用Embest IDE 2003集成开发环境,可参见2. 在开发环境下完成第四章课后练习。四实验操作步骤 1)新建工程:运行Embest IDE集成开发环境,选择FileNew-Workspace菜单项,弹出一个对话框,按照图2.1所示输入相关内容。 单击OK按钮,将创建一个新工程,并同时创建一个与工程名相同的工作区。此时在工作区窗口将打开该工作区和工程。 2)建立源文件:选择FileNew菜单项,弹出一个新的、没有标题的文本编辑窗口,输入光标位于窗口中第一行,按照实验参考程序编辑输入源文件代码。编辑完后,保存文件asml_a.s。 3)添加源文件:选择ProjectAdd To ProjectFiles项,或单击工程管理窗口中的相应右键快捷菜单命令,打开文件选择对话框,在工程目录下选择刚才建立的源文件asml_a.s。 4)基本设置:选择ProjectSettings菜单项,或按下快捷键Alt+F7,弹出工程设置对话框。在工程设置对话框中,选择Processor属性页,按照图2.2所示,对目标板所用处理器进行设置。图2.3新的工作区处理器设置图2.2新的工作区处理器设置5)生成目标代码:选择BuildBuild asm_a菜单项,或按下快捷键F7,生成目标代码。也可以单击工具栏上相应按钮来完成,如图2.3所示。6)调试设置:选择ProjectSettings菜单项,或按下快捷键Alt+F7,弹出工程设置对话框。在工程设置对话框中,选择Remote页面,按照图2.4所示对调试设备模块进行设置。图2.4新的工作区仿真器设置图2.4新的工作区仿真器设置选择Debug页面,按照图2.5所示进行调试模块设置。 注意:Symbol file与Download file设置应该相同,用户可以从Linker页面拷贝系统默认的输出文件配置;且该实验输入下载地址为0x8000,即为AS默认的代码段起始地址。由于图2.5新的工作区调试器设置汇编和链接选项在本实验中没有进行设置,完全使用其默认选项,所以,代码段是从0x8000开始的,下载地址应该与它保持一致。7)选择DebugRemote Connect连接软件仿真器,执行Download命令下载程序,并打开寄存器窗口。 8)打开存储器窗口,观察相关地址的内容。五 练习题在开发环境下完成第四章课后练习题。实验二 ARM汇编指令实验(1)一 实验目的 初步学会使用Embest IDE for ARM开发环境及ARM软件模拟器 通过实验掌握简单ARM汇编指令的使用方法。二实验设备 硬件:PC机; 软件:Embest IDE 2003集成开发环境,Windows 982000NTXP。三 实验内容 熟悉开发环境的使用并使用LDRSTR和MOV等指令访问寄存器或存储单元。使用ADDSUBLSLLSRANDORR等指令完成基本数学逻辑运算。熟悉开发环境的使用并完成一块存储区的拷贝。完成分支程序设计,要求判断参数,根据不同参数,调用不同的子程序。四实验原理 ARM处理器共有37个寄存器: 31个通用寄存器,包括程序计数器(PC)。这些寄存器都是32位。 6个状态寄存器。这些寄存器也是32位,但只使用了其中的12位。 1ARM通用寄存器 通用寄存器(R0R15)可分l3类即不分组寄存器R0R7、分组寄存器R8R14、程序计数器R15。 1)不分组寄存器R0R7 R0R7是不分组寄存器。这意味着在所有处理器模式下它们每一个都访问一样的32位寄存器。它们是真正的通用寄存器没有体系结构所隐含的特殊用途 2)分组寄存器R8R14 R8R14是分组寄存器。它们每一个访问的物理寄存器取决于当前的处理器模式。若要访问特定的物理寄存器而不依赖当前的处理器模式,则要使用规定的名字。 寄存器R8R12各有两组物理寄存器:一组为FIQ模式,另一组为除了FIQ以外的所有模式。寄存器R8R12没有任何指定的特殊用途。只是使用R8R12来简单地处理中断。寄存器R13和R14各有6个分组的物理寄存器,1个用于用户模式和系统模式,其他5个分别用于5种异常模式。寄存器R13通常用做堆栈指针,称作SP。每种异常模式都有自己的R13。寄存器R14用作子程序链接寄存器,也称作LR。 3)程序计数器R15 寄存器R15用做程序计数器(PC)。 在本实验中,ARM核工作在用户模式,R0R15可用。 2存储器格式 ARM体系结构将存储器看作是从零地址开始的字节的线性组合。字节03存放第1个字,字节47存放第2个字,以此类推。 ARM体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。 1)大端格式 在这种格式中,字数据的高位字节存储在低地址中,而字数据的低位字节存放在高地址中。 2)小端格式 在这种格式中,字数据的高位字节存放在高地址中,而字数据的低位字节存放在低地址中。 3ARM程序状态寄存器 在所有处理器模式下,都可以访问当前程序状态寄存器CPSR。CPSR包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息。每种异常模式都有一个程序状态保存寄存器SPSR。当异常出现时,SPSR用于保存CPSR的状态。4GNU基础知识Embest IDE集成了GNU汇编器as、编译器gcc和链接器ld。因此,编写程序要符合GNU的语法和规则。这里简单介绍几点基本知识:程序默认入口点为“start”,代码段默认起始地址为0x8000;as语法及规则:l )标号的使用标号由一个符号后跟一个冒号组成,它表示程序中当前的指令或者数据地址。如果在程序中出现两个相同的标号,汇编器会产生一个警告,同时,只有第一个标号有效。2)equequ伪操作为数字常量、基于寄存器的值和程序中的标号定义一个字符名称。语法格式equ symbol,expr其中,expr为基于寄存器的地址值、程序中的标号、32位的地址常量或者32位的常量。symbol为equ伪操作为expr定义的字符名称。示例equ Version, “0.1”3)global及globlglobal声明一个符号可以被其他文件引用,相当于声明了一个全局变量。globl与global相同。语法格式global symbol其中,symbol为声明的符号的名称。它是区分大小写的。示例global MyAsmFunc4)texttext伪操作将操作符开始的代码编译到代码段或代码段子段(Subsection)中。语法格式text subsection示例text5)end标记汇编文件的结束行,即标号后的代码不作处理。语法格式end6)LDRLDR伪指令将一个32位常数或者一个地址值读取到寄存器中。当需要读取到寄存器中的数据超过了MOV或者MVN指令可以操作的范围时,可以使用LDR伪指令将该数据读取到寄存器中。在汇编编译器处理源程序时,如果该常数没有超过MOV或者MVN可以操作的范围,则LDR指令被这两条指令中的一条所替代;否则,该常数将被放在最近的一个文字池(Literal Poo1)内,同时,本指令被一条基于PC的LDR指令替代。语法格式LDR ,=其中,expression为需要读取的32位常数。register为目标寄存器。示例LDR r1,=0xffLDR r0,=0xfff000007)1torg 1torg伪操作用于在当前段(一般是text段)的当前地址(字对准地址)产生一个文字池。语法格式1torg五 实验操作步骤 1实验A1)7)同实验一。 8)打开存储器窗口,观察地址0x80000x801F的内容,以及地址0xFF00xFFF的内容。 9)单步执行程序并观察和记录寄存器与存储器值的变化。10)结合实验内容和相关资料,观察程序运行,通过实验加深理解ARM指令的使用。11)理解和掌握实验后,完成实验练习题。2实验B1)参考实验A,建立一个工程,命名为asm1_b。2)参考实验A完成目标代码的生成与调试。 3)打开存储器窗口,观察地址0x80540x80A0的内容,以及地址0x80A40x80F0内容。4)单步执行程序并观察和记录寄存器与存储器值的变化,注意观察步骤3的地址中内容变化。当执行STMFD、LDMFD、LDMIA和STMIA指令时,注意观察其后面参数所指的地址段或寄存器段的内容变化。5)结合实验内容和相关资料,观察程序运行,通过实验加深理解ARM指令的使用。6)理解和掌握实验后,完成实验练习题。六实验参考程序1实验A参考程序.equ x, 45.equ y, 64.equ stack_top, 0x1000.global _start.text_start: MOV sp, #stack_top MOV r0, #x STR r0,sp MOV r0,#y LDR rl,sp ADD r0,r0, r1 STR r0,sp stop: B stop .end2实验B参考程序 global_start text equ num, 20 _start: LDR r0,=src LDR rl, =dst MOV r2,#num MOV sp,#0x400 blockcopy: MOVS r3,r2,LSR #3 BEQ copywords STMFD sp!,r4-r11 octcopy: LDMIA r0!,r4-r11 STMIA rl!,r4-r11) SUBS r3,r3,#1 BNE octcopy LDMFD sp!,r4-r14 copywords: ANDS r2, r2, #7 BEQ stop wordcopy: LDR r3,r0,#4 STR r3,r1,#4 SUBS r2, r2, #1 BNE wordcopy stop: B stop 1torg src: 1ong 1,2,3,4,5,6,7

温馨提示

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

评论

0/150

提交评论