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.

[参考译文] CC3351:NETWORK_SEND 问题

Guru**** 2763595 points

Other Parts Discussed in Thread: CC3351

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1614944/cc3351-network_send-problem

器件型号: CC3351

我在 SDIO 模式下将 cc33xx_RTOS_MCU_PACKAGE_R8_1 与 CC3351 一起使用、发现了一些与 network_send 函数相关的错误。 第一个示例是指如果要发送的 pbuffer 是链、则分配的内存应具有足够的大小、以便将 pbuffer 链合并为单个连续的内存块。 问题是、在执行此操作时、currentPacket 变量会迭代遍历 pbuffer 列表、直到其值变为 NULL(network_lwip.c 的第 486 行)。 之后、在第 510 行上、代码检查内存是否应释放、并为此使用 currentPacket->payload 的值将其与 buff 的值进行比较。 这会导致存储器引用无效(因为当 pbuffer 是链时、currentPacket 为 NULL)。

第二个问题是、对 network_send 中的 Wlan_Ether PacketSend 函数的调用未考虑 Wlan_Ether PacketSend 可能返回的错误。 最重要的一个是 WLAN_ERROR_TYPE__ENQUEUE、这种情况发生在等待传输到 CC3351 的待处理数据包数量大于或等于 MAX_TX_FRAMES(默认值低得离谱)时。 这些数据包会静默丢弃、导致‑μ s 的‑μ s 订单接收错误、重试或数据包丢失。 可以通过在遇到此错误时执行具有等待期的重试机制来解决此问题、而不是默默地丢弃数据包。

此致、

mg Ing. Sergio A. Lapilli

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

    您好 Sergio、

    感谢您对这些问题的备注。 我将详细介绍这些问题、看看我们是否已经解决了这些问题。 如果没有、则提交 TT 以解决这些问题。