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:将 SDK 1.2升级到1.3后出现一般事件错误

Guru**** 2530730 points
Other Parts Discussed in Thread: CC3100, UNIFLASH, CC3100SDK, MSP430FR5969

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/827398/cc3100-general-event-error-after-upgrading-sdk-1-2-to-1-3

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

将 SDK 从1.2升级到1.3后、我看到 在 sl_DevGet (...)中出现一般事件错误。 此函数在 configureSimpleLinkToDefaultState()中调用。  

我钻得更深、它们会出现:

verify_RET_OK (_SlDrvCmdOp ((_SlCmdCtrl_t *)&& SlDeviceGetCmdCtrl、&Msg、&CmdExt));

钻进更改为:

SlDrvMsgWrite

并进一步向下钻取至:

/*描述符*/
if (pTxRxDescBuff && pCmdCtrl->TxDescLen >0)

NWP_IF_WRITE_CHECK (g_PCB->FD、pTxRxDescBuff、  
_sl_Protocol_align_size (pCmdCtrl->TxDescLen);

当它进入此函数时 、pIraEventHandler 会有一个 CC3100 IRQ。

我使用 Uniflash 工具来格式化 CC3100、加载1.3 SDK、然后加载我的自定义文件。

我将 CCS 变量 CC3100_SDK_ROOT 从 C:\ti\cC3100SDK_1.2.0\cC3100-SDK 更改为 C:\ti\cC3100SDK_1.3.0\cC3100-SDK。

编译正常。 有什么关于去哪里的建议? 我之前已经回到了 SDK 1.2、但 nonos.c 中有一个主要的错误、我必须使用 SDK 1.3来消除它。

根据我所知、 我的 configureSimpleLinkToDefaultState 函数至少与  C:\ti\CC3100SDK_1.3.0\cC3100-SDK\examples\getting_started_with wlan_station 示例代码中的 configureSimpleLinkToDefaultState 函数启动相同。

我将 SDK 1.2目录重命名为 C:\ti\CC3100SDK_1.2.0A、只是为了确保没有任何依赖项、然后进行了清理。 未找到依赖项。

我的目标处理器是 MSP430FR5969

谢谢!

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

    尊敬的 Salvatorre:

    您看到的错误的内容是什么?

    主机驱动程序在 CC3100 SDK 1.2和1.3之间进行了更改、因此版本说明中提供了迁移说明。 您是否实现了 SL_GetSystemTime 和 SL_GeneralEvtHdlr?

    此致、

    Sarah

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

    感谢您的回答、Sarah! 我明白了!!!!!! 你很棒!

    我没有注意到迁移信息。 尽管这有点隐秘、所以我想向这里的其他人解释一下。

    对于 MSP430FR5969、user.h 具有:

    #define SL_GetTimestamp TIMER_GetCurrentTimestamp
    #define SL_TIMESTAMP_TICKS_IN_10_milliseconds 毫秒_至 TICKs (10)
    #define SL_TIMESTAMP_MAX_VALUE MAX_TIMER_TICKs

    我的 sl_GetTimestamp 被注释掉。 我下载了 SDK 的新副本、现在就在那里。 也许我在2018年 SDK 推出时的某个时候对其进行了评论??? 天哪、我想对此表示怀疑、但谁知道。  

    您需要转至“属性”>>“添加文件”并导航至  

    C:\ti\CC3100SDK_1.3.0\cC3100-SDK\platform\msp430fr5969lp

    需要添加 timer_tick.c 的位置

    这样做后、您将丢失 TIMER_TICK 依赖的 Timer A 函数。

    这些文件位于 MSP430Ware 库中、该库位于以下位置:

    C:\ti\MSP430Ware_3_80_03_07\driverlib\driverlib\MSP430FR5xx_6xx

    将 timer_a.c 添加到您的项目中。

    完成此操作后、我建议转到 timer_a.c 并单击属性资源、然后单击编辑位置。

    我的项目: project_LOC\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\ti\MSP430Ware_3_80_03_07\driverlib\MSP430FR5xx_6xx\timer_a.c、但如果升级 MSP430Ware、这将不起作用。

    您应该已在“属性”>>“资源”>>“链接资源”中定义了该属性。 但该属性与以前不同。 很酷。 因此、X out of Properties。 右键单击项目,然后转至“属性”>>“资源”>>“链接资源”。 现在、我建议您找到或创建 MSP430WARE_ROOT 并为其分配您的 MSP430ware 版本的位置: C:\ti\MSP\MSP430Ware_3_80_03_07。 复制 MSP430WARE_ROOT。

    返回到 timer_a.c Properties>> Resources 并编辑其位置至: ${MSP430WARE_ROOT}\driverlib\driverlib\MSP430FR5xx_6xx\timer_a.c

    如果您的应用代码使用 TIMER0_A0_Vector、请非常小心。 它可能会与 CC3100使用的时序混乱。

    最后一个注意事项。 我正在使用 MSP430Ware_3_80_03_07、因为这是 SDK 1.3的测试标准。 MSP430Ware 当前位于 MSP430Ware_3_80_07_00、但  https://www.ti.com/tool/download/CC3100SDK 上有指向3.80.04.05的链接。

    Sarah、我应该升级到 3.80.04.05 或 3_80_07_00、还是将其保留在 3_80_03_07?

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

    需要澄清的另一点是:TI 文档会调用 sl_GetSystemTime、但它实际上是 SDK 1.3的 msp430fr5969 user.h 文件中的 sl_GetTimestamp

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

    尊敬的 Salvatorre:

    感谢您的描述、这非常有帮助。

    如果您希望更新、当然可以。 它尚未经过全面测试、但我们正在努力更新包含最新 MSP430Ware 的 CC3100 SDK。 到目前为止、我一直在使用3.80.04.05、并且没有发现任何问题。 除非对 MSP430 SPI 或计时器实现进行了更改、否则主机驱动程序移植层应保持不变。

    此致、

    Sarah