从ELR_EL中恢复PC指针 从SPSR_ELx中恢复PSTATE寄存器的状态 四、异常处理的路由 SCR_EL3 HCR_EL2 栈的选择 我们可以通过SPSel寄存器来配置SP。SPSel寄存器中的SP字段设置为0表示所有的EL中使用SP_EL0作为栈指针寄存器,设置为1表示使用SP_ELx作为栈指针寄存器 ARMV8异常向量表 ARMV8向量表有如下特点 除EL0之...
每个异常状态下都有一个 ELR_EL 寄存器,ELR_ELx 寄存器是异常综合寄存器或者异常状态寄存器 ,负责保存异常进入 Elx 的地址和发生异常的原因等信息。 该寄存器只有 ELR_EL1、ELR_EL2、ELR_EL3 这几种,没用 ELR_EL0 寄存器,因为异常不会 routing(target) 到 EL0。例如:16bit 指令的异常、32bit 指令的异常、...
例如,当处理器将异常处理交给EL1处理时,会将异常返回地址保存在ELR_EL1中。在异常返回时,PC恢复到存储在ELR中的地址。例如,从EL1返回时,PC将恢复到ELR_EL1中存储的地址。 AArch64状态为每个异常级别都提供了ELR寄存器: ELR_EL1,用于EL1的异常。 如果实现了EL2,ELR_EL2用于EL2的异常。 如果实现了EL3,ELR...
在异常返回时,PC恢复到存储在ELR中的地址。例如,从EL1返回时,PC将恢复到ELR_EL1中存储的地址。 AArch64状态为每个异常级别都提供了ELR寄存器: ELR_EL1,用于EL1的异常。 如果实现了EL2,ELR_EL2用于EL2的异常。 如果实现了EL3,ELR_EL3用于EL3的异常。 (5)ESR(Exception Syndrome Register) 异常综合表征寄存...
EL3:安全模式,例如secure monitor; 2.同步异常和异步异常 同步异常是由正在运行的指令,或指令运行的结果,出错造成的异常;而异步异常则不必由运行的指令造成,可以在程序运行中的任意时刻(异步)发生。 同步异常包括: 1.系统调用,svc, hvc, SMC等; 2.MMU引发的异常; ...
设置elr_el3,以及spsr_el3寄存器:◾elf_el3寄存器保存,切换到EL2时取指令的地址 ◾spsr_el3寄存器...
为从Hyp模式返回的异常提供一个ELR。 为高级SIMD向量和标量浮点支持提供32个64位寄存器。 提供两个指令集,A32和T32。 支持基于PE模式的ARMv7-A异常模型,并将其映射到基于异常级别的ARMv8异常模型。 提供对32位虚拟寻址的支持。 定义许多包含PE状态的进程状态(PSTATE)元素。A32和T32指令集包括直接操作各种PSTATE...
ELR_ELx 异常链接寄存器 每个异常状态下都有一个 ELR_EL 寄存器,ELR_ELx 寄存器是异常综合寄存器或者异常状态寄存器 ,负责保存异常进入 Elx 的地址和发生异常的原因等信息。 该寄存器只有 ELR_EL1、ELR_EL2、ELR_EL3 这几种,没用 ELR_EL0 寄存器,因为异常不会 routing(target) 到 EL0。例如:16bit 指令的...
1. 进入异常立即保存所有的通用寄存器上下文x0-x30。寄存器保存在SP_EL3寄存器引用的per-cpu数据结构cpu_context中。 2. 保存系统寄存器ELR_EL3, SP_EL0 and SPSR_EL3到SP_EL3应用的per-cpu数据结构cpu_context中。 3. 通过从S_EL0的per-cpu cpu_context数据结构中恢复CTX_RUNTIME_SP值切换到C执行环境,执行...
PC从ELR_ELx恢复 PSTATE从SPSR_ELx恢复 11 中断的标记 在gicv3中断控制器中,对中断进行了分组:Group0、Secure Group1、Non-secure Group1。当一个中断进来的时候,cpu interface会根据中断的分组类型和当前PE的security状态来决定是标记为IRQ还是FIQ 12 中断的路由 ...