ARM 寄存器 和 工作模式了解

一. ARM 工作模式

1.   ARM7,ARM9,ARM11,处理器有 7 种工作模式;Cortex-A 多了一个监视模式(Monitor)

2.  用户模式:非特权模式,大部分任务执行在这种模式,它运行在操作系统的用户态,没有权限操作其他硬件资源,只能执行处理自己的数据,也不能切换到其他模式下

3.  快速中断模式 : 当一个高优先级(fast) 中断产生时将会进入这种模式

4.  普通中断模式 : 当一个低优先级(normal) 中断产生时将会进入这种模式

5.  管理模式(SVC) :当复位或软中断指令执行时将会进入这种模式

6.  中止模式 : 当存取异常时将会进入这种模式 Undef : 当执行未定义指令时会进入这种模式

7.  系统模式 : 使用和User模式相同寄存器集的特权模式 Cortex-A 增加的工作模式:

8.  监控模式 : 是为了安全而扩展出的用于执行安全监控代码的模式

二. ARM 指令集

ARM指令集:一条指令占 32 位 ,4字节,影响 PC 中的地址

Thumb指令集: 一条指令占 16 位 ,2字节

三. ARM 寄存器

Cortex-A 寄存器:标三角的是相应模式状态下的独立的寄存器;其他事通用寄存器,也就是各个模式下可以共同使用的寄存器;Cortex-A 共40个寄存器, 共23 个特殊功能寄存器,17 个通用寄存器。

  R13 :栈指针寄存器  SP 保存栈内存空间的首地址值

  R14:链接寄存器  LR   保存函数返回地址值

  R15:当前程序计数器  PC  保存当前取址指令的地址值

  CPSR:当前程序状态寄存器

  SPSR:保存程序状态寄存器,用来保存 CPSR 值

  PC 寄存器指向的地址值:

    对于ARM 状态(arm指令集), PC 寄存器的低2位没有定义 PC[1,0] ,arm指令占 4字节,也就是PC 中地址是4的倍数

    对于Thumb状态(Thumb指令集),PC寄存器的低1位没有定义 PC[0],Thumb占 2字节,也就是PC中地址是 2 的倍数, PC 中的地址就是每条执行指令的地址

 CPSR 寄存器中各bit 对应的功能

原文地址:https://www.cnblogs.com/electronic/p/11027006.html

时间: 2024-10-29 04:18:45

ARM 寄存器 和 工作模式了解的相关文章

7.ARM处理器的工作模式

7.ARM处理器的工作模式 ARM七种工作模式:图1-1: 图1-1 上面的七种工作模式可以在cpsr设置:如下的M[4:0]=Mode number. 图1-2 之所以要有这么多种模式,是为了避免致命的错误.例如我们写的应用程序运行在User模式,操作系统的运作在比较高的模式. User模式:普通程序运行的模式. FIQ:快速中断运行的模式 RIQ:普通中断运行的模式 Supervisor:特权模式 Abort:访问内存异常等 Undefined:未定义模式,数据未定义. System:系统模

浅析arm的异常、中断和arm工作模式的联系

说到异常向量,会让人联想到中断向量.其实,中断是属于异常的子集的,也就是说中断其实是异常其中的一种. 回到异常向量,他其实是一张表格,每个格子里存放的是一个地址,或者是一个跳转命令,不管是哪个,其目的都是让PC跳转到真正处理异常的代码的地方. 以下是arm的异常向量表: 图1 初步介绍完异常向量,就来对比下ARM的arm的7种工作模式: 图2 User : 非特权模式,大部分任务执行在这种模式 FIQ :   当一个高优先级(fast) 中断产生时将会进入这种模式 IRQ :   当一个低优先级

ARM工作模式

ARM工作模式 一.存储器格式(字对齐): Arm体系结构将存储器看做是从零地址开始的字节的线性组合.从零字节到三字节放置第一个存储的字(32位)数据,从第四个字节到第七个字节放置第二个存储的字数据,一次排列.作为32位的微处理器,arm体系结构所支持的最大寻址空间为4GB. 存储器格式 1.大端格式:高字节在低地址,低字节在高地址: 2.小端格式:高字节在高地址,低字节在低地址: 指令长度: Arm微处理器的指令长度是32位的,也可以为16位(thumb状态下).Arm微处理器中支持字节(8位

arm寄存器解析

寒假闲来无事准备将自己的走过的arm之路总结一下,今天就先从arm的寄存器说起吧,欢迎各位拍砖. 要介绍arm寄存器之前我们要先了解一下arm处理器的工作模式: Arm处理器有七种工作模式,为的是形成不同的使用级别,以防造成对系统的破坏.不同模式可以访问的寄存器不同,可以运行的指令不同. (1)usr(10000):普通应用程序运行的模式(应用程序) (2)FIQ(10001):快速中断模式,以处理快速情况,高速数据传输 (3)IRQ(10010):外部中断模式,普通中断处理 (4)svc(10

STM32--GPIO口的八种工作模式

GPIO的输入工作模式1--输入浮空模式: GPIO_Mode_IN_FLOATING =0x04 工作原理:配置完相应寄存器为此工作模式后,高低电平信号通过1处的IO口输入进去,由于寄存器配置了的缘故VDD处上拉和下拉均为断开状态.通过TTL施密特触发器后进入到3(输入数据寄存器)中,然后由MCU将数据读取. 适用场景:一般多用于外部按键输入; GPIO的输入工作模式2--输入上拉模式: GPIO_Mode_IPU =0x48 工作原理:配置完相应寄存器为此工作模式后,高低电平信号通过1处的I

自己学驱动17——ARM工作模式和ARM9寄存器

1.ARM体系CPU的7种工作模式 (1)用户模式(usr):ARM处理器正常的程序执行状态. (2)快速中断模式(fiq):用于高速数据传输或通道处理. (3)中断模式(irq):用于通用的中断处理. (4)管理模式(svc):操作系统使用的保护模式. (5)数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护. (6)系统模式(sys):运行具有特权的操作系统任务. (7)未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的

【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)

作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42375701 相关资源下载 :  -- 三星 ARM Architecture Reference Manual 文档 : http://download.csdn.net/detail/han1202012/8324641 一. ARM 芯片类型 1. ARM 分类 (1) ARM 分类类型(芯片 | 核 | 指令架构) ARM 分类 : -- ARM 芯片类型

ARM处理器工作模式

++++++++++++++++++++++++++++++++++++++++++ 本文转载自mr_raptor的专栏,感谢mr_raptor大神. http://blog.csdn.net/mr_raptor/article/details/6556157 ++++++++++++++++++++++++++++++++++++++++++ 1.1 ARM处理器工作模式 CPU的模式可以简单的理解为当前CPU的工作状态,比如:当前操作系统正在执行用户程序,那么当前CPU工作在用户模式,这时网

[国嵌笔记][021-022][ARM处理器工作模式]

[ARM处理器工作模式] 处理器工作模式 1.User(urs):用户模式,linux应用程序运行在用户模式 2.FIQ(fiq):快速中断模式 3.IRQ(irq):中断模式 4.Supervisor(svc):系统保护模式,linux内核运行在系统保护模式 5.Abort(abt):异常模式 6.Undefined(und):未定义指令模式 7.System(sys):系统模式 [ARM寄存器详解] ARM寄存器(37个) 通用寄存器(31个) 1.未分组通用寄存器(R0-R7) 2.分组通