我在 Cortex M4 上运行的应用程序因硬故障而崩溃。CSFR 寄存器指示IMPRECISERR.
阅读http://chmorgan.blogspot.nl/2013/06/debugging-imprecise-bus-access-fault-on.html建议我设置DISDEFWBUF辅助控制寄存器 (ACTLR) 中的位。这将使我能够获得PRECISERR更容易调试的信息。
通过阅读编程手册
对于我们的 CPU,我们可以看到 ACTLR 位于地址0xE000 E008,DISDEFWBUF位是1。
在 中main,可以使用以下代码设置该位:
*(uint8_t *)0xE000E008 |= (1<<i);
Run Code Online (Sandbox Code Playgroud)
在哪里 i = 1;