ARMv8系统寄存器-0

- System registers

In AArch64, system configuration is controlled through system registers, and accessed using MSR and MRS instructions. This contrasts with ARMv7-A, where such registers were typically accessed through coprocessor 15 (CP15) operations. The name of a register tells you the lowest

Exception level that it can be accessed from.

For example:

  • TTBR0_EL1 is accessible from EL1, EL2, and EL3.
  • TTBR0_EL2 is accessible from EL2 and EL3.

Registers that have the suffix _ELn have a separate, banked copy in some or all of the levels,though usually not EL0. Few system registers are accessible from EL0, although the Cache Type Register (CTR_EL0) is an example of one that can be accessible.

Code to access system registers takes the following form:

复制代码
	MRS x0, TTBR0_EL1 // Move TTBR0_EL1 into x0
	MSR TTBR0_EL1, x0 // Move x0 into TTBR0_EL1

Previous versions of the ARM architecture have used coprocessors for system configuration.However, AArch64 does not include support for coprocessors. Table 4-5 lists only the system registers mentioned in this book.

For a complete list, see Appendix J of the ARM Architecture Reference Manual - ARMv8, for ARMv8-A architecture profile.

The table shows the Exception levels that have separate copies of each register. For example,separate Auxiliary Control Registers (ACTLRs) exist as ACTLR_EL1, ACTLR_EL2 and ACTLR_EL3.

相关推荐
100编程朱老师12 分钟前
Linux 下互联网络编程的基础知识
arm开发
番茄灭世神17 小时前
32位ARM单片机视频教程第一篇
arm开发·单片机·嵌入式·gd32·pn学堂
驱动探索者21 小时前
[缩略语大全]之[ARM CPU]篇
arm开发
ArrebolJiuZhou1 天前
00 arm开发环境的搭建
linux·arm开发·单片机·嵌入式硬件
迪三达2 天前
智能体开发-2-MCP
arm开发
黑猫学长呀2 天前
【嵌入式系统科普】第2篇:什么是uboot/kernel/根文件系统/BootLoader/操作系统/bios/设备树
linux·arm开发·单片机·嵌入式硬件·arm
风之子npu2 天前
AXI 原子访问
arm开发·笔记·学习
番茄灭世神3 天前
使用VScode开发ARM核芯片通用配置
arm开发·vscode·mcu·cmake·clangd·llvm·ninja
ArrebolJiuZhou3 天前
arm指令集(一)
linux·运维·arm开发
切糕师学AI3 天前
ARM 汇编指令:UBFX
汇编·arm开发