Skip to main content
Visitor II
September 9, 2020
Question

How can I transfer large amount of data on Ethernet using dma on STM32H743?

  • September 9, 2020
  • 2 replies
  • 992 views

I am working on STM32H7 mcu. I have 14000 bytes of data and I am sending it over Ethernet in packets of size 1400 each. I want to transfer these 14000 bytes in only 45 µsec which I am unable to because i had to wait for each packet sent. How can I dump complete 14000 bytes on Ethernet dma so that I can free the CPU for other tasks.

    This topic has been closed for replies.

    2 replies

    Graduate II
    September 9, 2020

    Raw Ethernet or TCP/UDP packets?

    Pretty sure the mechanics don't work the way you imagine, likely to need to stitch things together at the packet boundaries (advance pointers, shrink remaining count), or create some scatter-gather list.

    Akash_kAuthor
    Visitor II
    September 9, 2020

    I am sending UDP packets.

    Super User
    September 9, 2020

    The DMA in ETH *is* scatter/gather, but unless raw Ethernet, data would need to be moved manually anyway, to leave space for the headers.

    It's better to think about it in advance, and create data already in those chunks.

    JW

    Akash_kAuthor
    Visitor II
    September 9, 2020

    Can Dma Automatically divide 14000 bytes in 1400 data bytes of UDP packets and send it over ethernet?