PSTATE:程序状态寄存器

SP_ELx(x>0):在EL1/EL2/EL3 level中,如果spsel=0,则使用SP_ELx(x>0)
SP_EL0 :在所有level中,如果spsel=1, 则使用SP_EL0

SPSR :save program status register 备份的程序状态寄存器

ELR_ELx(x>0):异常链接寄存器,记录着异常时程序的返回地址

ESR_ELx(x>0) :同步异常, 异常特征寄存器
FAR_ELx(x>0): 同步异常, 异常时的错误地址

VBAR_ELx(x>0): 向量表基地址寄存器

TTBRn_ELx(n=1,2、x>0): 地址翻译基地址寄存器
MAIR_ELx(x>0) :内存属性寄存器

PAR_EL1: 物理地址寄存器, 当使用指令操作MMU进行VA到PA的转换时,物理地址由PAR_EL1输出.

SCR_EL3 :安全配置寄存器
SCTLR_ELx(x>0): 系统控制寄存器
TCR_ELx(x>0): 地址翻译控制寄存器

1、PSTATE

PSTATE的bit位定义:

(1)、spsel : (Stack Pointer Select)

2、Stack pointer(sp)寄存器介绍

默认情况下,来了一个异常后,选择当前异常级别的sp,例如来了一个异常到EL1, 那么将自动选择sp_el1做为sp;
但是呢,在高异常等级,通过修改spsel,也可以使用SP_EL0

3、SCR_EL3 :(Secure Configuration Register)

  • NS :0-secure state, 1-NonSecure state
  • IRQ: 0-运行在EL3以下时irq不会target到EL3, 1-irq总是target到EL3
  • FIQ: 0-运行在EL3以下时fiq不会target到EL3, 1-fiq总是target到EL3
  • EA, bit [3] :
    – 0- 运行在EL3以下时External aborts和SError不会target到EL3,运行在EL3时Serror不会产生,External aborts target到EL3
    – 1-External aborts and SError target到EL3
  • SMD, bit [7]:0-smc指令在EL3/EL2/EL1中是enable, 1-smc指令是disable的
  • HCE, bit [8]:1-hvc指令在EL3/EL2/EL1中是enable, 0-hvc指令是disable的

4、SCTLR:(System Control Register)

  • UCI : 置1后,EL0可以在aarch64下访问 DC CVAU, DC CIVAC, DC CVAC,IC IVAU指令
  • EE:0-Little endian, 1-Big endian.
  • EOE:EL0显示的数据访问方式,0-Little endian, 1-Big endian.
  • WXN: 0-XN权限不开启,XN权限开启
  • nTWE: 1-WFE是正常的指令
  • nTWI: 1-WFI是正常的指令
  • UCT:1- EL0可以访问CTR_EL0
  • DZE:1-EL0可以访问cache的DC ZVA指令
  • I:Instruction cache enable
  • UMA :EL0中断Mask(适用于aarch64)
  • SED:1-SETEND指令disabled(适用于aarch32)
  • ITD:1-IT指令disabled
  • CP15BEN: cp15 enable(适用于aarch32)
  • SA0 开启在EL0sp对齐检查
  • SA 开启sp对齐检查
  • C :data cache enable
  • A : 对齐检查alignment check enable
  • M : enable MMU

大小端的解释:

XN权限:

