已知如何从异常级别返回到上一个异常级别(set elr_el3 -> set spsr_el3 ->execute eret),但是如何从 EL3 ERET 到同一个 EL3?在ARM的官方文档中,我发现这样一句话说这是可能的:“从异常返回可以保持在相同的异常级别或进入较低的异常级别。它不能移动到更高的异常级别。”。
ERET 指令可用于返回到 CPU 支持的相同或任何较低的异常级别。如果存储的保存模式字段SPSR_EL3.M[4:0]
设置为0b01101
或0b01100
,其中位编码M[3:2]
异常级别 3,则在 EL3 执行的 ERET 指令将返回到 EL3。
有关 SPSR_ELx 寄存器如何布局的更多详细信息,请参阅ARM 架构参考手册 - ARMv8中的“D1.6.4 保存的程序状态寄存器 (SPSR)”部分,了解 ARMv8-A 架构配置文件。
归档时间: |
|
查看次数: |
3397 次 |
最近记录: |