手臂处理器中的外部中止[关闭]
Posted
技术标签:
【中文标题】手臂处理器中的外部中止[关闭]【英文标题】:external abort in arm processor [closed] 【发布时间】:2015-10-23 14:23:09 【问题描述】:ARM 处理器上的典型外部异常终止是什么?
它与普通数据中止和预取中止有何不同?
它如何通知应用程序外部中止?
【问题讨论】:
为什么会被搁置?需要了解 ARM CPU 才知道这不是太宽泛。 可能相关:What do these kernel panic messages mean 【参考方案1】:通常 ARM 处理器带有协处理器,其中一个协处理器是 cp15,它充当 MMU。
如果有任何这样的虚拟地址,MMU 无法找到任何页面,或者遇到称为数据或预取中止的转换错误,取决于各自的路径(I Cache 或 D Cache)。
http://infocenter.arm.com/help/index.jsptopic=/com.arm.doc.ddi0438d/BABFFDFD.html
假设你遇到这样一个虚拟地址,它在映射中有一个有效的物理地址,但物理地址本身是无效的(或者该地址属于安全世界,即信任区),系统总线会在这种情况下产生中止,因为它无法解码物理地址。
简而言之,所有不会被 MMU 检测到的中止称为外部中止,应用程序将收到 SIGBUS 信号通知
ARM 处理器上的典型外部异常终止是什么?
典型的外部中止是与硬件相关的。用户进程通常不可能导致这种情况。典型原因是未启用 SOC 模块的时钟和/或初始化相关的 SOC 块(总线配置、引脚多路复用等)。当访问受保护的内存(即来自正常世界的安全内存)时,TrustZone 也会发生这种情况。
它与普通数据中止和预取中止有何不同?
正常数据中止和预取正在使用未由 MMU 映射的内存。映射了外部中止,但是当 CPU 运行总线周期时,物理地址处的外设没有响应(或将错误发送回 CPU)。
它如何通知应用程序外部中止?
由于外部中止意味着CPU(也称为硬件)的一些外部,通常情况下应用程序不会获得外部中止。应用程序不应直接处理硬件。
【讨论】:
以上是关于手臂处理器中的外部中止[关闭]的主要内容,如果未能解决你的问题,请参考以下文章