ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:269.10KB ,
资源ID:7956853      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7956853.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ARM实验指导书wjq.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ARM实验指导书wjq.docx

1、ARM实验指导书wjq实验一、ARM开发环境的建立一、实验目的 学会安装ADS集成环境及连接仿真硬件平台。 二、实验设备 硬件:嵌入式实验平台一套、仿真器一个、PC机一台。 软件:Windows 98/2000/NT/XP操作系统、仿真器驱动程序、ADS开发软件一套。三、实验内容 正确安装完全版ARM ADS1.2集成环境,并了解JTAG硬件仿真环境的一些设置和工作方法。 四、实验原理 ARM ADS (ARM DEVELOPER SUITE )是ARM平台集成开发环境,它包括两个部分:CodeWarrior for ARM Developer Suite 和AXD debugger 。 AX

2、D调试通过Windows驱动程序及中间件软件与JTAG接口连接,并通过JTAG接口与硬件平台连接 本实验使用ARMJtagDebugFinal中间件软件通过LPT1并行接口经JTAG协议转换连接ARM目标板。五、实验操作步骤1、安装ADS1.2集成开发环境, 把ADS1.2_Licence.rar中的license.dat文件copy到“C:Program FilesARMADSv1_2licenses”路径中,覆盖原来的license.dat,若安装目录设置为其他目录,必须copy到相应目录中。2、启动CodeWarrior for ARM Developer Suite集成开发环境,设置许

3、可证文件指向最新license.dat文件。3、首次使用时, 把文件夹ARMJtagDebugFinal.rar中的文件copy到“C:Program FilesARMADSv1_2ARMJtagDebugFinal”目录中或其他安装目录; 先安装ARMJtagDebugFinal驱动软件(以后不用再安装),即执行文件夹中的“安装驱动.exe”程序,并点击安装按钮,分别安装“并口驱动”和“OCX”;在桌面建立Arm7Agent和Arm9Agent两给快捷连接,分别指向ARMJtagDebugFinal目录中的Arm9.exe, Arm7.exe ;4 安装完毕驱动后,每次调试前,必须先启动运行

4、Arm7Agent或Arm9Agent调试代理软件(中间件),调试过程始终不要关闭调试代理程序,启动并正确连接硬件目标系统之后,既可以开始调试ARM7系统或ARM9系统;5、如果在以后的使用过程中发现程序无法启动,重新执行“安装驱动.exe” 即可;6、在ADW(SDT)/AXD(ADS)的调试配置选项里选择remote_a.dll7、在ADW/AXD的调试配置里IP地址必须填写:127.0.0.18、具体的调试使用可以参考jtag.exe的使用方法六、常见问题1、THUMB/ARM混合编程时断点设置要素当CPU处于一种CPU模式时(THUMB或ARM) 断点只可以设置在当前模式下的指令处不可

5、以设置在另一种模式下的指令解决方案设置一个断点在CPU模式切换指令处(如BX) 当程序运行到此指令并停下来后然后通过单步执行(Step)进入另一种状态这时候就可以在当前模式下任意设置断点了;2、THUMB/ARM混合编程时因为ADW/AXD启动时默任的CPU模式为ARM模式如果你启动调试前你的ARM CPU 正在执行Thumb模式指令那么将会导致调试错误解决方案按一下你的板子的复位键,然后再启动ADW/AXD即可;3、 为了加快软件影响单步执行速度现在暂时屏蔽了semihosting 功能如果你需要此功能可以EMAIL索取;4、如果出现无法逼使CPU进入调试的提示只需要复位你的板子,重新启动软

6、件即可;5、如果发现软件没有任何动作把它关了再启动;6、如果发现软件根本无法运行看不到其运行界面那么执行“安装驱动.exe”,重新驱动OCX即可;7、如果出现打开并口失败,那么执行安装驱动.exe , 重新并口驱动即可;8、如果提示检测不到ARM核如果你的CPU没坏供电正常那么就一定是你的JTAG板子问题了,应该参考常用的那种SDT或Wiggler接线然后在JTAG调试软件选择对应的选项SDT或wiggler或自定义;9、排除这些如果出现其他的调试错误,那么就是你设置ADW/AXD或你的板子问题了10、一些常见问题请参考 上的BBS;11、有任何疑问请EMAIL sendtoyouTang-Z

7、hongGen,调程序实验二、ADS 1.2 集成开发环境练习ARM ADS(ARM Developer Suite V1.2 )是ARM公司,为开发ARM内核处理机而提供的集成开发环境(IDE)和集成调试环境(ICE)。本书涉及的实验均以ADS为默认开发、调试环境。 一、实验目的 学会ADS集成环境。 二、实验设备 硬件:嵌入式实验平台一套、仿真器一个、PC机一台。 软件:Windows 98/2000/NT/XP操作系统、仿真器驱动程序、ADS开发软件一套。三、实验内容 正确安装完全版ARM ADS1.2集成环境,并了解整个仿真环境的一些设置和工作方法。 四、实验原理 ARM ADS (A

8、RM DEVELOPER SUITE )是ARM平台集成开发环境,它包括两个部分,CodeWarrior for ARM Developer Suite 和AXD debugger ,前者具有编辑,编译,链接等功能并可生成二进制文件(.bin)和可执行的映象文件(.axf)以及各源文件的目标代码(.o);后者可以装载映象文件或二进制文件到ARM平台,并可实现跟踪调试。 五、实验操作步骤 1. 启动CodeWarrior for ARM Developer Suite(ADS 集成开发环境),点击开始菜单/ 程序/ARM Developer Suite v1.2/CodeWarrior for

9、ARM Developer Suite 会出现如下界面:2.点击【File】菜单中的【NEW】,在打开的菜单中选择PROJECT,在窗口中定义路径、名称以及工程项目的属性(ARM EXECUTABLE IMAGE)然后点击“确定”。 3. 生成的项目默认目标有DEBUG(调试版)、RELEASE(发行版)和DEBUGREL(带部分调试信息的发行版)。在【TARGET】中可以看到,此时的项目是个没有内容的空项目,需要加入文件【FILES】。 4. 点击【FILES】后,加入文件的方法有两种,从工具栏PROJECT下拉菜单中选择ADD FILES (CREATE GROUP文件组)或在空白区域内点

10、击鼠标右键弹出菜单,加入FILE( GROUP)。5. 将先前编辑好的文件test.s添加到该项目中来。 6. 文件添加完毕之后,可以打开其中的一个或多个文件进行修改和编辑。与文本编辑相关的操作主要在工具栏【EDIT】菜单中,主要有删除、拷贝、剪切、粘贴、恢复等操作。查找、替换等需要在多个文件间切换的功能菜单在【SEARCH】工具栏菜单中。 7. 修改完毕后保存好新建的项目。 8. 根据目标板的具体情况进行一些必要的设置工作。在CodeWarrior for ARM Developer Suite中点击EditDebugRel Settings. 按钮。将LinkerARM Linker 中的

11、RO Base 和RW Base 值改为目标板的ROM,RAM 地址,然后点击OK 按钮。对项目进行完设置后,点击ProjectMake 按钮或按快捷键F7,对项目文件进行编译。9. 在对项目进行了编译之后如果没有编译错误,就可以进行仿真了。点击ProjectDebug 按钮或按快捷键F5,启动AXD,用仿真器进行仿真。 提示:本书以后所有演示程序在运行前,均需在DebugRel Settings 做以下的设置:1ARM Linker 设置RO Base 为0x0c008000 2做如下图的设置: 完成以上两步,程序方可正常执行。六、练习题 1. 仿真环境包括哪些内容? 2. 仿真手段除了介绍

12、的方式外还有哪些? 3. 把平台初始化文件hm.ini中的命令行,逐行解释出来(在AXD command窗口下按F1可得到命令说明)。 实验三、汇编指令实验一、实验目的 掌握ARM7TMDI 汇编指令的用法,并能编写简单的汇编程序; 学习ARM 微控制器的16 位Thumb 汇编指令的使用方法掌握指令的条件执行;二、实验设备 硬件:嵌入式实验平台一套、仿真器一个、PC机一台。 软件:Windows 98/2000/NT/XP 操作系统、仿真器驱动程序、ADS开发软件一套。 三、实验内容 分别使用ARM、Thumb指令ADD,MOV,CMP,B 计算123N 的值。四、实验原理 ARM 处理器共

