Skip to main content
Visitor II
June 5, 2022
Question

STM32H7 Ethernet Big Data

  • June 5, 2022
  • 2 replies
  • 2056 views

Hi everyone,

I started a new project with STM32H7-DISCO and need to receive 64KB of data via UDP. I tested ST example with FreeRtos but it gives a hard fault above 4KB. I tried many things such as increasing descriptors and MPUs according to these descriptors values but I can't. (by the way when increased the descriptors to 8 then UDP doesn't work). Please help me with how to configure it to receive 64KB.

Tested Code : https://community.st.com/s/article/How-to-create-project-for-STM32H7-with-Ethernet-and-LwIP-stack-working

    This topic has been closed for replies.

    2 replies

    Super User
    June 5, 2022

    Do you understand that 64KB is much more that the largest L2 packet of the STM32H7 ethernet controller? A packet this long will be fragmented by the IP library (LwIP, FreeRtos+ TCP or whatever else you use). So the IP library configuration chores will add to the numerous ETH driver issues.

    You may want to rethink the design, go for smaller UDP messages that fit into one L2 packet (with jumbo option, max. is ~ 10 KB).

    Visitor II
    June 5, 2022

    I understand that fragmentation causes problems in LWIP, right? Also, with this example, I get a hard fault error with over 4KB? Why? How can I configure the jumbo option correctly?

    Graduate II
    June 5, 2022

    Perhaps root-cause what specifically is hard faulting. Perhaps check alignment and cache management.

    Visitor II
    June 5, 2022

    I checked mpu, not allowed to access the memory area of Descriptions and RX Buffer to the cache. Also, I disabled the cache, but it still gives hardfault.