cancel
Showing results for 
Search instead for 
Did you mean: 

Cube FW_H7 1.10.0 ethernet descriptors and buffers location for CortexM4

IOvch
Associate II

Starting with the STM32 Cube FW_H7 1.10.0 version, it becomes impossible to specify the correct location of the ethernet descriptors and buffers officially recommended here (https://community.st.com/s/article/How-to-create-project-for-STM32H7-with-Ethernet-and-LwIP-stack-working) in paragraph 10.2 for CortexM4.

Migrating example (p.11. Attached examples) STM32H745_Nucleo_M4_ETH.ioc from 1.9 to 1.10 gives the result shown in the picture.

0693W00000Nr00OQAR.png What is better - downgrade to 1.9 or somehow reassign addresses to 1.10?

4 REPLIES 4
IOvch
Associate II

Downgrade to version 1.9 works well. Ethernet on the M4 core on version 1.10 is not working

I have not been able to run ethernet on the M4 core under FreeRTOS.

I just started a new empty project with HAL FW_H7 1.10.0. Surprisingly, ethernet works on the M4 CORE out of the box even without any changes (except for increasing the GPIO speed). But... only without FreeRTOS. If you add it, then none of the manipulations help.

I also noticed that with FreeRTOS for M4, it generates in ethernetif.c file a call to SCB_InvalidateDCache_by_Addr that cannot be executed, so I'm just removing that call...

Maybe in this case it is necessary to configure the MPU on both cores?

I have attached two projects - there is only basic functionality, nothing but ping. They are almost compatible with Nucleo-745 except for a couple of pins. It works without FreeRTOS (M4 core), but if you added it.. nothing helps.

I have lost hope to find a working ethernet M4 example on a FW_H7 1.10.0.

Maybe there will be some ideas?

Issues with RTOS are because of not respecting lwIP multi-threading requirements. You can read about all of Ethernet related issues in my other topic:

https://community.st.com/s/question/0D50X0000BOtfhnSQB/how-to-make-ethernet-and-lwip-working-on-stm32