首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ARM9预取中止异常会不会是一个软件问题?

ARM9预取中止异常会不会是一个软件问题?
EN

Stack Overflow用户
提问于 2009-08-31 22:53:03
回答 2查看 5K关注 0票数 3

所以我在我们的arm9系统上得到了一个“预取中止”异常。这个系统没有MMU,那么这可能是一个软件问题吗?在我看来,所有的寄存器都是正确的,并且从JTAG的角度来看,代码看起来是正确的(没有损坏)。

现在我认为这是某种硬件问题(尽管我不想这么说--直到现在硬件都是完好无损的)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-31 22:57:32

你得到的异常到底是什么?

上一次发生在我身上时,我走错了一段时间,因为我没有意识到ARM“预取中止”意味着指令预取,而不是数据预取,而我只是在玩数据预取指令。这仅仅意味着程序试图跳转到一个不存在的内存位置。(实际问题是我在引导加载程序中将"go 81000000“错误地键入为"go 81000”。)

另请参阅:

  • http://www.keil.com/support/docs/3080.htm (调试数据aborts)
  • http://www.ethernut.de/en/documents/arm-exceptions.html ( ARM异常列表)

上的KB条目

票数 6
EN

Stack Overflow用户

发布于 2009-08-31 23:06:20

预取中止触发的地址是什么?这可能是因为程序计数器(PC或R15)设置的地址在您的微控制器上无效(即使您没有使用内存管理单元,也可能发生这种情况-微控制器的地址空间中可能有“漏洞”,这将触发预取中止)。如果您试图预取一个不正确对齐的地址,也可能会发生这种情况,但我认为这取决于微控制器的实现( ARM将该行为列为'UPREDICTABLE')。

CPU是否真的处于中止模式?如果它正在执行预取处理程序,但不处于中止模式,这意味着一些代码正在通过预取中止向量进行分支,通常是通过地址0x0000000c,但控制器通常允许重新映射向量地址。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1359767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档