第四课:ARM底层开发笔记之arm体系结构及异常处理
2016-04-19 15:24
176 查看
1.arm模式
user:用户模式。其余的全部为特权模式。
通过mmu可以设置他们可以访问的内存范围。
不同的模式,访问的寄存器不同。
ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄器包括: ●
31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。 ●
6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。
ARM微处理器支持7种运行模式,分别为:
● usr(用户模式):ARM处理器正常程序执行模式。
● fiq(快速中断模式):用于高速数据传输或通道处理
● irq(外部中断模式):用于通用的中断处理
● svc(管理模式/特权模式):操作系统使用的保护模式
● abt (数据访问终止模式): 当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
● sys(系统模式): 运行具有特权的操作系统任务。
● und(未定义指令中止模式):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。
大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。
除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式(Privileged Modes);其中除去用户模式和系统模式以外的5种又称为异常模式(Exception Modes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。
ARM处理器在每一种处理器模式下均有一组相应的寄存器与之对应。即在任意一种处理器模式下,可访问的寄存器包括15个通用寄存器(R0~R14)、一至二个状态寄存器和程序计数器。在所有的寄存器中,有些是在7种处理器模式下共用的同一个物理寄存器,而有些寄存器则是在不同的处理器模式下有不同的物理寄存器。
异常向量表:
说明:
高端向量是ARM架构可选配置,可以通过硬件外部输入管脚来配置是低端向量还是高端向量,不能通过指令来改变向量的位置,但如果ARM芯片内部有标准ARM协处理器,那么协处理器CP15的寄存器C1的bit13可以用来切换低端和高端向量地址,等于0时为低端向量,等于1时为高端向量。
ARM的例外优先级从高到低依次为Reset→Data abort→FIQ→IRQ→Prefetch abort→Undefined instruction/SWI。
user:用户模式。其余的全部为特权模式。
通过mmu可以设置他们可以访问的内存范围。
不同的模式,访问的寄存器不同。
ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄器包括: ●
31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。 ●
6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。
ARM微处理器支持7种运行模式,分别为:
● usr(用户模式):ARM处理器正常程序执行模式。
● fiq(快速中断模式):用于高速数据传输或通道处理
● irq(外部中断模式):用于通用的中断处理
● svc(管理模式/特权模式):操作系统使用的保护模式
● abt (数据访问终止模式): 当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
● sys(系统模式): 运行具有特权的操作系统任务。
● und(未定义指令中止模式):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。
大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。
除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式(Privileged Modes);其中除去用户模式和系统模式以外的5种又称为异常模式(Exception Modes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。
ARM处理器在每一种处理器模式下均有一组相应的寄存器与之对应。即在任意一种处理器模式下,可访问的寄存器包括15个通用寄存器(R0~R14)、一至二个状态寄存器和程序计数器。在所有的寄存器中,有些是在7种处理器模式下共用的同一个物理寄存器,而有些寄存器则是在不同的处理器模式下有不同的物理寄存器。
异常向量表:
说明:
高端向量是ARM架构可选配置,可以通过硬件外部输入管脚来配置是低端向量还是高端向量,不能通过指令来改变向量的位置,但如果ARM芯片内部有标准ARM协处理器,那么协处理器CP15的寄存器C1的bit13可以用来切换低端和高端向量地址,等于0时为低端向量,等于1时为高端向量。
ARM的例外优先级从高到低依次为Reset→Data abort→FIQ→IRQ→Prefetch abort→Undefined instruction/SWI。
相关文章推荐
- 数格子,,简单bfs
- Kafka(2.11-0.9.0.1)更改server.properties中的broker.id后,无法启动
- 机器安装两个tomcat+ecplise同时配置两个tomcat
- C++ 继承
- android socket长连接
- linux tcpdump(转)
- 打开android虚拟机时出现a repairable android virtual device
- javascript中的constructor
- Access restriction: The type BASE64Encoder is not accessible due to restriction on required library C:\Program Files\Java\jre6\lib\rt.jar
- iOS 判断当前viewcontroller是push还是present的方式显示
- 程序大牛的博客集锦
- hadoop之hdfs参数配置详解
- Android中通过Intent调用其他应用的方法
- Windows AD
- iOS 奇葩问题,记录大全
- 手机号码的正则表达式
- 银行存取系统模拟
- 图像预处理第5步:倾斜度调整
- iOS自定义转场(custom transition)
- php-代码优化准则