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.

[参考译文] Tiva-C 控制器进入故障中断、我不知道原因

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/770578/tiva-c-controller-enters-in-fault-interrupt-and-i-dont-know-the-reason

您好!

是否有人知道 Tiva-C 微控制器进入故障中断的原因。

我无法与您分享我的代码、因为它非常大。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    首先检查堆栈大小。 尝试增大堆栈大小、看看是否会有所不同。 通常情况下、如果您看到 LR (链接寄存器)低于 SRAM 存储器映射的开头(SRAM 从0x20000000开始)、则很可能出现栈溢出。

    另一个需要检查的问题是、您是否在启用外设之前访问过这些外设。 通常、在读取/写入外设之前、您需要先启用外设。 例如、要访问 TIMER0外设、您将首先执行 SysCtlPeripheralEnable (SYSCTL_Periph_TIMER0)。 这是您在代码中忘记的东西。 您可以再次检查 LR 寄存器、以找出 CPU 在发生故障之前的最后位置。

    下面是一个很好的应用手册、它向您展示了如何调试 MCU 中的硬件/软件故障。 www.ti.com/.../spma043.pdf
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    我听从了您的建议、并增加了堆栈大小。 一切都进展顺利、似乎存在堆栈溢出问题。

    感谢您的帮助  

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

    大家好、我在 Tiva c 123中使用 CMSIS 时也习惯了获取故障中断。 我通过在 systemInit 中禁用时钟设置来解决该问题。 我希望这可以为您提供一些提示、即使您使用不同的开发环境。

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

    您好、在没有时钟设置的情况下尝试代码。