手臂处理器中的外部中止

时间:2015-10-23 14:23:10

标签: arm abort mmu

手臂处理器的典型外部中止是什么?

它与普通数据中止和预取中止有何不同?

它如何通知应用程序外部中止?

1 个答案:

答案 0 :(得分:4)

通常ARM处理器自带协处理器,其协处理器之一是cp15,它充当MMU。

如果有任何此类虚拟地址,MMU无法找到任何页面,或者遇到转换故障,称为数据或预取中止取决于相应的路径(I Cache或D Cache)。

http://infocenter.arm.com/help/index.jsptopic=/com.arm.doc.ddi0438d/BABFFDFD.html

假设您遇到这样一个虚拟地址,该地址在映射中具有有效的物理地址但物理地址本身无效(或者该地址属于安全世界即信任区域),系统总线将在此情况下生成中止,因为它无法解码物理地址。

简单来说,MMU无法检测到的所有中止称为外部中止,应用程序将通过SIGBUS信号通知

  

手臂处理器的典型外部中止是什么?

典型的外部中止与硬件相关。用户进程通常不可能导致此问题。典型原因是不启用SOC模块的时钟和/或初始化相关SOC块(总线配置,引脚复用等)。当访问受保护的内存(即,来自正常世界的安全内存)时,TrustZone也会发生这种情况。

  

它与普通数据中止和预取中止有何不同?

正常数据中止和预取正在使用未由MMU映射的内存。映射外部中止,但是当CPU运行总线周期时,物理地址的外设不响应(或将错误发送回CPU)。

  

它如何通知应用程序外部中止?

由于外部中止对CPU(也称为硬件)有一些外部,通常情况下应用程序无法获得外部中止。应用程序不应直接处理硬件。