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.

[参考译文] TMS570LS3137:lwip 和 FreeRTOS 示例项目

Guru**** 2524460 points
Other Parts Discussed in Thread: HALCOGEN, TMS570LS3137

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1314640/tms570ls3137-lwip-and-freertos-example-project

器件型号:TMS570LS3137
主题中讨论的其他器件:HALCOGEN

您好!

我正在开发一个项目、需要让 lwip 和 FreeRTOS 协同工作、但还没有成功。 您是否有可以与 lwip 和 FreeRTOS 配合使用的示例项目?

谢谢。。

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

    尊敬的 Fatih:

    Unknown 说:
    我正在开发一个项目,需要让 lwip 和 freeRTOS 协同工作,但我还没有成功。 您是否有可以与 lwip 和 FreeRTOS 配合使用的示例项目?

    遗憾的是、 我们没有 FreeRTOS + LwIP 示例。

    我们确实只有 LWIP 演示和主动 Web 服务器演示示示例代码、但没有 FreeRTOS。

    6.1.项目0 - Hercules 安全 MCU 文档

    --
    谢谢。此致、
    Jagadish。

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

    我有一个问题,为什么不使用由 halcogen 创建的 EMAC 库,但这个库的特征被重写在 hkdif 中?

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

    尊敬的 Fatih:

    为什么没有使用由 halcogen 创建的 EMAC 库,但这个库的特性被重写在 hkdif 中?

    如果您验证 LwIP 设计及其层

    应用程序将不直接使用 EMAC 功能、EMAC 将与 LwIP 接口单元连接。 这就是在 hdkif (硬件开发套件接口)模块中使用 EMAC 功能的原因。

    --
    谢谢。此致、
    Jagadish。

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

    您好!  

    感谢您提供的图表、我意识到由于我使用的队列结构无法正常工作、我解决了问题。

    我成功地运行了 lwip 与 FreeRTOS、但现在遇到了以下问题。 对于如何解决这个问题、您有什么想法吗?

    当我尝试连接到 MQTT 代理或将数据发送到 netconn TCP echo 服务器时、或者如果我在超时回调中调用 STS_TIMEOUT 时、我的程序会卡在 lwip 超时的 sys_timeout_abs 函数的循环中、如下所示。

    static void timer(void *arg)
    {
        task_counter++;
        sys_timeout(2000, timer, NULL);
    }
    
    static void defaultTask(void *pvParameters)
    {
        log_printf("program started\n");
    
        ethernet_lwip_init(false);
    
        while (!dhcp_supplied_address(&gnetif))
        {
            vTaskDelay(100);
        }
    
        sys_timeout(2000, timer, NULL);
    
        for (;;)
        {
            vTaskDelay(3000);
        }
    }

    但是、如果我将其修复为遵循它

    static void timer(void *arg)
    {
        task_counter++;
    }
    
    static void defaultTask(void *pvParameters)
    {
        log_printf("program started\n");
    
        ethernet_lwip_init(false);
    
        while (!dhcp_supplied_address(&gnetif))
        {
            vTaskDelay(100);
        }
    
        for (;;)
        {
            vTaskDelay(3000);
            sys_timeout(2000, timer, NULL);
        }
    }

    当我像在第一个示例中那样使用它时、它也应该起作用、因为超时在 MQTT  lwip 的 TCP 库中被用作第一个示例

    在寻找问题时、我意识到 next_timeout 的下一个是点本身、这就是它卡在无限循环中的原因。

    如果您希望检查、我添加了一个示例项目。 在 main.h 中有一个名为 first_example_that_due_not_works 的定义。如果您将其设置为1,您将启用不工作代码如果您将其设置为0,您将启用工作代码。

    此处是示例项目的存储库   (https://github.com/fatihyazman/TMS570LS3137_FOR_TI_SUPPORT) (所有配置都是针对 TMS570LS3137 Hercules 开发套件进行的)

    谢谢。。

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

     我发现在 lwip_init 输入的问题两次、感谢您的帮助

    很好的酒店