嵌入式技术
ARMV8/ARMV9的执行状态的切换
在一个大系统中,我们所说这它是64位的,还是32位的,往往说的是kernel内核。事实上,在这么的一个大系统中,有着多级镜像,并非全都是64位的,也并非全都是32位的。如下一张图,便展示了某SOC系统中常用的一个执行状态
术语:AArch64和AArch32执行状态之间的交互称为interprocessing。
ARMV8/ARMV9的执行状态(Execution state) 有两种:aarch64和aarch32,它们的切换的方式只有两种:
它们的切换规则是:
再简而言之,总结起来其实就是:
如果实现了EL3,那么PE复位后将直接是aarch64SCR_EL3.RW
将决定着lower exception level的执行状态
如果实现了EL2,且EL2的执行状态是aarch64.HCR_EL2.RW
将决定着EL1的执行状态
如果EL1是aarch64,那么SPSR_EL1.M[4] 将决定着EL0的执行状态
全部0条评论
快来发表一下你的评论吧 !