ARMv8-A相关历史文章:
在AArch64中,系统配置是通过使用MSR/MRS来操作系统寄存器来完成。而在ARMv7-A中,系统寄存器是通过协处理器(CP15)的操作来完成。
寄存器的名字标识了能被访问的最低Exception Level,比如:
- TTBR0_EL1,能被EL1、EL2、EL3访问;
- TTBR0_EL2,能被EL2、EL3访问;
寄存器名字后缀_ELn
表明在不同的Exception Level有单独的副本,很少的系统寄存器能被EL0访问,CTR_EL0(Cache Type Register)就是其中的一个例子。
访问一个系统寄存器通常以下边这种形式:
MRS X0, TTBR0_EL1 // Move TTBR0_EL1 into X0
MSR TTBR0_EL1, X0 // Move X0 inot TTBR0_EL1
之前版本的ARM体系结构中 ,使用协处理器来进行系统配置,但是在AArch64中不支持协处理器。
以下的图片将展示不同Exception Level的系统寄存器:
网友评论