13、有两种工作状态: ARM 32 位,这种状态下执行字对准的ARM 指令。 Thumb 16 位,这种状态下执行半字对准的Thumb 指令。 注意:ARM和Thumb 之间状态的切换不影响处理器的模式或寄存器的内容。 ARM 处理器在两种工作状态之间可以切换。 (1) 进入Thumb 状态。当操作数寄存器的状态位0 为1 时,执行BX 指令进入Thumb 状态。如果处理器在Thumb 状态进入异常,则当从异常出来(IRQ、FIQ、Undef、Abort、SWI)返回时,自动切换到Thumb 状态。 (2)进入ARM 状态。当操作数寄存器的状态位0 为0 时,执行BX 指令进入ARM 状态。处理器

14、进行异常处理(IRQ、FIQ、Undef、Abort、SWI)。在此情况下,把PC 放入异常模式链接寄存器中。从异常向量地址开始执行也可以进入ARM 状态。 Thumb 状态下的寄存器集是ARM 状态下寄存器集的子集。程序员可以直接访问8 个通用寄存器(R0R7)、PC、SP、LR 和CPSP。每一种特权模式都有一组SP、LR 和SPSR。Thumb 状态的R0-R7 与ARM 状态的R0-R7 一致。 Thumb 状态的CPSR 和SPSR 与ARM 状态下的CPSR和SPSR 一致。 Thumb 状态的SP 映射到ARM 状态的R13。 Thumb 状态的LR 映射到ARM 状态的R14。

15、 Thumb 状态的PC 映射到ARM 状态的PC(R15)。 本程序使用R0 保存结果,所以一开始就要初始化为0;循环执行R0=R0+R1,R1 为循环计数器,从1 开始计数,每一次循环R1 加1;当循环计数器R1 的值到达N 时,运算结束。五、实验操作步骤 1启动ADS1.2,使用ARM Execuatable Image 工程模板建立一个工程ASM_Project。 2建立源文件test2.s,编写实验程序,然后添加到工程中(ARM指令和Thumb 指令实验的test2.s 程序源码分别见下清单) 。 3设置工程链接地址RO Base 为0x0C000000 4编译链接工程,选择【Pro

16、ject】-【Debug】,启动AXD进行调试。 5打开寄存器窗口(Processor Registers),选择Current 项监视各寄存器的值。 6单步运行程序,注意执行BX R0指令前后CPSR寄存器的T位。 说明:在寄存器窗口的CPSR 寄存器,大写字母的位表示该位为1,小写字母的位表示该位为0(比如“T”表示T 位为1,“t”表示T 位为0)。 7理解并掌握本实验原理及程序,完成练习题 。六、实验参考程序 Thumb 汇编指令实验的参考程序代码清单 ;文件名:test.s ;功能:计算123+N 的值 N EQU 50 ; 定义N 的值为50 AREA testcode, CODE

17、, READONLY ;声明代码段testcode ENTRY ;标识程序入口 CODE32 ; 声明32 位ARM 指令 ARM_CODE LDR SP, =0x40003F00 ;设置堆栈指针 ADR R0,THUMB_CODE+1 BX R0 ;跳转并切换处理器状态 LTORG ;声明文字池 CODE16 ;声明16 位Thumb 指令 THUMB_CODE LDR R0,=N ;设置子程序SUM_N 的入口参数 BL SUM_N ;调用子程序SUM_N B THUMB_CODE ;名称:SUM_N ;功能:计算123+N 的值 ;入口参数:R0( N 的值 ) ;出口参数:R0( 运算

18、结果 ) SUM_N PUSH R1-R7,LR ;寄存器入栈保护 MOVS R2,R0 ;将N 的值复制到R2,并影响条件码标志 BEQ SUM_END ;若N的值为0,则返回。 CMP R2,#1 BEQ SUM_END ;若N的值为1,则返回。 MOV R1,#1 ;初始化计算器R11 MOV R0, #0 ;初始化结果寄存器R00 SUM_L1 ADD R0,R1 ; R0R0R1 BCS SUM_ERR ;结果溢出,跳转到SUM_ERR CMP R1,R2 ;将计算器的值与N 比较 BHS SUM_END ;若计数器的值N,则运算结束 ADD R1,#1 B SUM_L1 SUM_E

