一. 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 对应的功能

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

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

    说到异常向量,会让人联想到中断向量.其实,中断是属于异常的子集的,也就是说中断其实是异常其中的一种. 回到异常向量,他其实是一张表格,每个格子里存放的是一个地址,或者是一个跳转命令,不管是哪个,其目的 ...

  2. arm寄存器解析

    寒假闲来无事准备将自己的走过的arm之路总结一下,今天就先从arm的寄存器说起吧,欢迎各位拍砖. 要介绍arm寄存器之前我们要先了解一下arm处理器的工作模式: Arm处理器有七种工作模式,为的是形成 ...

  3. STM32——GPIO口的八种工作模式

    GPIO的输入工作模式1——输入浮空模式: GPIO_Mode_IN_FLOATING =0x04 工作原理:配置完相应寄存器为此工作模式后,高低电平信号通过1处的IO口输入进去,由于寄存器配置了的缘 ...

  4. ARM的工作模式和寄存器

    以前学的时候学的是S3C6410的开发板,它是三星公司推出的基于ARM v6架构(指令集),处理器是ARM11. ARM架构是构建每个ARM处理器的基础. 目前最新的是ARM v8架构:http:// ...

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

    : 12MHz 晶振 对应 405 ~ 532 MHz 处理速度; -- : 16K 指令缓存, 16K 数据缓存; -- : 32KB 指令缓存, 32KB 数据缓存; (3) 内存接口对比 : 提 ...

  6. ARM工作模式

    ARM工作模式 学习ARM的最好的资料是ARM公司发布的资料:ARM Architecture Reference Manual.pdf 找到章节:Programmers’ Model 由文档可知:A ...

  7. ARM体系的7种工作模式

    一.ARM体系的CPU有以下7种工作模式:   用户模式(usr)    大多数程序运行于用户模式 特权模式   系统模式(sys)   运行具有特权的操作系统任务 异常模式 中断模式(irq)   ...

  8. ARM处理器工作模式

    学习ARM处理器参考的首选资料是ARM Architecture Reference Manual,是最专业权威的学习资料. ARM处理器共有7种工作模式,如表1-1和1-2所示: 表1-1 处理器工 ...

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

    [ARM处理器工作模式] 处理器工作模式 1.User(urs):用户模式,linux应用程序运行在用户模式 2.FIQ(fiq):快速中断模式 3.IRQ(irq):中断模式 4.Superviso ...

随机推荐

  1. 在vim中设置tab缩进为4个字符

    编辑一个文件,进入之后一次输入 [esc] --> [ : ] --> [ set ts=4 ]vim aaa.txt

  2. GCD 与XOR

    题目:UVA12716 题意:  问 gcd(i,j) = i ^ j  的对数(j <=i <= N ) N的范围为30000000,有10000组样例 分析: 有几个结论:(1)若 a ...

  3. C#中的元组对象Tuple

    原文:C#中的元组对象Tuple 一.什么是元组 元组就是一些对象的集合,在我们编程时,比如一个人的信息,我们常常创建一个Person类去描述一个人,传统的做法如下: public class Per ...

  4. Python第五节 元组

    Python第八节 元组补充 元组从形式上看,和列表唯一不同的在于,列表是中括号,元组是小括号 元组内的元素不可更改 一. 创建 创建直接在小括号内写元素,用逗号隔开就好 创建空元祖只写一个小括号 元 ...

  5. 寻找链表倒数第k个元素,只遍历一遍(编程之美)

    class LNode { public LNode next; public int data; } /*找出倒数第k个元素,只遍历一遍*/ class Kk { private static LN ...

  6. 使mysql数据库支持简体中文

    永久支持简体中文[root@localhost ~]# vim /etc/my.cnf添加如下四行:[client]default-character-set=utf8 [mysql]default- ...

  7. vue之路由导航守卫-全局前置守卫

    一.使用方式 全局前置守卫用于在路由配置生效之前进行一些动作,可以使用 router.beforeEach 注册一个全局前置守卫: const router = new VueRouter({ ... ...

  8. 项目实战 - 混合式App开发

    为何要使用混合式开发? 要说为什么使用Hybrid App [混合式开发],就要先了解什么是Native App[原生程序], Web App[网站程序]. Native App 是专门针对某一类移动 ...

  9. CF734E Anton and Tree

    \(\mathtt{CF734E}\) \(\mathcal{Description}\) 给一棵\(n(n\leq200000)\)个节点的树,每个点为黑色或白色,一次操作可以使一个相同颜色的连通块 ...

  10. php linux下安装xml扩展

    1.进入PHP安装源码包,找到ext下的ftp,进入 cd /home/local/php-5.6.25/ext/xml 2./usr/local/php/bin/phpize 3../configu ...