Skip to main content
Visitor II
February 24, 2023
Question

Hi, I'm using STM32H745I-DISCO board and I'm not able to receive packets bigger than a certain size.

  • February 24, 2023
  • 1 reply
  • 818 views

I have a UDP socket for sending and receiving messages. Everything works fine for packets up to a certain size. I see via 'Wireshark' that I can successfully receive packets that get fragmented into at most 4 fragments.

These are the parameters that I think may affect the reception:

ETH_RX_BUFFER_SIZE: 1524

MEM_ALIGNMENT: 4

MEM_SIZE: 32768

LWIP_RAM_HEAP_POINTER: 0X30044000

MEMP_NUM_REASSDATA: 28

MEMP_NUM_FRAG_PBUF: 28

MEMP_NUM_SYS_TIMEOUT: 10

PBUF_POOL_SIZE: 128

PBUF_POOL_BUFSIZE: 1514

IP_REASS_MAXAGE: 60

IP_REASS_MAX_PBUFS: 28

TCP_MSS: 1460

    This topic has been closed for replies.

    1 reply

    Graduate II
    February 24, 2023

    TCP_MSS should not matter for UDP.

    Check your MCU SRAM layout and compare to your linker script.

    H7 has some limits concerning ETH DMA access to SRAM areas, and your LWIP heap with 32kB might cross some border.

    WGril.1Author
    Visitor II
    February 24, 2023

    What do you mean with “check your MCU SRAM�??

    This is my linker script:

    RAM: ORIGIN = 0x24000000, LENGTH = 512K

    FLASH: ORIGIN = 0x08000000, LENGTH = 1024K

    DTCMRAM: ORIGIN = 0x20000000, LENGTH = 128K

    RAM_D2: ORIGIN: 0x30000000, LENGTH = 512K

    RAM_D3: ORIGIN: 0x38000000, LENGTH = 64K

    ITCMRAM: ORIGIN: 0x00000000, LENGHT = 64K