首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[ARM Cortex-A]:由映射为读/写的代码区域造成的权限错误

[ARM Cortex-A]:由映射为读/写的代码区域造成的权限错误
EN

Stack Overflow用户
提问于 2022-09-27 08:35:01
回答 1查看 46关注 0票数 0

当我试图从映射为读/写(AP2 == 0)的区域执行代码时,CPU发出一个权限错误(异常类== 0b100001,指令错误状态代码== 0b001111)。当我将映射更改为只读(AP2 == 1)时,权限错误就会消失。这是MMU预期的行为吗?我认为可以从映射为读/写的区域执行代码。有人能告诉我"Arm架构参考手册“中的一个章节解释了这一点吗?

供参考:

  • 查看ARM DDI 0487I.a,页D8-5136获取有关AP (访问权限)位的信息
  • 参见ARM DDI 0487I.a,页D17-5657获取关于异常类0b100001 (未更改异常级别的指令中止)的信息
  • 参见ARM DDI 0487I.a,D17-5680页以获取关于指令错误状态代码0b001111 (权限错误,3级)的信息。
EN

回答 1

Stack Overflow用户

发布于 2022-09-27 09:03:47

ARM DDI 0487I.a,D8-5142页有答案。

防止从可写位置执行

有一些寄存器控制字段可以用来强制将可写内存视为XN、PXN或UXN,而不管相应描述符字段的值如何。

对于支持两个异常级别的翻译机制中的第1阶段翻译,对应的SCTLR_ELx.WXN字段执行以下所有操作:

如果值为0,则值为1对访问permissions.

  • If没有影响:如果内存区域可从EL0写入,则将其视为非特权执行--无论块描述符或页面描述符UXN字段的值如何。如果内存区域可从较高的异常级别ELx写入,则将其视为特权执行--不考虑块描述符或页面描述符PXN field.

的值。如果内存区域可从较高的异常级别ELx写入,则被视为特权执行--不考虑块描述符或页面描述符PXN field.的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73864597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档