This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C129ENCPDT:程序卡在 FaultISR (空)中

Guru**** 2443910 points
Other Parts Discussed in Thread: TM4C129ENCPDT

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/627599/tm4c129encpdt-program-stuck-in-faultisr-void

器件型号:TM4C129ENCPDT

您好!

我使用的是 Tiva TM4C129ENCPDT 开发板、并尝试使用 grlib 将 TFT 显示屏与其连接。

我的程序卡在 FaultISR (void)上。 我 已经浏览过"诊断 StellarisRegistered微控制器中的软件故障"数据表,但找不到解决方案。

以下是执行跳转到  FaultISR (void)时的寄存器值。

MSP   0x1FFFFFE0   MSP 寄存器[内核]

NVIC_FAULT_STAT   0x00009200   可配置故障状态[存储器映射]

NVIC_MM_ADDR      0x1FFFFFF0  存储器管理故障地址[存储器映射]

NVIC_FAULT_ADDR   0x1FFFFFF0   总线故障地址[存储器映射]

xPSR                0x21000003    存储中断使能和关键处理器状态信号[内核]的状态

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这些"寄存器值"本身-如果没有导致"FaultISR"的代码-会产生一个"无法获得"的诊断吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    故障地址(0x1FFFFFFF)使我怀疑您的堆栈溢出。 RAM 从0x20000000开始、堆栈通常作为 RAM 中的第一个部分。 堆栈在使用时会向较低的地址增长。 这样、当栈溢出分配的空间而不破坏某些 RAM 变量时、就会出现内存故障。 尝试增大堆栈大小。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果这解决了问题、我是否可以建议使用蛮力? 将 TM4C129的堆栈拖至4096 (除非您真的需要该存储器用于其他用途)! 否则、您将迟早再次遇到一个奇怪的故障、并将浪费大量的时间来解决它(这些错误行为从未如此一致...)
    布鲁诺
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的回复、

    上述更改解决了问题。