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 对应的功能
ARM 寄存器 和 工作模式了解的更多相关文章
- 浅析arm的异常、中断和arm工作模式的联系
说到异常向量,会让人联想到中断向量.其实,中断是属于异常的子集的,也就是说中断其实是异常其中的一种. 回到异常向量,他其实是一张表格,每个格子里存放的是一个地址,或者是一个跳转命令,不管是哪个,其目的 ...
- arm寄存器解析
寒假闲来无事准备将自己的走过的arm之路总结一下,今天就先从arm的寄存器说起吧,欢迎各位拍砖. 要介绍arm寄存器之前我们要先了解一下arm处理器的工作模式: Arm处理器有七种工作模式,为的是形成 ...
- STM32——GPIO口的八种工作模式
GPIO的输入工作模式1——输入浮空模式: GPIO_Mode_IN_FLOATING =0x04 工作原理:配置完相应寄存器为此工作模式后,高低电平信号通过1处的IO口输入进去,由于寄存器配置了的缘 ...
- ARM的工作模式和寄存器
以前学的时候学的是S3C6410的开发板,它是三星公司推出的基于ARM v6架构(指令集),处理器是ARM11. ARM架构是构建每个ARM处理器的基础. 目前最新的是ARM v8架构:http:// ...
- 【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)
: 12MHz 晶振 对应 405 ~ 532 MHz 处理速度; -- : 16K 指令缓存, 16K 数据缓存; -- : 32KB 指令缓存, 32KB 数据缓存; (3) 内存接口对比 : 提 ...
- ARM工作模式
ARM工作模式 学习ARM的最好的资料是ARM公司发布的资料:ARM Architecture Reference Manual.pdf 找到章节:Programmers’ Model 由文档可知:A ...
- ARM体系的7种工作模式
一.ARM体系的CPU有以下7种工作模式: 用户模式(usr) 大多数程序运行于用户模式 特权模式 系统模式(sys) 运行具有特权的操作系统任务 异常模式 中断模式(irq) ...
- ARM处理器工作模式
学习ARM处理器参考的首选资料是ARM Architecture Reference Manual,是最专业权威的学习资料. ARM处理器共有7种工作模式,如表1-1和1-2所示: 表1-1 处理器工 ...
- [国嵌笔记][021-022][ARM处理器工作模式]
[ARM处理器工作模式] 处理器工作模式 1.User(urs):用户模式,linux应用程序运行在用户模式 2.FIQ(fiq):快速中断模式 3.IRQ(irq):中断模式 4.Superviso ...
随机推荐
- mysql中BLACKHOOL的作用
MySQL在5.x系列提供了Blackhole引擎–"黑洞". 其作用正如其名字一样:任何写入到此引擎的数据均会被丢弃掉, 不做实际存储:Select语句的内容永远是空. 和Lin ...
- 18-python基础-字符串(1)
1.字符串的定义 字符串就是一串字符,是编程语言中表示文本的数据类型. 在python中可以使用一对双引号“”或者一对单引号‘’定义一个字符串. 可以使用索引获取一个字符串中指定位置的字符,索引计数从 ...
- zabbix--Simple checks 基本检测
开始 Simple checks 通常用来检查远程未安装代理或者客户端的服务. 使用 simple checks,被监控客户端无需安装 zabbixagent 客户端, zabbix ser ...
- vue - blog开发学习2
首页博客列表的开发 1.修改index.vue,使能够支持列表功能 <template> <div> <PostList v-for="(item,index) ...
- go 区分指针
先看一段代码 先放一段代码,人工运行一下,看看自己能做对几题? package main import "fmt" func main() { var a int = 1 var ...
- Spring学习笔记(8)——依赖注入
spring依赖注入使用构造器注入使用属性setter方法注入使用Field注入(用于注解方式) 注入依赖对象可以采用手工装配或自动装配,在实际应用中建议使用手工装配,因为自动装配会产生未知情况,开发 ...
- 我爱Linux
这道题卡了好久,题是一张图片,打开看到看提示以为是用哪个Linux命令处理,直到后来知道后面是python序列化文件的数据,将FF D9后保存出来,将序列化文件读出来写脚本把它画出来 import p ...
- JAVA求解质因数
/** * 求质因数 * @param n * @return */ public static List<Integer> generatePrimeFactors(int n){ Li ...
- nodejs 进阶:图片缩小
demo 效果: 代码: /** * Created by ZXW on 2017/10/30. */ var fs = require('fs'); var gm = require('gm'); ...
- linux crontab 计划任务脚本
在LINUX中你应该先输入crontab -e,然后就会有个vi编辑界面,再输入0 3 * * 1 /clearigame2内容到里面 :wq 保存退出. 在LINUX中,周期执行的任务一般由cron ...