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.

[参考译文] CC2652R:SimpleCentral_enqueueMsg 中的 iCall_malloc 以及如何处理 NULL 值

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1085682/cc2652r-icall_malloc-in-simplecentral_enqueuemsg-and-how-to-handle-null-values

部件号:CC2652R

过了一段时间,我在 sime_central 的以下行的 pMsg 中运行为 null:

scEvt_t *pMsg = iCall_malloc (sizeof (scEvt_t));

该应用程序仍在运行,但未能对消息排队(显然)。 没有一个堆栈峰接近被满足,而有了动态堆,我真的不知道如何解决这个问题? 或者,一旦发生这种情况,是否有办法重置继续运行所需的功能?

SDK 5.20.00.52

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

    要补充一点...

    另一个有趣的迹象是,我所有的计时人员 最终都在这一点上被搞混了。 参见“纹理”。

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

    您好,

    我已要求一位专家研究这一个问题。 同时,如果可能,请您提供有关连接和 PHY 的信息吗? 另外,请跟踪 pMsg 以查看是否有任何修改。

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

    我不确定您所指的信息是什么? 这是简单中央版的略微修改版本。 我也不知道你的意思是什么。 谢谢

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

    嗨,Matt,

    您能不能对简约中央的修改有所了解吗?

    [引用 userid="457824" url="~ë/support/wireless-connectivity /蓝牙组/Bluetooth/f/Bluetooth-forum/1085682/cc2652r-iCall_malloc-in-simplecentrental_enqueuemsg-and -hut-hand-null-values"],或者一旦发生,是否有方法可以继续重置功能[引用/引用]?

    这通常是看门狗重置的用途。 基本上,它会对设备执行硬复位。

    您看到的行为是否一致? 您在应用程序中设置的任何内容是否会导致此问题的发生频率越来越高?

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

    是的,我认为看门狗可以用作备份,但可能就像在 pMsg 上捕获 NULL 一样容易。 修改后,它会运行一个循环以连接到设备,因此一些数据会卸载到 SD 卡上,然后断开连接(无需物理使用菜单)。 我曾尝试评论尽可能多的功能(例如保存到 SD),以便在不幸运的情况下隔离状况。

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

    嗨,Matt,

    检查堆时,是否定义了 HEAPMGR_Metrics 并对其进行了跟踪? 下面是我们 的《调试指南》页面的链接 ,该页面介绍了调试潜在内存问题。

    您提到您已经检查了堆统计,我只是想确保我们已经覆盖了此处的所有基础,并且您也检查了堆栈堆分配。 这就是 iCall 的用途。 尝试添加 HEAPMGR_metrics,然后跟踪指南中的变量,特别是  heapsgrMemAlo, heapsgrMemFail 和 heapsgrMemMax。