ARM嵌入式系统与应用-实验报告

上传人:我*** 文档编号:129852136 上传时间:2020-04-23 格式:DOC 页数:32 大小:998KB
返回 下载 相关 举报
ARM嵌入式系统与应用-实验报告_第1页
第1页 / 共32页
ARM嵌入式系统与应用-实验报告_第2页
第2页 / 共32页
ARM嵌入式系统与应用-实验报告_第3页
第3页 / 共32页
ARM嵌入式系统与应用-实验报告_第4页
第4页 / 共32页
ARM嵌入式系统与应用-实验报告_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《ARM嵌入式系统与应用-实验报告》由会员分享,可在线阅读,更多相关《ARM嵌入式系统与应用-实验报告(32页珍藏版)》请在金锄头文库上搜索。

1、华中科技大学武昌分校信息科学与技术系ARM嵌入式系统与应用实验报告专业班级: 通信工程0801 学 号 _姓 名 _ 朱焱_实验老师 _ 刘丽_ _ 总 评 分 _ 实验一 汇编指令试验一、实验目的 掌握ARM7TMDI 汇编指令的用法,并能编写简单的汇编程序; 学习ARM 微控制器的16 位Thumb 汇编指令的使用方法 掌握指令的条件执行二、实验设备 硬件:嵌入式实验平台一套、仿真器一个、PC 机一台。 软件:Windows 98/2000/NT/XP 操作系统、仿真器驱动程序、ADS 开发软件一套。三、实验内容分别使用ARM、Thumb 指令ADD,MOV,CMP,B 计算123N 的值

2、。四、实验原理ARM 处理器共有两种工作状态: 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 指令

3、进入ARM 状态。处理器进行异常处理(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 映

4、射到ARM 状态的R14。 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 为0x0C4编译链接工程,选择【

5、Project】-【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,READON

6、LY 区域名为testcode,代码,只读ENTRY 入口CODE32ARM_CODE LDR SP,=0x40003F00 sp=0x40003F00ADR R0,THUMB_CODE+1 将分支目标地址送R0,使R1的bit0=1BX R0 分支并且转换为thumb状态LTORGCODE16 汇编以下代码为thumb指令THUMB_CODELDR R0,=N 伪指令R0=50BL SUM_N 跳转到SUM_N执行B THUMB_CODE 跳转到THUMB_CODE,thumb模式;名称:SUM_N;功能:计算123+N 的值;入口参数:R0( N 的值 );出口参数:R0( 运算结果 )S

7、UM_NPUSH R1-R7,LRMOVS R2,R0 R0的内容放入R2BEQ SUM_END 相等转到SUM_ENDCMP R2,#1 R2与1比较 ,设置标志位BEQ SUM_END 相等转到SUM_ENDMOV R1,#1 将1送入R1MOV R0,#0 将0送入R0SUM_L1 ADD R0,R1 R0=R0+R1BCS SUM_ERR CMP R1,R2 R1与R2比较,设置标志位BHS SUM_END ADD R1,#1 R0=R0+1B SUM_L1 转到SUM_L1SUM_ERR MOV R0,#0_ 将0送入R0SUM_END POP R1-R7,PCENDARM 汇编指令

8、实验的参考程序代码清单:;文件名:add.s;功能:计算123+N 的值N EQU 5; 定义N的内容为5 AREA Example,CODE,READONLY 定义区域,区域名为Example,代码,只读 ENTRY 入口 CODE32START LDR R0,=N R0=5 MOV R2,R0 R2=R0 MOV R0,#0 R0=0 MOV R1,#0 R1=0LOOP CMP R1,R2 比较R1与R2 BHI ADD_END ADD R0,R0,R1 R0=R0+R1 ADD R1,R1,#1 R1=R1+1 B LOOP 转到loopADD_END B START 转到start

9、END七、练习题1.如何切换处理器状态?使R1的bit0=1,分支并且转换为thumb状态,使R1的bit0=0,分支并且转换为ARM状态2.在Thumb 指令只有哪一条指令具有条件执行功能?BL SUM_N实验二 ARM 微处理器工作模式实验一、实验目的通过实验掌握学会使用MSR/MRS 指令实现ARM 处理器工作模式的切换,观察不同模式下的寄存器,加深对CPU 结构的理解。二、实验设备硬件:嵌入式实验平台一套、仿真器一个、PC 机一台。软件:Windows 98/2000/NT/XP 操作系统、仿真器驱动程序、ADS 开发软件一套。三、实验内容通过ARM 汇编指令,在各种处理器模式下切换并

10、观察各种模式下寄存器的区别;掌握ARM 不同模式的进入与退出。四、实验原理1ARM 处理器模式ARM 体系结构支持表1- 所示的7 种处理器模式。处理器模式 说明用户 usr 正常程序执行模式FIQ fiq 支持告诉数据传送或通道处理IRQ irq 用于通用中断处理管理 svc 操作系统保护模式中止 abt 实现虚拟存储器和/或存储器保护未定义 und 支持硬件协处理器的软件仿真系统 sys 运行特权操作系统任务表1- 处理器模式在软件控制下也可以改变模式,外部中断或异常处理也可以引起模式发生改变。大多数应用程序在用户模式下执行。当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统

11、资源,也不能改变模式,除非异常发生。这允许适当编写操作系统来控制系统资源的使用。除用户模式外的其他模式成为特权模式。它们可以自由地访问系统资源和改变模式。其中5 种称为异常模式,即:FIQ (Fast Interrupt Request);IRQ (Interrupt Request);管理 (Supervisor);中止 (Abort);未定义 (Undefined)当特定的异常出现时,进入相应的模式。每种模式都有某些附加的寄存器,以避免异常出现时用户模式的状态不可靠。剩下的模式是系统模式。仅ARM 体系结构V4 以及以上的版本有该模式。不能由于任何异常而进入该模式。它与用户模式有相同的寄存器,但它是特权模式,不受用户模式的限制。它供需要访问系统资源的操作系统任务使用,但希望避免使

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号