资源描述:
《工作模式切换(嵌入式系统原理及应用实验报告)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、嵌入式系统原理及应用实验报告ARM的7种工作模式:用户模式(usr):ARM处理器正常的程序执行状态。快速中断模式(fiq):用于高速数据传输或通道处理。外部中断模式(irq):用于通用的中断处理。管理模式(svc):操作系统使用的保护模式。数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。系统模式(sys):运行具有特权的操作系统任务。未定义指令终止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。注意:(1)用户模式是最常见的模式。(2)除了用户模式的其他6个模式称为特权模式。(3)在用户模式下是不可以切换到特权模式的
2、。(4)除了用户模式和系统模式,其他5个称为异常模式,常用于处理屮断或异常,以及需要访问受保护的系统资源等情况。ARM的37个寄存器用户模式非用户模式(特权模式)异常模式用户系统管理中止未定义IRQFIQR0〜R7R8〜R12R8一fiq〜R12fiqR13〜R14R13_svcR14svcR13_abtR14abtR13_undR14undR13_irqR14irqR13_fiqR14fiqR15ARM状态下的寄存器组织分为通用寄存器(31个)和状态寄存器(6个)。其中,通用寄存器包括R0〜R15,可分为四类:(1)未分组寄存器:R0〜R7用于保存地址或数据。是所有处理器模式下共用的寄存器
3、,在模式切换时必须进行保护,进堆。(2)分组寄存器:R8〜R12F1Q模式有单独的分组寄存器R8_fiq~K12_fiq,F1Q(快速中断)处理程序不用保存和恢复中断现场,中断i理更加I央速。FIQ以外的分组寄存器R8〜R12为四种异常模式(Svc,Abort,Undef,IRQ)共用,模式切换时需保护。(3)分组寄存器:R13〜R14R13通常用做堆栈指针SP,习惯用法,非强制。R14称作子程序链接寄存器(LinkRegister—LR),简称LR,用于存放当前子程序的返回地址。当程序执行子程序调用指令BL,BLX时,当前的PC将保存在R14中。执行完子程序后,只要将R14复制到PC,子程
4、序即可返冋。每一种异常模式都有自已的物理R13、R14。(4)程序计数器:R15(PC)寄存器R15被用作程序计数器,也称为PC。R15值的改变将引起程序执行顺序的变化,这有可能引起程序执行中出现一些不可预料的结果。ARM处理器采用多级流水线技术,因此保存在R15的程序地址并不是当前指令的地址。一些指令对于R15的用法有一些特殊的要求。还有6个状态寄存器,分别为CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR.irq和SPSR_fiqoCPSR:g前程序状态寄存器,指示当前程序的状态信息,包括条件码标志、中断禁止位、当前处理器模式以及其它状态和控制信息。SPSR:程序
5、状态保存寄存器。每种异常模式都有一个对应的SPSR物理寄存器(SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq),当异常出现吋,用于保#CPSR的状态,以便异常返回后恢i异常发生时的工作状态。程序解说:.global_start/*定义全局变量*/.text/*关键字,程序从此开始,程序放到存储代码屮,闪存*/_start:/*程序从这里开始V#/*注释*/BN0PMRSRO,CPSRBICRO,RO,#0xlEORRRO,RO,#0x1MSRCPSR,RO/*声明变量*//*在此没有操作*//*把程序状态寄存器的值存到R0屮*//*主位清0,是一种逻
6、辑运算,把R0的后5位变成0,其他位不变*//*逐位做或运算,把R0的后5位变成1,其他位不变吟/*把R0的值放入程序状态寄存器中吟实验操作:EmbestIDEPro打开一〉File-->OpenWorkspace-->ARMMode.ews—〉双击armmode,s-->编译BuildProject——>Settings——>Remote——>device:SimArm7——>Debug——>RemoteConnect—>Download—>GotoSource—>操作效果图如下:EabextIDEPro—(C:...SaBsuncS3CE¥40 04_ARnode»rBB()(
7、ie.x<)3回卜圍gdit办的lUbugToolsH*1d-SX1SetActiveProject►
8、▼]/<、&4dToProjecttoSettings...AU♦打■Workspace'ARMMode':1pn日®IARMmodefiles-ProjectSourceFilesarmmode.s1=]Rcadmc.bd•global_star!7•定义全局究圼•/•tex^^键字,程序从此并fe"_s