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.

[参考译文] BOOSTXL-CC3135:找不到函数

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1239324/boostxl-cc3135-function-not-found

器件型号:BOOSTXL-CC3135
主题中讨论的其他器件:CC3135CC31XXEMUBOOST

大家好、

我的客户请求帮助:
我正在浏览 WiFi 驱动程序文档、遇到一个我似乎找不到实际功能的函数。 我只能找到一个声明。 相关函数位于 SimpleLink CC31xx/CC32xx 主机驱动程序中:user.h 源文件(TI.com) 第#906行:#define sl_SyncObjGetCount (pSyncObj、pValue) sm_GetValue (pSyncObj、pValue);
SEM_GetValue 函数、我在任何位置都找不到。 我已在所拥有的 SDK (SDK WiFi 插件4.20.00.10、MSP432P4 SDK 3.40.01.02和 CC32XX SDK 7.10.00.13)中查看了所有信标 μ….h 文件、并且找不到函数本身。 在哪里可以找到它、以便我知道函数中包含什么? 我不使用 RTOS、并且在我的项目中使用 CC3135 Booster Pack、TM4C129EXL 和 CC31XXEMUBOOST。

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

    嘿、德鲁、

    SEM_GetValue ()函数在   MSP432P4 SDK 3.40.01.02和 CC32XX SDK 7.10.00.13中的 SOURCE\TI\POSIX\xxx\Semaphore.c 中定义,应返回当前信标计数。

    希望这对您有所帮助。

    此致、

    AVI E

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

    您好、Avi:

    我收到了客户的回复:

    我找到 Semaphore.c 文件的唯一位置是在 RTOS 文件夹中。 是否有一个 Semaphore.c 版本不适用于 RTOS?

    谢谢!

    德鲁

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

    尊敬的 Drew:

    在 noRTOS 中没有 sl_SyncObjGetCount()的实现。  

    通常、 信标 和  互斥量更适合 RTOS 类型的应用、因为它们 在线程之间提供互斥。
    此致、
    AVI Epstein.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Avi:

    我收到了客户的回复:

    好的。 谢谢您告诉我。 我将针对我的非 RTOS 系统、以 RTOS 为重点实施它。 确保它能够正常工作、然后稍后再在其中引入 RTOS。

    谢谢!

    德鲁

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

    您好、Avi:

    我有一个客户的跟进问题。

    1.  我将查看 TI 记录的 Wi-Fi 代码、有几个结构我在任何地方都找不到。  它们是"work"、用于 SimpleLink CC31xx/CC32xx 主机驱动程序的第2149 行:driver.c 源文件(TI.com);"MsgCnt"位于同一文件的第1606行。  这些结构位于何处、以便我可以看到它们包含什么?

    2.我将浏览 Wi-Fi 驱动程序代码,并发现 SimpleLink CC31xx/CC32xx 主机驱动程序的_SlDrvMsgRead 函数出错:Driver.c 源文件(TI.com)。  在第1448行中、CCS 会给我错误#137 struct "_SlPoolObj_t"没有字段"pData"。  我将逐字抄录这一行。  我已经回去,并确保我的所有结构是正确的,他们是.  在文档上的排版或其他方面存在问题吗?  我随附了与之相关的代码。

     谢谢!

    马尔夫

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

    尊敬的 Marvin:

    关于项目1:

    "MsgCnt"和 "work"都被函数- _SL_DBG_CNT_INC ()强奸并用于调试目的。 如果您查看 trace.h 文件、您将看到没有针对这个函数的函数定义。 因此、当 "MsgCnt"和"work" 没有定义和 声明时、不会出现编译器错误。

    关于项目2:  

    如果您 正确设置了结构 、您不会 收到 错误消息。 您能提供更多有关您想要实现的目标的背景信息吗 ?我们可以为您指明正确的方向。(未附加代码)

    此致、

    AVI

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

    您好、Avi:

    如果您 正确设置了结构,您 应该不会 收到 错误。 您能提供更多有关您正在尝试实现的目标 的背景信息吗?我们可以为您指明正确的方向。(未附加代码)

    请参阅此屏幕截图文件夹: e2e.ti.com/.../screenshot.zip

    如果您需要更多信息、请告诉我

    此致、

    马尔文

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

    尊敬的 Marvin:

    如第1项所示:

    (_SlArgsData_t *)(g_pCB->ObjPool[g_pCB->FunctionParams.AsyncExt.ActionIndex].pData))->pArgs

    包装方式为:

    verify_socket_CB(),它 定义为 true,因此不会 出现任何问题。
    如果您  对想要做的事情有更详细的解释、我们可以提供更好的帮助。
    此致、
    AVI
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Avi:

    项目1.

    你能分辨出结构的定义在哪里吗:g_DbgCnt。 我在哪里都找不到它。

    e2e.ti.com/.../WIFI_5F00_Defines.zip

    项目2:

    客户肯定结构设置正确。 他们从网络上逐字复制了代码。 所涉行位于所附文件中的第1439行。   

    如果您需要更多信息、请告诉我

    此致、

    马尔文

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

    这些是将由用户实现的可选调试函数和变量。 这就是你找不到它们的原因。

    等待有关目标的更多信息,以便我们可以更好地支持客户。

    此致、

    AVI

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

    您好、Avi:

    CX 正在 尝试对 Wi-Fi 驱动程序代码进行逆向工程以了解其发生的情况、而不是复制并 粘贴示例。 他们已经达到了有问题的线,似乎不能使它工作.   

    此致、

    马尔文

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

    尊敬的 Marvin:

    trace.h 中的代码:

    /* #define SL_DBG_CNT_ENABLE */
    #ifdef SL_DBG_CNT_ENABLE
    #define _SL_DBG_CNT_INC(Cnt)            g_DbgCnt. ## Cnt++
    #define _SL_DBG_SYNC_LOG(index,value)   {if(index < SL_DBG_SYNC_LOG_SIZE){*(_u32 *)&g_DbgCnt.SyncLog[index] = *(_u32 *)(value);}}
    
    #else
    #define _SL_DBG_CNT_INC(Cnt)
    #define _SL_DBG_SYNC_LOG(index,value)
    #endif

    您可以看到、  

    未定义 SL_DBG_CNT_ENABLE、因此 对  
    _SL_DBG_CNT_INC ()不 执行任何操作。 如果希望使用该计数器来计算读取和写入 操作的计数、则需要适当地定义结构。
    这些函数用于调试前置。 并且不影响驱动器的功能。   
    要更好地了解驱动程序的工作方式、请首先读取:
    第19章、介绍如何移植主机驱动程序。
    此致、
    AVI
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Avi:

    谢谢你。 这对项目1有所帮助。  项目2中的类型转换错误如何? 您能进一步帮助吗?

    此致、

    马尔文

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

    尊敬的 Marvin:

    如您在以下代码中所见、当前为  

    verify_socket_cb ()只是定义为 true,对 diver.c 函数没有影响。

    #if (defined(PROTECT_SOCKET_ASYNC_RESP) && (SL_SELF_COND_HANDLING == SL_HANDLING_ASSERT))
    #define VERIFY_SOCKET_CB(expr)                  _SL_ASSERT(expr)
    #elif (defined(PROTECT_SOCKET_ASYNC_RESP) && (SL_SELF_COND_HANDLING == SL_HANDLING_ERROR))
    #define VERIFY_SOCKET_CB(expr)                  _SL_ERROR(expr, SL_RET_CODE_SELF_ERROR)
    #else
    #define VERIFY_SOCKET_CB(expr)
    #endif

    正如我之前所写的,如果客户希望自己实施这些自我条件,他可以,但需要作出调整。

    我看到了铸造问题、我们将尝试在以后的版本中修复此问题。 如果客户希望实现这一点、他将需要修复铸件。 但它不是基本功能所必需的。