ARM 异步外部中止

Posted

技术标签:

【中文标题】ARM 异步外部中止【英文标题】:ARM Asynchronous external abort 【发布时间】:2014-03-17 14:56:27 【问题描述】:

我正在 Cortex-A9 上编写裸机应用程序,并且经常遇到数据中止异常。当我在 CP15 的数据故障状态寄存器 (DFSR) 中查找此异常的原因时,故障状态位 (FS) 的值是 b10110。我查看了规范,b10110 的意思是“异步外部中止”。这是什么意思?我找不到任何关于这种中止的有用信息。

例如,我有时也会遇到对齐错误,但我知道这意味着什么,因此我可以相对容易地找到这些类型的错误。但我不知道如何处理异步外部中止,因为我不知道它们的含义或它们发生的原因。谢谢你的帮助。

【问题讨论】:

您设置了sctlr.a 吗?我想知道这是否会让你同步中止。 【参考方案1】:

猜测...您有未对齐的写入,它们被缓冲并且核心移动到后续指令,写入开始发生并失败。 Core 不知道它们的来源,因异步数据中止而失败。

从 Cortex-A Series Programmers Guide 阅读第 11.1 章异常类型,中止可能会给你一些想法。

【讨论】:

以上是关于ARM 异步外部中止的主要内容,如果未能解决你的问题,请参考以下文章

IE 中止外部 javascript 文件请求

c#中断异步操作

带有 Git 命令错误处理的 Powershell - 在来自外部程序的非零退出代码时自动中止

ARM寄存器与汇编指令详解

如何在 ARM 模板中包含外部逻辑应用实现

ARM架构的外部中断介绍(S5PV210芯片)