cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H723ZG Ethernet not responding to ping (No RTOS)

max67
Associate II

I am working with the STM32H723ZG and trying to implement Ethernet communication without using an RTOS using LWIP(TCP/IP) 

Setup Details:

  • Board: NUCLEO-H723ZG

  • IDE: STM32CubeIDE v1.19.0

  • Ethernet stack: LwIP

  • PHY interface: RMII

  • Flashing tool: ST-LINK (onboard)

  • Test performed: Ping test from PC

Observed behavior:

  • The Ethernet port LEDs (orange and green) remain solid ON after connecting the Ethernet cable.

  • Ping is failing continuously, I got (Destination host unreachable) error.

Troubleshoot taken:

  • Checked with multiple Ethernet cables to ensure cable isn't a problem. 

  • I'm using static Ip and checked the Ip is correct in lwip.c while flashing the board.
  • Rebuilt and reflashed the project multiple times.

After all this still I can't ping the board.

Assistance required :

  • is there is any problem in cache coherency in the code?
  • Kindly check with the MPU unit configuration and let me know is there is any issue?

 


I'm providing my Project file below

Any guidance or working minimal examples for STM32H7 Ethernet (without RTOS) would be greatly appreciated.

13 REPLIES 13

Hello again,

I believe I found the issue preventing your application from working.

The names of the memory sections dedicated to the descriptors in the linker file do not match those declared in ethernetif.c. In ethernetif.c, the section names are RxDescripSection and TxDescripSection (with an “s”):

ETH_DMADescTypeDef DMARxDscrTab[ETH_RX_DESC_CNT] __attribute__((section(".RxDescripSection"))); /* Ethernet Rx DMA Descriptors */
ETH_DMADescTypeDef DMATxDscrTab[ETH_TX_DESC_CNT] __attribute__((section(".TxDescripSection")));   /* Ethernet Tx DMA Descriptors */

However, in your linker file, the sections are declared as RxDecripSection and TxDecripSection (without the “s”). Below, you will find a fixed version of the project that has been tested and works.

Best regards,

To improve visibility of answered topics, please click 'Accept as Solution' on the reply that resolved your issue or answered your question.
max67
Associate II

Hello @STackPointer64 , 

Sorry for the delayed reply. I flashed the file you given it works good at first but if I rebuild it and flash it again, it is not pinging, some file is not generating while I rebuild it and in the first time flashing it is not working after the power cycle.
please check with the last updated project file and let me know what's the issue.

Thank you,

Hello @max67,

That is rather unusual, as I tested the project and it worked before I sent it. Have you tried opening the project in a new STM32CubeIDE workspace? Could you try rebuilding the attached project, make sure that it does not work, compress it, and attach it to this thread so I can compare what changed between compilations? Also, try inspecting the network traffic using Wireshark when the board is plugged in to see whether an ARP announcement is being sent. Try changing the IP address and rebuilding to see if it is related to a network policy issue.

Best regards,

To improve visibility of answered topics, please click 'Accept as Solution' on the reply that resolved your issue or answered your question.
Pavel A.
Super User

 and in the first time flashing it is not working after the power cycle.

Hmm.. this hints to the PHY reset issue?