19、RR MOV R0, #0 SUM_END POP R1-R7,PC ;寄存器出栈,返回 END ;ARM 汇编指令实验的参考程序代码清单 ;文件名:add.s ;功能:计算123+N 的值 N EQU 5;AREA Example,CODE,READONLY ENTRY CODE32 START LDR R0,=N MOV R2,R0 ;R2 充当计数器 MOV R0,#0 MOV R1,#0 LOOP CMP R1,R2 BHI ADD_END ADD R0,R0,R1 ADD R1,R1,#1 B LOOP ADD_END B START END 七、练习题 1.如何切换处理器状态 2.

20、在Thumb 指令只有哪一条指令具有条件执行功能? 3.如何判断运算结果溢出? 实验四、ARM 微处理器工作模式实验一、实验目的通过实验掌握学会使用MSR/MRS 指令实现ARM 处理器工作模式的切换,观察不同模式下的寄存器,加深对CPU 结构的理解。二、实验设备硬件:嵌入式实验平台一套、仿真器一个、PC机一台。软件:Windows 98/2000/NT/XP 操作系统、仿真器驱动程序、ADS 开发软件一套。三、实验内容通过ARM 汇编指令,在各种处理器模式下切换并观察各种模式下寄存器的区别;掌握ARM 不同模式的进入与退出。四、实验原理1ARM 处理器模式ARM 体系结构支持表1-所示的7

21、种处理器模式。处理器模式说明:用户 usr 正常程序执行模式FIQ fiq 支持告诉数据传送或通道处理IRQ Irq 用于通用中断处理管理 svc 操作系统保护模式中止 abt 实现虚拟存储器和/或存储器保护未定义 und 支持硬件协处理器的软件仿真系统 sys 运行特权操作系统任务在软件控制下也可以改变模式,外部中断或异常处理也可以引起模式发生改变。大多数应用程序在用户模式下执行。当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统资源,也不能改变模式,除非异常发生。这允许适当编写操作系统来控制系统资源的使用。除用户模式外的其他模式成为特权模式。它们可以自由地访问系统资源和改变模

22、式。其中5 种称为异常模式,即:FIQ(Fast Interrupt Request); IRQ(Interrupt Request); 管理(Supervisor); 中止(Abort); 为定义(Undefined) 。当特定的异常出现时,进入相应的模式。每种模式都有某些附加的寄存器,以避免异常出现时用户模式的状态不可靠。剩下的模式是系统模式。仅ARM 体系结构V4 以及以上的版本有该模式。不能由于任何异常而进入该模式。它与用户模式有相同的寄存器,但它是特权模式,不受用户模式的限制。它供需要访问系统资源的操作系统任务使用,但希望避免使用与异常模式有关的附加寄存器。避免使用附加寄存器保证了当

23、任何异常出现时,都不会使任务的状态不可靠。2程序状态寄存器在所有处理模式下,都可以访问当前程序状态寄存器CPSR。CPSR包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息。每种异常模式都有一个程序状态保存寄存器SPSR。当异常出现时,SPSR用于保存CPSR的状态。 CPSR 和SPSR 的格式如下: 31 30 29 28 27 26 8 7 6 5 4 3 2 1 0 N Z C V Q DNM(RAZ) I F T MMMM M (1)条件码标志 N、Z、C、V:大多数指令可以检测这些条码标志,以决定程序指令如何执行。(2)控制位 最低8 位I、F、T 和M 位用作控制位

24、。当异常出现时改变控制位。当处理器在特权模式下时也可以由软件改变。 中断禁止位:I置1 则禁止IRQ 中断;F 置1 则禁止FIQ 中断。 T 位:T0 指示ARM 执行;T1指示Thumb 执行。在这些体系结构的系统中,可自由地使用能在ARM 和Thumb 状态之间切换的指令。 模式位:M0、M1、M2、M3 和M 4(M4:0)是模式位。这些位决定处理器的工作模式,如表1- 所列: M4:0 模式可访问的寄存器0b10000 用户 PC, R14R0, CPSR 0b10001 FIQ PC, R14_fiqR8_fiq, R7R0, CPSR, SPSR_fiq 0b10010 IRQ

