Aarch64中EL0没有LR和SPSR

疯狂

在AArch64中,有4个异常级别,即EL0-3。ARM站点提到有4个堆栈指针(SP_EL0 / 1/2/3),但只有3个异常链接寄存器(ELR_EL1 / 2/3)和只有3个保存的程序状态寄存器(SPSR_EL1 / 2/3)。

为什么不需要ELR_EL0和SPSR_EL0?

PS对不起,如果这是一个愚蠢的问题。我是ARM体系结构的新手。

不是这样的

按照设计,异常不能以EL0为目标,因此,如果它永远不会发生异常,那么它就无法使机器从其返回。

为了进一步解释(在可选的和更多用途的更高异常级别上有光泽),基本设计是EL1是运行特权系统代码的地方,而EL0是运行非特权用户代码的地方。因此,EL0的工作必不可少,并且对于处理体系结构异常(即需要系统详细知识的低级事物)不是很有用只有特权软件(通常是OS内核)才有权访问必要的完整硬件和软件状态,以决定是否处理该基本硬件异常意味着例如从交换中静静地调入某些内容,而不是将“软件异常”类型的信号传递给冒犯性的任务,要因为做错了事而将其告之。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Aarch64中EL0没有LR和SPSR

来自分类Dev

arm / aarch64上的QEMU -M virt是否可以具有多个串行TTY,例如PL011 ttyAMA0和ttyAMA1?

来自分类Dev

AArch64重定位前缀

来自分类Dev

Aarch64什么是后继转发?

来自分类Dev

构建臂/ aarch64 rootfs

来自分类Dev

在AArch64上执行sqrt函数

来自分类Dev

Rustc / LLVM为opt-level = 0的aarch64生成错误代码

来自分类Dev

具有辅助依赖关系链接的aarch64动态链接器rpath用法

来自分类Dev

aarch64有条件地加载/存储的方式是什么?

来自分类Dev

使用 GitLab runner 在 x64 docker 容器中构建 aarch64 NVIDIA Jetson Nano 镜像

来自分类Dev

AArch64是否支持不对齐访问?

来自分类Dev

Objdump ARM aarch64代码?

来自分类Dev

在Aarch64上同时存在不同大小的页面

来自分类Dev

使用单个aarch64指令获取余数?

来自分类Dev

了解aarch64汇编函数调用,如何操作堆栈

来自分类Dev

用于AARCH64的GHC Haskell编译器

来自分类Dev

内联aarch64程序集UMOV源语法

来自分类Dev

QEMU aarch64 未命中断点

来自分类Dev

gcc; arm64; aarch64; 无法识别的命令行选项'-mfpu = neon'

来自分类Dev

如何在x64主机上交叉编译AArch64的LLVM / Clang?

来自分类Dev

是否可以在aarch64上安装amd64软件?

来自分类Dev

Neon 64bit aarch64:关于 ld4r 的困惑

来自分类Dev

使用O2保留AArch64上的位精确浮点计算

来自分类Dev

将ARM NEON代码移植到AARCH64,很多问题

来自分类Dev

gdb:打印AArch64高级SIMD矢量寄存器(可能吗?)

来自分类Dev

ARMv8 AARCH64指令中止处理程序?

来自分类Dev

ARMv8 AArch64 SVC保存寄存器

来自分类Dev

gcc; Aarch64; Armv8; 启用加密; -mcpu = cortex-a53 + crypto

来自分类Dev

程序集未知助记符AArch64 ARMv8

Related 相关文章

热门标签

归档