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.

[参考译文] RTOS/TIDM-TM4C129XWIFI:在 CC3100和有线以太网之间切换

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/603545/rtos-tidm-tm4c129xwifi-switching-between-cc3100-and-wired-ethernet

器件型号:TIDM-TM4C129XWIFI
主题中讨论的其他器件:CC3100TM4C129XNCZAD

工具/软件:TI-RTOS

我知道、TM4C TI-RTOS NDK HTTP 接口专为有线或无线(simplelink CC3100)接口而设计。 它不同时支持这两种模式。

在我们的产品中、我们不会同时运行有线和无线、但希望在不重新加载完整应用程序的情况下按需在它们之间切换。

我们已经为每种器件开发了单独的固件构建。 每个隔离电路都能正常工作。 问题在于将它们结合起来。  

在我重新发明车轮之前、我想检查这一情况是否以前已经完成、或者就如何最好地继续进行提出建议。

谢谢

我们使用 TM4C129XNCZAD、CC3100、CCSv7、TI-RTOS 2_16_1_14、ARM 编译器5_2_9作为参考、 Wolf SSL 商用3_8_0_1

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 William:
    无线协议栈在 CC3100上运行、而线缆协议栈(以太网)在 TM4C 上运行。 与 CC3100网络处理器配对时、TM4C 更像是主机控制器、因此我认为主机侧固件不应该太大。 每个应用程序的规模有多大? 这两者是否都可以安装在 TM4C 闪存中、因此您无需按需重新加载每个应用?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Charles。
    每个完整应用都低于300K、因此闪存中有足够的空间。 我不想管理单独的构建。 以及运行(跳转到)相应引导应用程序的单独引导应用程序。 90%的代码是共享的、因此我希望将其全部保留在单个编译/二进制文件中。 更易于维护。
    我计划在单独的 HTTP 库中构建和链接、然后在运行时选择这些库。
    我只是检查一下这之前是否已经完成、以节省时间并避免死区。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 William:

    人们已使 WiFi 和以太网同时工作。 基本上、您必须使用较低级别的 WiFi 调用(例如 SL 调用)来避免重复的函数。 您可能还需要在不同文件中包含使用 WiFi 和以太网的代码、以避免重复的宏。

    Todd

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

    谢谢 Todd、

    看来我应该能够保持以太网不变、并创建独立的 WiFi HTTPS 模块/驱动程序。 它可能需要不止一个标头和 make 文件、但应该是直接的。 我在完成后重新发布它的运行方式。

    谢谢

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

    这并不是很糟糕。 实施大约需要4天时间。 但测试仍有很多工作要做。

    因为我只需要担心 https、所以我为 WiFi 复制并修改了(重命名了几个函数组):

    /ti/tirtos_tivac_2_16_01_14/products/ns_1_11_00_10/packages/ti/net/http/httpcli.c : HTTPCli_& Ssock_calls
    /ti/tirtos_tivac_2_16_01_14/products/ns_1_11_00_10/packages/ti/net/sntp/sntp.c  :SNTP 呼叫
    /ti/tirtos_tivac_2_16_01_14/products/ns_1_11_00_10/packages/ti/net/ssock.c        :Ssock_ Calls
    /ti/tirtos_tivac_2_16_01_14/products/ns_1_11_00_10/packages/ti/net/ssock_sl.c   :Ssock_ Calls
    /ti/tirtos_tivac_2_16_01_14/products/ns_1_11_00_10/packages/ti/net/tls_sl.c        :TLS_呼叫

    然后、他们的接头非常有趣。

    为了使用它、我设置了一些函数指针

    typedef void (* fpHTTPCLI_PARAMS_init)(HTTPCLI_PARAMS *参数);

    (笑声)

    typedef 结构{
       fpHTTPCli_Params_init          pHTTPCL_Params_init;

    (笑声)

    HTTPCLI_Fxns https://NDK_Fxns ={
       HTTPCli_Params_init、

    (笑声)

    HTTPCLI_Fxns https://sl_Fxns ={
       HTTPCL_SL_PARAMS_INIT、

    然后调整现有代码以选择一个:

     PHTTPCLI_Fxns phpcli_Fxns;    =&httpcli_NDK_Fxns;

    并使用它:

    phpcli_Fxns->pHTTPCLI_PARAMS_init (&params);

    eZ-PZ。 除了与包含的有趣之处。

    该编译仍然使用所有 NDK EMAC Wolf cfg 设置以及 NET_NDK 全局集。 CC3100的 HTTPS 仅直接路由到芯片。

    现在、我可以启动两个接口、并进行开机自检/应答。 可能同时执行这两个操作、但这不是一项要求。 所以我不会尝试。

    感谢您的指导。