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.

[参考译文] TMS320F28388D:LWIP 卡在 Ethernet.c 中的循环中

Guru**** 2885260 points

Other Parts Discussed in Thread: DP83822I

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1625751/tms320f28388d-lwip-stuck-in-loop-in-ethernet-c

器件型号: TMS320F28388D
主题: DP83822I 中讨论的其他器件

我尝试使用以太网写入 CPU1 闪存。 我使用来自 TI 项目的修改后的 enet_lwip.c 在通信->以太网->第三方->lwip 中将 CM 设置为其闪存部分。 我修改了此程序以通过 IPC 将数据传输到 CPU。 在 CPU1 方面、我有 TI 中的闪存内核示例、它经过修改以指向 IPC、而不是 SCI 到闪存。 问题是 enet_lwip.c 完成其初始化并滞留在此处:

    //
    //等待 DMA 处于暂停状态或等待接收
    //数据包
    //
     } while (processState!=
            Ethernet_DMA_DEBUG_STATUS0_TPS0_STOP)&&
            (进程状态!=
            Ethernet_DMA_DEBUG_STATUS0_TPS0_SUSPND);
  }

我对 CCS 不太熟悉、无法完成此操作。 我已经在 CPU1 端尝试了一个完整的初始化、该初始化会为以太网设置 GPIO。 我目前正在研究 DP83822i 规范以开启 RMII 主模式、因为我认为以太网时钟绝不会执行。 我将把模块上传到这个论坛。  

此外、与之类似、TI 工程有一些引用编译器的静默包含错误。 这可能会导致我遇到的问题、但我不知道如何更改。 如前所述、我对 CCS(使用 20.2.0)没有经验。 这些错误表明、某些 TI 代码是旧版 TI 内在函数、在 CLANG 编译器中不受支持。 我唯一使用的编译器是 TI v20.2.6.LTS、我无法找到旧版编译器。 如果有人能在这方面提供帮助、我们将非常感激。 谢谢。

flash_kernel_c28x_cm_ex1_boot_cpu1.c 

 我不确定是否有人能真正提供帮助、我知道这是很多代码、并且缺少一些依赖项。 但我想我会给它一个镜头。 我之前说过、我刚接触 CCS 以及与这些主题相关的所有内容(lwip、flash 等)


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

    您好、

    您能否重新编译 driverlib_cm 来确认代码是否滞留在上述行或 ethernet_resetModule 上?
    如果卡在以太网复位模块上、则是时钟问题导致的。

    TMS320F28388D 控制卡不支持具有外部连接的 RMII 模式。 即使 PHY 作为主器件运行、由于缺少与 ENET_RMII_CLK 的连接、以太网模块也不会进行软件复位并卡在环路中。