【发布时间】:2022-09-27 17:03:47
【问题描述】:
当我尝试从映射为读/写 (AP[2] == 0) 的区域执行代码时,CPU 发出权限错误(异常 class== 0b100001,指令错误状态代码 == 0b001111)。当我将映射更改为只读 (AP[2] == 1) 时,权限错误就消失了。这是 MMU 的预期行为吗?我认为允许从映射为读/写的区域执行代码。有人可以指出“Arm 架构参考手册”中解释这一点的部分吗?
以供参考:
- 有关 AP(访问权限)位的信息,请参见 ARM DDI 0487I.a,第 D8-5136 页
- 有关异常类 0b100001 的信息,请参见 ARM DDI 0487I.a,第 D17-5657 页(在未更改异常级别的情况下执行指令中止)
- 有关指令故障状态代码 0b001111(权限故障,级别 3)的信息,请参见 ARM DDI 0487I.a,第 D17-5680 页
标签: arm arm64 mmu armv8 cortex-a