什么是arm处理器上典型的外部中止?
它与正常的数据中止和预取中止有什么不同?
它如何通知应用程序外部中止?
发布于 2015-10-23 15:18:26
通常ARM处理器伴随着协处理器,它的协处理器之一是cp15,它充当一个MMU。
如果存在MMU无法找到任何页面或遇到翻译错误的虚拟地址,则称为数据或预取中止取决于各自的路径(I缓存或D缓存)。
http://infocenter.arm.com/help/index.jsptopic=/com.arm.doc.ddi0438d/BABFFDFD.html
假设您遇到这样一个虚拟地址,该虚拟地址在映射中具有有效的物理地址,但物理地址本身无效(或者该地址属于安全世界,即信任区域),在这种情况下,系统总线将生成一个中止,因为它将无法解码物理地址。
简单地说,所有不会被MMU检测到的中止都被称为外部中止,并且应用程序将被SIGBUS信号所通知。
什么是arm处理器上典型的外部中止?
典型的外部中止是与硬件相关的。用户进程通常不可能造成这种情况。典型的原因是不允许时钟到SOC模块和/或初始化依赖的SOC块(总线配置、引脚复用等)。在访问受保护的内存(即从正常世界获得安全内存)时,TrustZone也会发生这种情况。
它与正常的数据中止和预取中止有什么不同?
正常的数据中止和预取正在使用未由MMU映射的内存。将映射外部中止,但当CPU运行总线周期时,物理地址的外围设备不会响应(或将错误发送回CPU)。
它如何通知应用程序外部中止?
由于外部中止意味着一些外部(也称为硬件),通常情况下,应用程序将获得外部中止。应用程序不应直接处理硬件。
https://stackoverflow.com/questions/33304717
复制相似问题