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.

[参考译文] CC3120:将使用非操作系统实现的现有 CC3100主机应用移植到 CC3120

Guru**** 2564260 points
Other Parts Discussed in Thread: CC3120, CC3100

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/578718/cc3120-porting-an-existing-cc3100-host-application-that-uses-non_os-implementation-to-cc3120

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

您好!

我已经开始研究如何将我们的应用从使用 CC3100移植到 CC3120。 如线程标题中所述、我们当前使用的是具有 non_OS 选项的 CC3100驱动程序。 我已经安装了 simplelink_msp432_sdk_wio_plugin_1_00_00_04 (我认为这是我们应该从其中获取 CC3120主机驱动程序和补丁的地方)、并查看了《SinpleLink 第1代到第2代迁移指南》、但我完全不清楚如何在非操作系统实施中使用新 SDK。 我希望有人能向我指出我所遗漏的一些明显的东西。

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

    CC3120软件套件本质上是 MSP432 SDK 的插件。 CC3120的驱动程序(source/ti/drivers/net/wifi)并不特定于任何 RTOS 或非 RTOS。

    user.h 已从第1代稍微更改为第2代、需要更新。 遗憾的是、在此版本中、我们还没有非 RTOS 示例。

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

    感谢您的回复。 是否有非 RTOS 示例何时可用的想法?

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

    我们希望在即将发布的版本中包含这些内容、但我目前没有日期。

    此致、
    Sarah
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、谢谢 Sarah。 同时、我想我将尝试从 CC3100主机驱动程序复制 nonos 代码、并查看是否可以使其正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Sarah、

    是否有任何更新?

    此致、

    卢卡斯

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

    您好 Lucas、

    FWiw、我从 CC3100 SDK 中获取了 nonos 实现、并对其进行了细微修改、以便与 CC3120搭配使用、看起来效果很好。 CC3100和 CC3120 SDK 之间的一些变量和函数名称不同、您必须实施主机时间戳服务、否则驱动程序将会超时。

    -Ed

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

    感谢您的帮助,我实现了 slcb_GetTimestamp,但由于这一原因,主机驱动程序不断在_SlDrvMsgReadCmdCtx()中中止
    SL_SyncObjWait (&G)_PCC->CmdSyncObj、CmdCMpltTimeout);"driver.c"的第1964行
    如果我在此行添加断点、我可以毫无问题地单步执行代码、但尝试运行代码将始终失败。
    您是否经历过类似的事情?
    如果您能提供更多帮助、我们将不胜感激。

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

    您好 Lucas、

    我们最终放弃了主机时间戳服务、因为我们的主机使用500ms 的操作系统周期、这会由于其粒度较大而导致一些错误超时。

    在我们这么做之后,我们必须对_SlNonOsSemGet()进行1次修改,使其正常工作。 如果未定义 slcb_GetTimestamp,我们决定只注释掉_SlNonOsSemGet ()中的以下行,而不是浏览驱动程序并确保所有超时值都是 Nonos_wait_forever:


    #if (!defined (slcb_GetTimestamp))||(defined (sl_Tiny_EXT)) // if (超时!= Nonos_wait_forever) // { // 超时--; //}

    请告诉我、这是否适合您。

    -Ed

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

    感谢堆、它似乎正在努力工作、并且没有任何问题(:

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

    你(们)好

    自最初发布之日起超过六个月、CC3120仍不存在任何非操作系统示例。 我希望您能帮助我。 我正在尝试为 CC3120启动并运行非操作系统端口。 我使用您的帖子作为起点、并将 CC3120 SDK 中的 nonos.c 和 nonos.h 替换为 CC3100 SDK 中的 nonos.c 和。 这是编译正常的、但当我调用 sl_Start 时、我发现它在 (line163 device.c)处挂起

    SL_DRV_SYNC_OBJ_WAIT_TIMEOUT (&g_PCB->ObjPUol[ObjIdx].SyncObj、init_complete_timeout、 sl_opcode_DEVICE_INITCOMPLETE);  

    深入挖掘、在_SlNonOsSemGet ()中、从未收到"WaitforCmdResp"  

    if (false =g_pc->WaitForCmdResp)

    (void)_SlNonOsMainLoopTask();

    我意识到我的方法与您所做的方法相反、因为我的起点是 CC3120 SDK、而不是 CC3100 SDK、但我们非常感谢您的任何帮助!  

    谢谢、

    Meenal

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

    您好 Meenal、

    SDK 插件版本1.40中添加了非操作系统示例。 您可以在此处下载最新版本: http://www.ti.com/tool/simplelink-wifi-cc3120-sdk-plugin

    有关实施的其他问题、请启动新主题。

    此致、

    Sarah

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

    从我看这件事到现在、您的问题听起来像是我们遇到的问题。 我相信我们解决这个问题的方法是在 driver.c 中注释掉_SlDrvDriverCBInit()的第966行( 有关我们遇到的问题的说明,请参阅 e2e.ti.com/.../581209)。

    因此、不是这样:
    if (GlobalLockObj =空)

    OSI_RET_OK_CHECK (sl_LockObjCreate (&GlobalLockObj,"GlobalLockObj"));


    执行此操作:
    //if (GlobalLockObj ==空)

    OSI_RET_OK_CHECK (sl_LockObjCreate (&GlobalLockObj,"GlobalLockObj"));


    请告诉我这是否能解决您的问题。

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

    你好,Sarah

    我安装了最新版本的 SDK 插件(1_40_00_02)、非操作系统示例需要使用 SemaphoreP.h 和 MutexP.h 等、如本海报所述 - https://e2e.ti.com/support/wireless_connectivity/simplelink_wifi_cc31xx_cc32xx/f/968/t/620115。 因此、我转到了 CC3100 SDK。

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

    感谢您的回复。 不幸的是,这不是我问题的原因。 我认为问题出在 SPI 通信中的某个地方。 我可以看到正在检测到 IRQ、但一直在等待从 CC3120器件返回的"init complete"。

    Meenal