25、PC, R14_irqR13_irq, R12R0, CPSR, SPSR_irq 0b10011 管理 PC ,R14_svcR13_svc, R12R0, CPSR, SPSR_svc 0b10111 中止 PC, R14_abtR13_abt, R12R0, CPSR, SPSR_abt 0b11011 为定义 PC,R14_undR13_und,R12R0, CPSR, SPSR_und 0b11111 系统 PC,R14R0,CPSR (3)其他位 程序状态寄存器的其他位保留,用作以后扩展。 五、实验操作步骤1.启动ADS1.2 ,建立一个新的工程;2.建立汇编源程序文件TEST3.

26、S,编写实验程序,添加到工程中;3.编译链接工程,点击Debug 按钮,启动AXD 进行调试;4.点击【Processor Views】-【Registers】,打开Current 项监视个寄存器的值; 5.单步运行程序,注意观察CPSR、SPSR 以及R0 寄存器值得变化。 说明:CPSR 寄存器显示方式如图1- 所示。显示分为两部分,一部分是各个标志位,另一部分是工作模式。 标志位NZCVQ 为条件码标志N、Z、C、V、Q,显示为大写字母,表示该位为1;显示为小写字母,表示该位为0。Q标志在ARM 体系结构v5 及以上版本的E 变量中才有效。 标志位IFT 为IRQ 中断禁止位I、FIQ中

27、断禁止位F、ARM微控制器状态位T,显示为大写字母,表示该位为1;显示为小写字母,表示该位为0。T 标志在ARM 体系结构v4 及以上版本的T变量中才有效。 6理解并掌握本实验原理及程序,完成练习题六、实验参考程序;ARM 微控制器工作模式实验的参考程序如下:;定义堆栈的大小USR_STACK_LEGTH EQU 64 SVC_STACK_LEGTH EQU 0 FIQ_STACK_LEGTH EQU 16 IRQ_STACK_LEGTH EQU 64 ABT_STACK_LEGTH EQU 0 UND_STACK_LEGTH EQU 0 AREA Example3,CODE,READONLY

28、 ;声明代码段Example3 ENTRY ;标识程序入口 CODE32 ;声明32 位ARM 指令START MOV R0,#0 MOV R1,#1 MOV R2,#2 MOV R3,#3 MOV R4,#4 MOV R5,#5 MOV R6,#6 MOV R7,#7 MOV R8,#8 MOV R9,#9 MOV R10,#10 MOV R11,#11 MOV R12,#12 BL InitStack ;初始化各模式下的堆栈指针;打开IRQ 中断(将CPSR 寄存器的1 位清零) MRS R0,CPSR ;R0 -CPSR BIC R0,R0,#0X80 MSR CPSR_cxsf,R0

29、;CPSR -R0 ;切换到用户模式 MSR CPSR_c,#0xd0 MRS R0,CPSR;切换到管理模式 MSR CPSR_c,#0xd0 MRS R0,CPSR HALT B HALT ;名称:InitStack ;功能:堆栈初始化,即初始化各模式下下的堆栈指针。;入口参数:无;出口参数:无;说明:在特权模式下调用此子程序,比如复位后的管理模式InitStack MOV R0,LR ;R0 -LR ,因为各种模式下R0 是相同的;设置管理模式堆栈 MSR CPSR_c,#0xd3 LDR SP,StackSvc ;设置中断模式堆栈 MSR CPSR_c,#0xd2 LDR SP,Sta

30、ckIrq ;设置快速中断模式堆栈 MSR CPSR_c,#0xd1 LDR SP,StackFiq ;设置中止模式堆栈 MSR CPSR_c,#0xd7 LDR SP,StackAbt ;设置为定义模式堆栈MSR CPSR_c,#0xdb LDR SP,StackUnd;设置系统模式堆栈 MSR CPSR_c,#0xdf LDR SP,StackUsr MOV PC,R0StackUsr DCD UsrStackSpace+(USR_STACK_LEGTH-1)*4 StackSvc DCD SvcStackSpace+(SVC_STACK_LEGTH-1)*4 StackIrq DCD IrqStackSpace+(IRQ_STACK_LEGTH-1)*4 StackFiq DCD FiqStackSpace+(FIQ_STACK_LEGTH-1)*4 StackAbt DCD AbtStackSpace+(ABT_STACK_LEGTH-1)*4 StackUnd DCD UndStackSpace+

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1