嵌入式系统与应用实验

上传人:碎****木 文档编号:229367437 上传时间:2021-12-25 格式:DOCX 页数:30 大小:769.83KB
返回 下载 相关 举报
嵌入式系统与应用实验_第1页
第1页 / 共30页
嵌入式系统与应用实验_第2页
第2页 / 共30页
嵌入式系统与应用实验_第3页
第3页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

1、嵌入式系统与应用实验报告班级:网络 111姓名:石长江学号:20110082412330 / 30实验一 汇编指令试验一、实验目的掌握ARM7TMDI 汇编指令的用法,并能编写简单的汇编程序; 学习ARM 微控制器的16 位Thumb 汇编指令的使用方法掌握指令的条件执行二、实验设备硬件:嵌入式实验平台一套、仿真器一个、PC 机一台。软件:Windows 98/2000/NT/XP 操作系统、仿真器驱动程序、ADS 开发软件一套。三、实验内容分别使用ARM、Thumb 指令ADD,MOV,CMP,B 计算123N 的值。四、实验原理ARM 处理器共有两种工作状态:ARM 32 位,这种状态下执

2、行字对准的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 状态。处理器进行异常处理(IRQ、FIQ、Undef、Abort

3、、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。Thumb 状态的PC 映射到ARM 状态的PC(R15)

4、。本程序使用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 为0x0C0000004. 编译链接工程,选择【Project】-【Debug】,启动AXD 进行调试。5打开寄存

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

6、_CODE LDR SP,=0x40003F00sp=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( 运算结果 )SUM_NPUSH R1-R7,LRMOVS R2,R0R0的内容放入R2BEQ SUM_E

7、ND相等转到SUM_ENDCMP R2,#1R2与1比较 ,设置标志位BEQ SUM_END MOV R1,#1 MOV R0,#0相等转到SUM_END 将1送入R1将0送入R0SUM_L1ADD R0,R1R0=R0+R1BCS SUM_ERRCMP R1,R2R1与R2比较,设置标志位BHS SUM_ENDADD R1,#1R0=R0+1B SUM_L1 SUM_ERR MOV R0,#0 SUM_END POP R1-R7,PCENDARM 汇编指令实验的参考程序代码清单:;文件名:add.s;功能:计算123+N 的值转到SUM_L1 将 0 送入R0NEQU 5;定义N 的内容为

8、5AREA Example,CODE,READONLY定义区域,区域名为Example,代码,只读ENTRY入口CODE32STARTLDR R0,=NR0=5MOV R2,R0R2=R0MOV R0,#0R0=0MOV R1,#0R1=0LOOPCMP R1,R2比较R1 与 R2BHI ADD_ENDADD R0,R0,R1R0=R0+R1ADD R1,R1,#1R1=R1+1B LOOP转到 loopADD_ENDB START转到 startEND实验二 ARM 微处理器工作模式实验一、实验目的通过实验掌握学会使用MSR/MRS 指令实现ARM 处理器工作模式的切换,观察不同模式下的寄

9、存器,加深对CPU 结构的理解。二、实验设备硬件:嵌入式实验平台一套、仿真器一个、PC 机一台。软件:Windows 98/2000/NT/XP 操作系统、仿真器驱动程序、ADS 开发软件一套。三、实验内容通过ARM 汇编指令,在各种处理器模式下切换并观察各种模式下寄存器的区别;掌握ARM 不同模式的进入与退出。四、实验原理1. ARM 处理器模式ARM 体系结构支持表1- 所示的7 种处理器模式。处理器模式 说明用户 usr 正常程序执行模式FIQ fiq 支持告诉数据传送或通道处理IRQ irq 用于通用中断处理管理 svc 操作系统保护模式中止 abt 实现虚拟存储器和/或存储器保护未定

10、义 und 支持硬件协处理器的软件仿真系统 sys 运行特权操作系统任务表1- 处理器模式在软件控制下也可以改变模式,外部中断或异常处理也可以引起模式发生改变。大多数 应用程序在用户模式下执行。当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统资源,也不能改变模式,除非异常发生。这允许适当编写操作系统来控制系统资源的使用。除用户模式外的其他模式成为特权模式。它们可以自由地访问系统资源和改变模式。其中5 种称为异常模式,即:FIQ (Fast Interrupt Request); IRQ (Interrupt Request);管理 (Supervisor); 中止 (Abort

11、);未定义 (Undefined)当特定的异常出现时,进入相应的模式。每种模式都有某些附加的寄存器,以避免异常 出现时用户模式的状态不可靠。剩下的模式是系统模式。仅ARM 体系结构V4 以及以上的版本有该模式。不能由于任何异常而进入该模式。它与用户模式有相同的寄存器,但它是特权模式,不受用户模式的限制。它供需要访问系统资源的操作系统任务使用,但希望避免使用与异常模式有关的附加寄存器。避免使用附加寄存器保证了当任何异常出现时,都不会使任务的状态不可靠。2. 程序状态寄存器在所有处理模式下,都可以访问当前程序状态寄存器CPSR。CPSR包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信

12、息。每种异常模式都有一个程序状态保存寄存器SPSR。当异常出现时,SPSR用于保存CPSR的状态。CPSR 和SPSR 的格式如下:(1) 条件码标志N、Z、C、V:大多数指令可以检测这些条码标志,以决定程序指令如何执行。(2) 控制位最低8 位I、F、T 和M 位用作控制位。当异常出现时改变控制位。当处理器在特权模式下时也可以由软件改变。l 中断禁止位:I 置1 则禁止IRQ 中断;F 置1 则禁止FIQ 中断。l T 位:T0 指示ARM 执行;T1 指示Thumb 执行。在这些体系结构的系统中,可自由地使用能在ARM 和Thumb 状态之间切换的指令。l 模式位:M0、M1、M2、M3

13、和M4(M4:0)是模式位。这些位决定处理器的工作模(3) 其他位程序状态寄存器的其他位保留,用作以后扩展。五、实验操作步骤1. 启动ADS1.2,建立一个新的工程;2. 建立汇编源程序文件TEST3.S,编写实验程序,添加到工程中;3. 编译链接工程,点击Debug 按钮,启动AXD 进行调试;4. 点击【Processor Views】-【Registers】,打开Current 项监视个寄存器的值;5. 单步运行程序,注意观察CPSR、SPSR 以及R0 寄存器值得变化。说明:CPSR 寄存器显示方式如图1- 所示。显示分为两部分,一部分是各个标志位,另一部分是工作模式。标志位NZCVQ

14、 为条件码标志N、Z、C、V、Q,显示为大写字母,表示该位为1;显示为小写字母,表示该位为0。Q 标志在ARM 体系结构v5 及以上版本的E 变量中才有效。标志位IFT 为IRQ 中断禁止位I、FIQ 中断禁止位F、ARM 微控制器状态位T,显示为大写字母,表示该位为1;显示为小写字母,表示该位为0。T 标志在ARM 体系结构v4 及以上版本的T 变量中才有效。寄存器显示窗口六、实验参考程序ARM 微控制器工作模式实验的参考程序如下: USR_STACK_LEGTH EQU 64定义各块的长度SVC_STACK_LEGTH EQU 0FIQ_STACK_LEGTH EQU 16IRQ_STACK_LEGTH EQU 64ABT_STACK_LEGTH EQU 0UND_STACK_LEGTH EQU 0AREA Example3,CODE,READONLYENTRY定义区域,区域名为 Example3,代码,只读入口CODE32START MOV R0,#0R0=0MOV R1,#1R1=1MOV R2,#2R2=2MOV R3,#3R3=3MOV R4,#4R4=4MOV R5,#5R5=5MOV R6,#6R6=6MOV R7,#7R7=7MOV R8,#8R8=8MOV R9,#9R9=9MOV R10,#10R10=10MOV R11,#11R11=

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

最新文档


当前位置:首页 > 行业资料 > 教育/培训

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