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.

[参考译文] RTOS/CC2650:iCall_allocMsg 返回空

Guru**** 2587365 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/597061/rtos-cc2650-icall_allocmsg-returns-null

器件型号:CC2650

工具/软件:TI-RTOS

大家好、

我有一个巨大的系统、有多大?  

该工程仅使用 IAR 编译(最大优化)、不能使用 CCS 编译。

当系统不能正常工作时、我可以看到在 IAR 上使用断点、 iCall_allocMsg (或 iCall_malloc) 会为每个分配返回空值。

 我在需要时使用 iCall_free、并在使用后删除所有分配。

在任务之间发送消息队列(例如写入闪存、处理 UART 数据、通过 BLE 发送通知等)时、通常需要 iCall_alloc

长时间运行(超过10小时、连接和通知中断)后、所有任务的分配都失败。

需要建议。

使用: tirtos_simplelink_2_13_00_06。

下面是 IAR 的调试信息:  

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

    更新:
    我正在使用的 Queue_handle 会随着消息而满(通过对消息进行计数和使用 IAR 断点可以看到)、但 Queue_empty 返回 true。

    有一种方法可以使用 IAR 查看 Queue_handle 中的数据?

    这是我从 Queue_Structt 处获得的结果:

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

    建议将 iCall_Free 和 iCall_alloc 替换为 free 和 malloc。
    我现在要测试它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您还可以通过定义 HEAPMGR_MEASICIESTIFICTICT,来查看 ICall 堆指标。 请参阅 SWRU393中的完整过程。

    祝你一切顺利