ARMv8架构特殊寄存器介绍-1

1,ELR寄存器(Exception Link Register )

The Exception Link Register holds the exception return address。

异常链接寄存器保存异常返回地址。最常用也很重要。

2,SPSR(Saved Process Status Register)

当获取异常时,处理器状态存储在相关的Saved Program Status中寄存器(SPSR),与ARMv7中的CPSR类似。SPSR保存PSTATE的值在执行一个异常时,用于恢复PSTATE的值异常返回。
The individual bits represent the following values for AArch64:

  • N Negative result (N flag).
  • Z Zero result (Z) flag.
  • C Carry out (C flag).
  • V Overflow (V flag).
  • SS Software Step. Indicates whether software step was enabled when an
    exception was taken.
  • IL Illegal Execution State bit. Shows the value of PSTATE.IL
    immediately before the exception was taken.
  • D Process state Debug mask. Indicates whether debug exceptions from
    watchpoint, breakpoint, and software step debug events that are
    targeted at the Exception level the exception occurred in were masked
    or not.
  • A SError (System Error) mask bit.
  • I IRQ mask bit.
  • F FIQ mask bit.
  • M[4] Execution state that the exception was taken from. A value of 0
    indicates AArch64.
  • M[3:0] Mode or Exception level that an exception was taken from.

在ARMv8中,写入的SPSR依赖于Exception级别。如果在EL1中采取异常,则使用SPSR_EL1。如果在EL2中采用异常,则使用SPSR_EL2在EL3中采用异常,则使用SPSR_EL3。当取an时,核心填充SPSR

例外。

注意:

与异常级别相关联的寄存器对ELR_ELn和SPSR_ELn保留它们在较低的Exception级别执行期间的状态

相关推荐
贝塔实验室11 小时前
Altium Designer 6.3 PCB LAYOUT教程(四)
驱动开发·嵌入式硬件·硬件架构·硬件工程·信息与通信·基带工程·pcb工艺
咯哦哦哦哦13 小时前
vscode arm交叉编译 中 cmakeTools 编译器设置
linux·arm开发·vscode·编辑器
GilgameshJSS17 小时前
STM32H743-ARM例程40-U_DISK_IAP
c语言·arm开发·stm32·单片机·嵌入式硬件
XINVRY-FPGA2 天前
XC7Z020-1CLG484I Xilinx AMD FPGA Zynq-7000 SoC
arm开发·嵌入式硬件·网络协议·fpga开发·硬件工程·信号处理·fpga
电子硬件笔记2 天前
嵌入式硬件:如何理解高频电子线路,从入门开始
嵌入式硬件·硬件架构·硬件工程·嵌入式实时数据库
电鱼智能的电小鱼3 天前
基于电鱼 ARM 边缘网关的智慧工地数据可靠传输方案——断点续传 + 4G/5G冗余通信,保障数据完整上传
arm开发·人工智能·嵌入式硬件·深度学习·5g·机器学习
范纹杉想快点毕业3 天前
12个月嵌入式进阶计划ZYNQ 系列芯片嵌入式与硬件系统知识学习全计划(基于国内视频资源)
c语言·arm开发·单片机·嵌入式硬件·学习·fpga开发·音视频
wanhengidc3 天前
云手机畅玩 梦幻西游
运维·服务器·arm开发·智能手机·自动化
z202305083 天前
linux之arm SMMUv3 故障和错误(4)
linux·运维·arm开发
攒钱植发3 天前
嵌入式Linux——解密 ARM 性能优化:LDR 未命中时,为何 STR 还能“插队”?
linux·arm开发·c++·性能优化