ARMv8-A相關歷史文章:
在AArch64中,系統(tǒng)配置是通過使用MSR/MRS來操作系統(tǒng)寄存器來完成秘豹。而在ARMv7-A中携御,系統(tǒng)寄存器是通過協(xié)處理器(CP15)的操作來完成。
寄存器的名字標識了能被訪問的最低Exception Level既绕,比如:
- TTBR0_EL1啄刹,能被EL1、EL2凄贩、EL3訪問誓军;
- TTBR0_EL2,能被EL2疲扎、EL3訪問昵时;
寄存器名字后綴_ELn
表明在不同的Exception Level有單獨的副本,很少的系統(tǒng)寄存器能被EL0訪問椒丧,CTR_EL0(Cache Type Register)就是其中的一個例子壹甥。
訪問一個系統(tǒng)寄存器通常以下邊這種形式:
MRS X0, TTBR0_EL1 // Move TTBR0_EL1 into X0
MSR TTBR0_EL1, X0 // Move X0 inot TTBR0_EL1
之前版本的ARM體系結(jié)構(gòu)中 ,使用協(xié)處理器來進行系統(tǒng)配置壶熏,但是在AArch64中不支持協(xié)處理器句柠。
以下的圖片將展示不同Exception Level的系統(tǒng)寄存器: