gpt4 book ai didi

exception - ARM 上的同步外部中止

转载 作者:行者123 更新时间:2023-12-04 22:11:58 25 4
gpt4 key购买 nike

我在 ARM Cortex A9 Pandaboard 上构建了一个裸机应用程序,我经常遇到指令获取中止。当我转储 IFSR 寄存器时,我得到了 0x1008。我已经阅读了引用手册,我知道 1008 是同步外部中止。问题是同步外部中止是什么意思,它来自哪里?谢谢你的帮助。

最佳答案

ARMv7 ARM “VMSA 内存中止”一节像人们所期望的那样彻底地涵盖了这一点(鉴于它是架构的权威定义),但总结起来不到 14 页;

中止 意味着 CPU 试图进行内存访问,无论出于何种原因,都无法完成,因此引发异常。

外部 abort 是来自处理器外部的一个,即总线上的某个东西。换句话说,访问在 MMU 中没有故障,进入总线,然后某个设备或互连本身返回并说“嘿,我无法处理这个”。

A 同步 外部中止意味着你很幸运,因为调试起来不会很糟糕——在预取中止的情况下,它意味着 IFAR将包含错误指令的有效 VA,因此您确切地知道是什么导致了它。令人不快的替代方法是异步外部中止,这只不过是一个中断,说“嘿,你前一段时间做的事情实际上没有奏效。不,我也不知道是什么。”

因此,您试图从您认为是内存但实际上不是的东西中执行指令。没有任何进一步的细节,实际原因可能是任何东西,从打字的硬编码地址到狡猾的页表、陈旧的 TLB 条目、缓存一致性等。

关于exception - ARM 上的同步外部中止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27507013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com