第一范文网 - 专业文章范例文档资料分享平台

ARM实验指导书(WJQ-2010) - 图文

来源:用户分享 时间:2025/8/9 11:43:06 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

实验四、ARM 微处理器工作模式实验

一、实验目的

通过实验掌握学会使用MSR/MRS 指令实现ARM 处理器工作模式的切换,观察 不同模式下的寄存器,加深对CPU 结构的理解。 二、实验设备

硬件:嵌入式实验平台一套、仿真器一个、PC机一台。

软件:Windows 98/2000/NT/XP 操作系统、仿真器驱动程序、ADS 开发软件一套。 三、实验内容

通过ARM 汇编指令,在各种处理器模式下切换并观察各种模式下寄存器的区别;掌握 ARM 不同模式的进入与退出。

四、实验原理

1.ARM 处理器模式

ARM 体系结构支持表1-所示的7 种处理器模式。 处理器模式说明:

用户 usr 正常程序执行模式

FIQ fiq 支持告诉数据传送或通道处理 IRQ Irq 用于通用中断处理 管理 svc 操作系统保护模式

中止 abt 实现虚拟存储器和/或存储器保护 未定义 und 支持硬件协处理器的软件仿真 系统 sys 运行特权操作系统任务

在软件控制下也可以改变模式,外部中断或异常处理也可以引起模式发生改变。大多数应用程序在用户模式下执行。当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统资源,也不能改变模式,除非异常发生。这允许适当编写操作系统来控制系统资源的使用。

除用户模式外的其他模式成为特权模式。它们可以自由地访问系统资源和改变模式。其 中5 种称为异常模式,即:

FIQ(Fast Interrupt Request); IRQ(Interrupt Request); 管理(Supervisor); 中止(Abort);

未定义(Undefined) 。

当特定的异常出现时,进入相应的模式。每种模式都有某些附加的寄存器,以避免异常出现时用户模式的状态不可靠。

剩下的模式是系统模式。仅ARM 体系结构V4 以及以上的版本有该模式。不能由于任 何异常而进入该模式。它与用户模式有相同的寄存器,但它是特权模式,不受用户模式的限 制。它供需要访问系统资源的操作系统任务使用,但希望避免使用与异常模式有关的附加寄 存器。避免使用附加寄存器保证了当任何异常出现时,都不会使任务的状态不可靠。

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 位用作控制位。当异常出现时改变控制位。当处理器在特权模式下时也可以由软件改变。

中断禁止位:I置1 则禁止IRQ 中断;F 置1 则禁止FIQ 中断。

T 位:T=0 指示ARM 执行;T=1指示Thumb 执行。在这些体系结构的系统中,可自由地使用能在ARM 和Thumb 状态之间切换的指令。

模式位:M0、M1、M2、M3 和M 4(M[4:0])是模式位。这些位决定处理器的工作模 式,如表1- 所列:

M[4:0] 模式可访问的寄存器

0b10000 用户 PC, R14~R0, CPSR

0b10001 FIQ PC, R14_fiq~R8_fiq, R7~R0, CPSR, SPSR_fiq 0b10010 IRQ PC, R14_irq~R13_irq, R12~R0, CPSR, SPSR_irq 0b10011 管理 PC ,R14_svc~R13_svc, R12~R0, CPSR, SPSR_svc 0b10111 中止 PC, R14_abt~R13_abt, R12~R0, CPSR, SPSR_abt 0b11011 为定义 PC,R14_und~R13_und,R12~R0, CPSR, SPSR_und 0b11111 系统 PC,R14~R0,CPSR (3)其他位

程序状态寄存器的其他位保留,用作以后扩展。

五、实验操作步骤

1.启动ADS1.2 ,建立一个新的工程和源文件,编译、连接,并启动AXD 进行调试; 2.观察当前模式下每个寄存器的值;

3.单步运行程序,注意观察CPSR、SPSR 以及R0 寄存器值得变化。 说明:CPSR 寄存器显示方式分为两部分,一部分是各个标志位,另一部分是工作模式。 标志位NZCVQ 为条件码标志N、Z、C、V、Q,显示为大写字母,表示该位为1;显示为小写字母,表示该位为0。Q标志在ARM 体系结构v5 及以上版本的E 变量中才有效。 标志位IFT 为IRQ 中断禁止位I、FIQ中断禁止位F、ARM微控制器状态位T,显示为 大写字母,表示该位为1;显示为小写字母,表示该位为0。T 标志在ARM 体系结构v4 及以上版本的T变量中才有效。

4.理解并掌握本实验原理及程序,完成练习题

5.记录每种模式堆栈位置,编译环境中更改目标项目的RO程序段和RW数据段起始地址,从新编译连接,调试运行,观察堆栈位置变化,记录堆栈所处位置。

六、实验参考程序

;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 ;声明代码段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 ;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,StackIrq

;设置快速中断模式堆栈 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,R0

StackUsr 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+(UND_STACK_LEGTH-1)*4

;分配堆栈空间

AREA MyStacks, DATA, NOINIT, ALIGN=2

UsrStackSpace SPACE USR_STACK_LEGTH*4 SvcStackSpace SPACE SVC_STACK_LEGTH*4 IrqStackSpace SPACE IRQ_STACK_LEGTH*4 FiqStackSpace SPACE FIQ_STACK_LEGTH*4 AbtStackSpace SPACE ABT_STACK_LEGTH*4

UndStackSpace SPACE UND_STACK_LEGTH*4

搜索更多关于: ARM实验指导书(WJQ-2010) - 图文 的文档
ARM实验指导书(WJQ-2010) - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4k2l10ja566k2tg1y0pl_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top