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.

[参考译文] TM4C129ENCPDT:重启处理器后偶尔会挂起

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1363551/tm4c129encpdt-seeing-occasional-hang-after-rebooting-processor

器件型号:TM4C129ENCPDT

我们正在使用函数调用 map_SysCtlReset ();来复位处理器。

在重新启动期间、我们会调用一个函数来初始化 lwIP TCP/IP 协议栈。
在该函数中、我们调用这些函数并在等待 SYSCTL_Periph_EPHY0准备就绪时挂起

if(MAP_SysCtlPeripheralPresent(SYSCTL_PERIPH_EPHY0))
{
    MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_EPHY0);
    MAP_SysCtlPeripheralReset(SYSCTL_PERIPH_EPHY0);
    // Wait for EPHY to reset
    while(!MAP_SysCtlPeripheralReady(SYSCTL_PERIPH_EPHY0))  <- hangs here
    {
    }

从这种情况中恢复的最佳方法是什么?
MAP_SysCtlPeripheralReset再次调用()将恢复,还是我们需要重置整个以太网外设?

谢谢
杰夫

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

    尊敬的 Jeff:

     您能帮助我更好地理解这个问题吗?  

     是否每次都在您的定制电路板上挂起?

     挂起是否会发生在其他定制电路板上?

     您可以在 LaunchPad 上重复挂起吗?

      您是否可以在进行 PHY 配置之前尝试关闭预取缓冲器。 该寄存器称为 FLASHCONF、要设置的位为 FPOFF。 我不确定您是否要达到以下勘误表。  

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

    挂起很少发生、并且看起来只有在重新启动(而不是开机)后才会发生。
    我看起来像做另一个MAP_SysCtlPeripheralResetSYSCTL_PERIPH_EPHY0()来解决问题。
    我们不会关闭预取、但会试一下(我想知道是否是这样的原因造成了问题)

    无论哪种方式、我认为我们的问题都会解决。

    谢谢