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.

[参考译文] CC3135:CC3135 WiFi 芯片组的 sl_start (0、0、0)卡住

Guru**** 2485115 points
Other Parts Discussed in Thread: CC3135, SYSCONFIG, CC3135MOD, UNIFLASH

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1237216/cc3135-sl_start-0-0-0-is-stuck-for-cc3135-wifi-chipset

器件型号:CC3135
Thread 中讨论的其他器件: SysConfigUNIFLASH

您好、E2E 专家!

你好。

我将把 simplelink 主机驱动程序移植到 STM32裸机。

SL_START (0、0、0)之后即使在从 CC3135模块接收到中断之后也会卡住。

因为它是裸机,我没有办法运行 sl_task ()

代码在 sl_start 中无限等待信标。

此致、

CSC

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

    您好!

    STM 有一个参考(SWRA704)。 你有没有看过它?

    基本上、最好使用一个逻辑来探测 SPI 线路和中断线路、以便在芯片打开时从芯片上得到什么。

    什洛米

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

    您好 Shlomi:

    你好。

    此问题尚未完全解决。
    在循环中进行 sl_start 异步调用并持续调用 sl_Task (NULL)后、我能够获得响应、如下所示。
     
    空 SimpleLinkInitCallback (_u32状态)
    {
      DLOG ("Handle SimpleLink Interface acording to ststus %d\n"、status);
      gIsInited = 1;
     
    空 main ()
    {
    五颗星
    五颗星
    RetVal = sl_Start (NULL、NULL、SimpleLinkInitCallback);
     while (!gIsInited)
     {
      sl_Task (NULL);
      TimerMsecWait(1);
     }
    五颗星
    五颗星
     
    但是、我不认为上述实现很简单。
     
    因此、进一步探索、我意识到我的信标实施与 TI BareMetal 信标实现不匹配、
    以下是 TI 针对其信标实现提供的示例。
    int SemaphoreP_CREATE_Handle (SemaphoreP_Handle* pSemHandle)
    {
      SemaphoreP_PARAMS 参数;

      SemaphoreP_PARAMS_init (&params);

       params.callback = tiDriverSpawnCallback;

      (*(pSemHandle))= SemaphoreP_create (1、&params);

      if (!(*(pSemHandle))
      {
        返回(-1);
      }

      返回(SemaphoreP_OK);
     
    我无法了解何时何地  应调用回调 tiDriverSpawnCallback
    请告诉我方向是否正确、如果正确、请提供有关如何  调用 tiDriverSpawnCallback 的详细信息
    此致、
    CSC
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    所以您不使用任何操作系统?

    上述实现适用于非 OS 情况。 简单来说、在非操作系统中、 SimpleLink 主机驱动程序架构强制 在 应用程序的主循环中调用"sl_task"。  此调用的目的是处理异步 事件并获取从 NWP 发送的流控制信息。

    回调函数最终会从 sl_Task()调用,并查找由未经请求的事件(如初始化完成、WLAN 连接、获取的 IP 地址等)产生的条目。

    此致、

    什洛米

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

    您好  Shlomi:

    你好。

    我正在开发裸机- STM32 M4 MCU。
    我有一个主任务表单、其中 需要同时调用 sl_start 和 sl_task。 作为 sl_start (0、0、0)块、无法调用 sl_task。
    在我看来、使 sl_start 异步并不是一个明确的解决方案、但根据您的邮件、我们似乎没有 任何其他选项。
    另一项澄清
    我要将 SPI 接口配置为16位或32位模式。 我该如何 处理?  
    还有没有 关于如何为 TI  CC3135 WIFI 芯片组生成固件的教程?
    此致、
    CSC
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    是的,因为没有 RTOS 所以你必须调用 sl_Task()。

    查看其中一个示例的代码片段。

        status = sl_Start(0,0,0);
        ASSERT_ON_ERROR(status);
    
        /* waiting for fast connect proccess to compleate */
        sl_Task(NULL);
        while (!IS_IP_ACQUIRED(PowerMeasure_CB.slStatus))
        {
            sl_Task(NULL);
            ;
        }

    由于某些原因、与 CC32xx 搭配使用的 SPI 数据位为32位、与外部 MCU (STM、MSP)搭配使用时也是8位、不知道为什么要将其设置为8。

    生成固件意味着什么? 它称为服务包、需要加载到器件中。 它由 TI 签名并作为 SDK 的一部分提供。

    什洛米  

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

    您好 Shlomi:

    你好。

    我最终将回调附加到 sl_start、因此它成为无阻塞的、然后在 while 循环中等待触发该回调。 它目前有效。
    我之前提到使用工具(例如 SysConfig 工具)生成可提供16位 SPI 接口的图像(固件或 CONFIG)。
    这起作用吗? 如果是、我是否知道需要在 CC3135MOD 工具中设置的步骤和设置( 使用 TI WIFI 芯片组附加了我们定制板的图片)?
    此致、
    CSC
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我不知道外部工具的任何指导原则。 由于它是 CC31xx 器件、因此只需要通过 Uniflash 刷写的服务包和系统/配置文件。 我通常使用外部独立工具来准备映像(而不是 CCS 或 SysConfig)并进行编程。 在平台代码(cc_pal.c/h)中设置8/16/32位。 还是漏掉了任何东西?

    什洛米