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:EMAC 和 lwIp 演示:EOQ 位从未置位

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

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/664307/tms570ls3137-emac-and-lwip-demo-eoq-bit-is-never-set

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

我正在尝试构建并运行"HALCoGen 以太网驱动程序和 lwIP 集成演示"(http://processors.wiki.ti.com/index.php/HALCoGen_Ethernet_Driver_and_lwIP_Integration_Demonstration)  

我使用的是"演示版本00.02.00 "

编译器版本:"TI v16.9.0.LTs"

当我运行应用程序时、我会经历"Initializing Ethernet"(初始化以太网)步骤、并且终端窗口的内容如下:

之后、应用程序会在第315行的"hdkif.c"中的以下 while 循环中卡住:

/* TODO:(这是一种权变措施)等待 EOQ 位置位*/ 
while (EMAC_BUF_DESC_EOQ!=(CURR_BD->FLAGS_pktlen & EMAC_BUF_DESC_EOQ));

可以有人帮助我找出我的错误吗?

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

    您使用的器件是 LS3137、这是大端字节序器件、应轻扫 CURR_BD->FLAGS_pktt 中的值。

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

    感谢 QJ 的快速响应、但我仍有问题。

    首先、我使用的是"版本00.02.00演示"、它没有 hdkif_swimming_data (..) hdkif.c 文件中。

    现在、我使用的是"版本00.03.00演示"、它确实具有 hdkif_swimming_data (..)、但它使用定义的符号"_TMS570LC43x_"来调节"混合"。

    uint32 hdkif_swingle_data (uint32 word){
    
    #if defined (_TMS570LC43x_)
    return
    (((word << 24)& 0xFF000000)|
    ((word << 8)& 0x00FF0000)|
    ((word >> 8)& 0x0000FF00)|
    (((word >> 24)&
    
    diff) return)#0x000000f)
    
    
    

    正如您说过的、我正在使用 LS3137器件。  因此、根据代码的设置方式、"字"将不会被"轻扫"。

    我还认为、不要让它"被滑动"。 我说,因为 CURR_BD->FLAGS_pktlen 的原始值是: 11100000000000000001011110b

    就像 EMAC_BUF_DESC_EOQ 的值:000100000000000000000000000000000000000000000000b 一样、位标志位于左侧  

    在我看来、代码是正确的、但第28位从未被置位。  

    如何设置该位标志或假设什么设置该位标志?  我觉得我错过了演示设置过程中的某个步骤、我认为我不必为演示编辑代码。

    谢谢!

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

    版本00.03.00演示专为 RM57和 TMS570LC4357而设计。 如果您想将其用于 TMS570LS3137和 RM48等、则必须进行一些修改。

    您使用的是哪种电路板? 您是否使用 MII 或 RMII?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Matt、您好!

    我刚刚在 TMS570LS3137 HDK 上测试了版本00.03.00 LWIP。 它运行良好。 TMS570LS31x 不需要该拼图。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢你的所有帮助。 事实证明、这是一个设置问题。

    硬件设置步骤显示"通过将开关 S2位设置为开来启用 EVM 上的以太网"。

    我在 TMS570LS31x Hercules 开发套件(HDK)用户指南中阅读到:"要使用以太网、应启用 S2:4、而所有其他必须禁用。"

    显然,S2:1、2和3先前已设为开。

    一旦我修复了问题、问题就会开始工作。

    再次感谢您的帮助。