ARM处理器编程模型
RISC并非只是简单地去减少指令,而是把着眼点放在了如何使计算机的结构更加简单合理地提高运算速度上,优先选取使用频最高的简单指令。
二、ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括:
31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。
6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。
三、ARM微处理器在较新RISC体系结构中支持两种指令集:ARM指令集和Thumb指令集。
ARM指令为32位的长度,Thumb指令为16位长度
Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。
四、arm处理器的工作状态
ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:
1、ARM状态,此时处理器执行32位的字对齐的ARM指令;
2、Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。
ARM指令集和Thumb指令集均有切换处理器状态的指令,并可在两种工作状态之间切换,但ARM微处理器在开始执行代码时,应该处于ARM状态。
五、ARM体系结构的存储器格式
1、(1)大端格式:在这种格式中,字数据的高字节存储在低地址中
(2)小端格式:在这种格式中,字数据的低字节存储在低地址中
2、存储管理单元-MMU
其主要功能有:
(1)将主存地址从虚拟存储空间映射到物理存储空间。
(2)存储器访问权限控制。
(3)设置虚拟存储空间的缓冲特性等。
六、处理器模式
ARM微处理器支持7种运行模式,分别为:
除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。
除用户模式和系统模式外,其它模式均为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。
用户模式和系统模式这两种模式都不能由异常进入,而且它们使用完全相同的寄存器组。
系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。
六、寄存器
ARM微处理器中的寄存器不能被同时访问,具体哪些寄存器是可编程访问的,取决微处理器的工作状态及具体的运行模式。
但在任何时候,通用寄存器R14~R0、程序计数器PC、一个或两个状态寄存器都是可访问的。
1、arm状态下寄存器
通用寄存器包括R0~R15,可以分为三类:
未分组寄存器R0~R7:在所有的运行模式下,未分组寄存器都指向同一个物理寄存器,他们未被系统用作特殊的用途
分组寄存器R8~R14;对于分组寄存器,他们每一次所访问的物理寄存器与处理器当前的运行模式有关。
程序计数器PC(R15):寄存器R15用作程序计数器(PC)
2、Thumb状态下的寄存器
程序员可以直接访问的寄存器为:
8个通用寄存器R0~R7;
程序计数器(PC);
堆栈指针(SP);
链接寄存器(LR);
有条件访问程序状态寄存器( CPSR)。
3、ARM状态和Thumb状态之间寄存器的关系
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)。
七、异常
1、当正常的程序执行流程发生暂时的停止时,称之为异常。类型如下:
2、当多个异常同时发生时,ARM9处理器将按照异常的优先级高低顺序处理,异常优先级由高到低的排列次序如表所示。
ARM处理器编程模 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)