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.

[参考译文] CC3100:主机驱动程序中的硬故障

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1349866/cc3100-hardfault-in-host-driver

器件型号:CC3100
主题中讨论的其他器件: UNIFLASHCC3200

我们公司在家庭安防系统中使用 CC3100芯片的时间很长。 平台是带协作操作系统的 STM32。 自2017年以来、出于多种原因、我们既没有更新主机驱动程序、也没有更新芯片、也没有应用任何服务包。 我们的主机驱动程序版本为1.0.1.11。 上个月一些客户端设备在同一位置报告了硬故障:simplelink\source\driver.c 行1143:
案例 CMD_RESP_CLASS:
NWP_IF_READ_CHECK (g_pcb->FD、g_pcb->FunctionParams.pTxRxDescBuff、_sl_Protocol_align_size (g_pcb->FunctionParams.pCmdCtrl->RxDescLen);
同时、器件具有 sl_WlanPolicySet (SL_POLICY_CONNECTION、SL_CONNECTION_POLICY (0、0、0、0、 0)、NULL、0)函数调用、这意味着闪存错误、afaik。
在 NWP_IF_READ_CHECK 宏命令下、我需要和 HAL_SPI_RECEIVE_DMA (&WIFI_SPI、buf、len)进行非阻塞等待、直到 SPI_RxCpltCallback 到达。
您能对此提供帮助吗?
硬错是非常罕见的,我不能重现它在我的桌子上。
我在上面的字符串中看到可疑的宏_SL_PROTOCOL_ALIGN_SIZE、在某些情况下、它可能会导致读取时发生缓冲区溢出。
主机驱动程序升级能否解决此问题? 是否也需要应用芯片服务包?

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

    您好!

    硬故障不容易调试、可能由堆栈溢出或其他存储器溢出故障引起。

    您可以通过互联网阅读、可能有原因。 例如、查看这个 https://interrupt.memfault.com/blog/cortex-m-hardfault-debug

    在你的特定情况下,NWP_IF_READ_CHECK( )失败意味着与 NWP 的同步可能会出现问题。 这可能是主机接口完整性、但也会因某种原因导致 NWP 崩溃。

    若要对此进行仔细检查、可以获取 NWP 日志以确保发生了什么情况。 您是否有任何指示致命错误的异步事件?

    什洛米

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

    尊敬的 Shlomi:

    感谢您的回答。 我不确定异步事件、因为如果它刚好在 HF 之前、我的软件无法记录它。 而堆栈足够了、HF 报告显示 SP 位于当前任务堆栈的1/3上。 我想如果 NWP 崩溃、不会导致主机驱动程序出现硬故障。
    1) 1)上述_SL_PROTOCOL_ALIGN_SIZE 宏指令又如何? 它会增加大小、如果缓冲区没有额外的4个字节、NWP_IF_READ_CHECK 会使其溢出。 我没有在主机驱动程序代码中进行过多的挖掘来查找用于 NWP_IF_READ_CHECK 调用的输出缓冲区。 这一呼叫是否始终安全?
    2) 2) sl_WlanPolicySet 返回的闪存错误的原因是什么? 在我的表单中、我通过 sl_WlanPolicyGet 读取当前设置、如果这些设置是不正确的、我会调用 sl_WlanPolicySet 并收到错误。 闪存格式化后错误消失。 如何避免闪存损坏并延长闪存寿命?
    3)你提到了 NWP 日志,如何抓取它?

    Br
    迈克尔

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

    您好!

     SL_PROTOCOL_ALIGN_SIZE 宏命令应该可以(或者至少我在几年的时间内找不到任何问题)。 基本上、当命令发送到器件并等待命令响应时、TX 侧会分配所用的缓冲区。 在命令响应中、会调用您提到的代码。

    您是说 servicepack 是旧的、还是您从未用 servicepack 刷新过? 如果您根本没有服务包(从 ROM 运行)、则不建议这样做。

    要启用 NWP、您可以按照 NWP UG 中第20章的步骤进行操作 、此处为 https://www.ti.com/lit/ug/swru455m/swru455m.pdf?ts = 1713276158721&ref_url=https%253A%252F%252Fwww.google.com%252F

    您还可以在此论坛中找到许多对此进行讨论的帖子。

    此致、

    什洛米

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

    您好!


    是的、没有对我们的 CC3100芯片应用任何服务包。 这是正常的? 以及具有 HostDriver v1.0.1.11的 SDK v1.3.0是最新的版本? 无需升级?

    Br
    迈克尔

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

    实际上不建议使用 servicepack、因为 NWP/MAC/PHY 中有无穷无尽的修复。

    幸运的是、即使与您正在使用的 v1.0.1.11等较旧的驱动程序一起使用、服务包也应该可以正常工作。

    我需要更新服务包。

    什洛米

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

    目前、Arize 仅在新 CC3100芯片中出现问题、我认为、这些芯片已包含您提到的所有 NWP/MAC/PHY 修复。 如何查看芯片版本、判断是否需要服务包? 以及 CC3100是否有新版本的主机驱动程序? v1.0.1.11是最新的版本吗?
    迈克尔

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

    您使用的是什么 CC3100芯片组? IC 还是模块? 芯片上的丝印是什么意思?

    我提出的问题是、因为只有模块包含用于存储服务包的串行闪存。 如果您使用的是 IC、请确保您没有服务包。

    检查版本的理想方法是从应用程序调用正确的 API 或从器件捕获 NWP 日志。

    v1.0.1.11不是最新版本。 最新版本为 v1.0.1.14。

    什洛米

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

    它是一个芯片、标签是:

    CC3100R1

    983 ZRL4 G4

    本手册介绍了所有外部组件、包括外部闪存 W25Q16。

    在哪里下载主机驱动程序 v1.0.1.14 ?

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

    因此、如果您没有使用 Uniflash 更新服务包、强烈建议您这样做。

    您可以在 https://www.ti.com/tool/CC3200SDK 下找到最新版本、

    什洛米

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

    谢谢你。 但是该主机驱动程序适用于 CC3200、是否适合 CC3100?

    以及我要为 CC3100选择哪个服务包: www.ti.com/.../CC3100SDK

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

    是的、主机驱动程序是相同的。

    只需采用最新的 SP v1.0.1.15。

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

    您好 Shlomi:

    我可以向任何 CC3100R 芯片应用服务包、不管是旧的还是新的?

    迈克尔

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

    Michael、您好!

    最新 ServicePack 与所有 CC3100R 器件兼容。 但它与 XC3100HZ (PG 1.32)等预制器件不兼容。

    1月

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

    谢谢!