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.

[参考译文] CCS/LP-CC2652RB:Hwi 维护以减轻 Error_PolicyMin 硬故障:强制:BUSFAULT:IMPRECISERR

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/968838/ccs-lp-cc2652rb-hwi-maintenance-to-mitigate-error_policymin-hard-fault-forced-busfault-impreciserr

器件型号:LP-CC2652RB

工具/软件:Code Composer Studio

我有2个硬件中断启用了后置到二进制信标(一个频率为250Hz、另一个频率为25Hz、分别在 SPI 和 I2C 端口上运行)。 我的堆为0x2000、我已经尝试将 HWI 堆栈大小从1028增大到2048、但大约一分钟后、我的项目仍然在 Error_PolicyMin 处结束、但有一个例外。 我不确定如何解释下面的异常。

任务堆栈和 HWI 堆栈似乎用0xBE 填充。

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

    我想我会尝试在这里用某种方向回答我自己的问题。

    • 2.2使用 TI-RTOS 调试常见应用问题 是一个有用的错误入门
    • 有关错误的 SYS/BIOS 文档 非常有用
    • 将设备暂停在 Error_PolicyMin ()并检查 ROV Viewer > BIOS Module > Scan for errors...(ROV 查看器> BIOS 模块>扫描错误...) 轻松识别 HWI 溢出异常
      • HWI 模块/异常选项卡具有发生异常的任务的一些指示(即地址)
      • 真正的资金在任务模块中、对于我的 xlTaskFcn、stackPeak 为508 (在例外之后)、而 STACKSIZE 为512
      • 我将该任务的大小增加到了1024、现在峰值为528、几分钟后没有发生异常

    我仍然不理解的是任务是如何随着时间的推移而使用堆栈的。 随着时间的推移、我不会创建新变量(仅使用指针修改全局缓冲区)。 如果我想运行这个项目一年、我将如何开始估算我的 STACKSIZE? 了解堆栈是如何累积和渐近的将会有所帮助。

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

    您好!

    调试工作做得很好:)

    如果应用程序工作正常(即代码正确)、则使用的堆栈不应无限期增加。 堆栈大小持续增长是内存损坏的迹象(可能是某些 malloc 未正确释放)。

    在您的情况下、它看起来不像这样。 当堆叠溢出时、测量堆叠峰值的工具无法正常工作。 我建议使用适当的堆栈大小运行系统一段时间、看看您是否可以具有固定的堆栈峰值。

    让我们及时了解最新信息!

    此致、