请阅读【ARMv8/v9 ARM64 System Exception】
上篇文章:ARMv8/v9 异常模型系列 2 – ARMv8/v9通用寄存器介绍
1.1 ARMv8 系统寄存器访问概要
ARMv8中,取消了协处理器,之前协处理器实现的功能,全部由系统寄存器来是实现。对于系统寄存器的访问,使用 mrs
,msr
指令来访问。ARM架构的之前版本 (如ARMv7) 使用协处理器来进行系统配置。 但是,AArch64 不支持协处理器。
1.1.1 系统寄存器访问级别
AArch64 中系统寄存器会以 ”_ELn
“ 的方式名命,寄存器的名称会告诉你可以访问它的最低异常级别。
<Reg>_EL1
:处理器处于 EL1、EL2、EL3时可以访问。
<Reg>_EL2
:处理器处于 EL2、EL3 时可以访问。
大部分寄存器不支持处于 EL0 时访问,但也有一些例外,如 CTR_EL0
。
例如:
TTBR0_EL1 可以从 EL1、EL2 和 EL3 访问。
TTBR0_EL2 可以从 EL2 和 EL3 访问。