欢迎来到天天文库
浏览记录
ID:36412575
大小:2.78 MB
页数:42页
时间:2019-05-09
《ARM微处理器的结构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ARM处理器编程模型第2章本章目标了解ARM的结构特点了解ARM的编程的工作模式了解ARM的内部资源了解ARM异常的处理机制本章结构ARM状态下寄存器Thumb状态下寄存器寄存器组织ARM微处理器的工作模式ARM微处理器编程模型ARM微处理器的工作状态程序状态寄存器数据存储格式指令长度及数据结构异常对异常的响应从异常返回异常类型2-1ARM微处理器的工作状态处理器状态:ARM处理器内核包含2套指令系统,分别为ARM指令集和Thumb指令,并且各自对应1种处理器的状态:ARM状态:32位,处理器执行字方式的ARM指令,处理器默认为此状态;Thumb状
2、态:16位,处理器执行半字方式的Thumb指令。两个状态之间的切换并不影响处理器模式或寄存器内容。状态切换的一个例子地址最低位为0,表示切换到ARM状态使用BX指令将ARM内核的操作状态在ARM状态和Thumb状态之间进行切换。ARM指令集Thumb指令集CODE32LDRR0,=Lable+1BXR0CODE16LableMOVR1,#12CODE16LDRR0,=LableBXR0CODE32LableMOVR1,#10地址最低位为1,表示切换到Thumb状态跳转地址标号执行完BX指令,处理器切换到Thumb状态,开始执行Thumb指令程序代码
3、指令集关系从ARM状态切换到Thumb状态的程序代码如下:从Thumb状态切换到ARM状态的程序代码如下:执行完BX指令,处理器切换到ARM状态,开始执行ARM指令2-1ARM微处理器的工作状态ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。这样的好处是可以更好的支持操作系统并提高工作效率。ARM完全支持这七种模式。2-2寄存器工作模式除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换
4、处理器模式,而用户模式不能直接切换到别的模式。处理器模式说明备注用户(usr)正常程序运行的工作模式不能直接从用户模式切换到其它模式特权模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权异常模式快中断(fiq)快速中断请求处理只有在FIQ异常响应时,才进入此模式中断(irq)中断请求处理只有在IRQ异常响应时,才进入此模式管理(svc)供操作系统使用的一种保护模式只有在系统复位和软件中断响应时,才进入此模式中止(abt)用于虚拟内存和/或存储器保护在ARM7内核中没有多大用处未定义(und)支持软件仿真
5、的硬件协处理器只有在未定义指令异常响应时,才进入此模式处理器模式这两种模式都不能由异常进入,想要进入必须修改CPSR,而且它们使用完全相同的寄存器组。系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。何时进入异常模式,具体规定如下:处理器复位之后进入管理模式
6、,操作系统内核通常处于管理模式;当处理器访问存储器失败时,进入数据访问中止模式;当处理器遇到没有定义或不支持的指令时,进入未定义模式;中断模式与快速中断模式分别对ARM处理器2种不同级别的中断作出响应。2-2寄存器工作模式阶段小结ARM运行模式描述用户模式(usr)正常的程序执行状态快速中断模式(fiq)用于高速数据传输或通道处理外部中断模式(irq)用于通用的中断处理特权模式(Supervisor,svc)供操作系统使用的保护模式数据访问终止模式(Abort,abt)当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护系统模式(System
7、,sys)运行具有特权的操作系统任务未定义指令中止模式(Undefined,und)当未定义的指令执行时进入该模式,可用于支持通过软件仿真硬件的协处理器ARM9处理器支持的7种寄存器工作模式2-3寄存器组织ARM9处理器内部寄存器组织:在ARM9处理器内部有37个用户可见的寄存器。在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R
8、6(v3)R6R7(V4)R7R8(V4)R8R8_fiq*R9(SB,v6)R9R9_fiq*R10(SL,v7)R10
此文档下载收益归作者所有