2025-03-28 6:12 PM - edited 2025-03-28 6:13 PM
Hi all,
I've been working through this tutorial: How-To-Create to bring up LWIP + FreeRTOS on the STM32H735IGK development kit. I'm using STM32CubeIDE 1.18.0, FreeRTOS with CMSIS-v1, and STM32Cube FW_H7 version 1.12.1
I noticed that pinging is very sporadic, and the STM32 eventually stops replying to ARP requests. I've attached a couple of pictures(wireshark captures) that describe the problem.
For reference, here are relevant screenshots my MPU settings, linker script, ethernetif.c, and lwiopts.h files.
However, if I disable D-Cache, then pinging becomes stable (I'm able to ping for > 30 minutes continuously). I don't want to disable D-Cache, as my MPU should be disabling caching for the relevant memory regions.
I understand that MPU regions have priority, and I'm overlaying region 2 onto region 1, but both regions disable caching. What's going on here?
Please let me know if there additional information that you may need.
Thank you!
@Piranha, @STea, @Pavel A.
2025-03-30 3:42 AM
Looks like some RX or TX memory that should be made non-cached still is not covered by MPU settings. Have somebody to review your code.
2025-12-29 5:48 AM
Hi
Did you manage to solve this?
I am using an H723 Nucleo board and having the same problem.
If I start with a non RTOS project it pings forever.
Add FreeRTOS and it stops after a few minutes.
D-Cache disable does not have any effect.
ioc and linker files attached.
Thanks
Andy.
2025-12-30 3:47 AM
I was using an example from -
https://github.com/stm32-hotspot/STM32H7-LwIP-Examples
And it was using the 723 one.
It was using CMSIS_V2 API In FreeRTOS
This link says H7 can only use V1 -
And he is correct, it works great after changing it.