[register]-05-ARMv8中常用系统寄存器详解相关推荐

  1. 计算机中常用软件列表,详解win10中常用软件列表不要在任务栏显示的方法

    我们在win10系统的使用中,在win10的界面中我们经常使用软件在电脑任务栏中会在电脑中显示,那很多的小伙伴在电脑中是不想要显示的遇到这个问题我们怎么取消这个常用的软件在任务栏一直显示的情况呢,今天 ...

  2. angular4 php,Angular4中常用管道实例详解

    通常我们需要使用管道实现对数据的格式化,Angular4中的管道和之前有了一些变化.本文主要介绍Angular4中常用管道,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧, ...

  3. Spring框架中常用的设计模式详解

    一.浅谈控制反转(IOC)与依赖注入(DI) IOC(Inversion of Control)是Spring中一个非常重要的概念,它不是什么技术,而是一种解耦的设计思想.它主要的额目的是借助于第三方 ...

  4. 学习转载:Android中常用shell命令详解

    https://blog.csdn.net/Z_HUALIN/article/details/77878609 设置adb环境变量 其实就是将adb.exe的路径放到Path中,目的是cmd直接可以使 ...

  5. 深度学习中常用的激活函数详解及对比分析(sigmoid)

    Sigmoid函数: 特性: 1.当变量值远离中心轴时,梯度几乎为0,在神经网络的反向传播过程中,链式求导导致经过sigmoid函数之后的梯度 很小,权重值更新较慢 2.计算机执行指数运算较慢 3.s ...

  6. 【python基础】python中常用字符串函数详解

    文章目录 1 字符串查询(index,find) 2. 字符串大小写转换操作(upper.lower.swapcase.capitalize和title) 3. 字符串对齐(center,just和z ...

  7. linux的常用的wc命令,Linux系统中wc命令使用详解

    Linux系统中wc命令是统计文件文本的字节数等并显示输出.下面由学习啦小编为大家整理了linux系统中wc命令使用详解,希望对大家有帮助! Linux系统中wc命令使用详解 Linux系统中的wc( ...

  8. php中 继承中的概念,JavaScript_JavaScript中的继承方式详解,js继承的概念 js里常用的如下 - phpStudy...

    JavaScript中的继承方式详解 js继承的概念 js里常用的如下两种继承方式: 原型链继承(对象间的继承) 类式继承(构造函数间的继承) 由于js不像java那样是真正面向对象的语言,js是基于 ...

  9. linux系统里route -n不起作用,Linux系统中traceroute命令使用详解

    Linux系统中traceroute命令可以追踪到网络数据包的路由途径.下面由学习啦小编为大家整理了linux系统中traceroute命令使用详解,希望对大家有帮助! Linux系统中tracero ...

最新文章

  1. 圈钱的道路上廖翔从不缺席
  2. python调用离线百度语音识别_python调用百度语音识别api
  3. 最强的浏览器插件——油猴脚本
  4. Android序列化与反序列化
  5. CentOS6.x下配置sendmail发邮件
  6. mysql group replication 安装配置详解
  7. java.util 常见_Java基础知识-java.util.concurrent包下常见类的使用
  8. Google Guava:您永远不会知道的5件事
  9. 如何使用React,TypeScript和React测试库创建出色的用户体验
  10. xampp for mac mysql_xampp for mac下载-Xampp Mac版下载 V7.3.2-PC6苹果网
  11. .lastevent、!analyze(dump分析、异常错误码查询)
  12. python新手如何找工作最有效_Python好学吗?要学多久?
  13. 帧中继多点子接口下配置OSPF
  14. 2020-08-23 每日一句
  15. Spring IoC容器初始化过程分析
  16. 【转】浏览器中的data类型的Url格式,data:image/png,data:image/jpeg!
  17. vb.net 同时给多个属性赋值_C++程序入门之——赋值操作符
  18. PCB layout常用走线线宽选择参考
  19. LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation【论文阅读笔记】
  20. 用 Python 动态模拟太阳系运转

热门文章

  1. go http 处理w.write 错误_Go语言中的异常和错误处理简介
  2. 从海外IDC四大标签来看国内IDC公司估值差异问题
  3. 机房六大安防系统常见故障原因及处理方法
  4. python中变量名有哪些_Python变量范围有哪些?如何在Python中定义变量?
  5. EL之Bagging(DTR):利用DIY数据集(预留30%数据+两种树深)训练Bagging算法(DTR)
  6. Matlab之DNN:基于Matlab利用神经网络模型(epochs=10000000)预测勒布朗詹姆斯的2018年总决赛(骑士VS勇士)第一场得分、篮板、助攻
  7. 7.2 TensorFlow笔记(基础篇): 生成TFRecords文件
  8. JavaScript优化基本篇
  9. 【UOJ34】—多项式乘法(FFT)
  10. vue脚手架---vue-cli