主题中讨论的其他器件: CC2652R、CC2652P、 CC1352P、 SysConfig
工具/软件:
我使用函数`zb_zcl_finish_and_send_packet_new (……zb_callback_t cb...)` 数据包的 MCU。 在极少数情况下、在调用 send 函数1.5秒后、回调函数仍未执行。 超时后、我继续发送下一个数据包、但回调函数仍未执行。 由于每个数据发送都需要动态存储器分配、并且我在回调函数中释放存储器、因此该问题连续多次发生、导致存储器分配失败。 发生此问题时、您只能重新启动 CC2340器件以恢复正常运行。
我使用 CC2340R52 ZED 和 CC2652P1 ZC 测试、其中每个器件每50ms 向另一个器件发送数据、每个数据包承载64字节的应用层数据。 软件逻辑如下:PC 通过串行端口向 MCU 发送数据、然后 MCU 将数据存储在队列中。 接下来、在主循环中、它从队列中检索一个数据包并将其发送到另一个 ZigBee 设备、等待执行回调函数、然后再发送下一个数据包。 如果回调函数在1.5秒后未执行、它将继续发送下一个数据包。 我可以确认设备未崩溃。
附件是我的源代码的一部分。
e2e.ti.com/.../8055.CC2340R-send-packet.zip