2023-10-11 02:15 AM
I am using STM32H735AGI with freertos + lwip + no dcache
I have an udp echo server on the device and a udp echo client in python that runs on the pc
The client sends messages with a length of 3 TCP_MSS
In the following logs the first number is the tick count (milliseconds)
ETH_IRQ is printed just before HAL_ETH_IRQHandler, that calls HAL_ETH_RxCpltCallback, that osSignalSet a task
EVN_IRQ_RX is printed by the task: it calls HAL_ETH_ReadData and print pbuf->tot_len, then it calls netif.input
When lwip collects the fragments, it passes the message to the echo server, that prints "[udp] ricevo ..."
The server echoes back the message, and netif.linkoutput prints "TX pbuf->tot_len" and transmits with HAL_ETH_Transmit followed by HAL_ETH_ReleaseTxPacket
I am expecting 1500B/100Mbit=.15ms
The first transactions are "good":
0000036512) DBG - ETH_IRQ
0000036512) DBG - EVN_IRQ_RX
0000036512) DBG - 1514
0000036512) DBG - ETH_IRQ
0000036512) DBG - EVN_IRQ_RX
0000036512) DBG - 1514
0000036512) DBG - ETH_IRQ
0000036512) DBG - EVN_IRQ_RX
0000036512) DBG - 1462
0000036513) DBG - [udp] ricevo 4380 B da 10.1.20.254:F985
0000036513) DBG - TX 1514
0000036513) DBG - TX 1514
0000036513) DBG - TX 1462
In the same millisecond, 36512, 3 irq are managed and in the next ms the message is echoed back
I send a set of 100 messages and then collect the logs: after some sets I get
0000689520) DBG - ETH_IRQ
0000689520) DBG - EVN_IRQ_RX
0000689520) DBG - 1514
0000689520) DBG - ETH_IRQ
0000689520) DBG - EVN_IRQ_RX
0000689520) DBG - 1514
0000689520) DBG - ETH_IRQ
0000689520) DBG - EVN_IRQ_RX
0000689520) DBG - 1462
0000689521) DBG - [udp] ricevo 4380 B da 10.1.20.254:CFE4
0000689521) DBG - TX 1514
0000689522) DBG - TX 1514
0000689522) DBG - TX 1462
The reception works as before but now there is one more ms when transmitting
What is the cause of this behaviour? What can I do?
2023-11-07 02:03 PM
Hi mzenn.280
Your case is being reviewed via our ST Online Support System.
Kind Regards
Joe WILLIAMS
STMicro Support