I have a project that needs 115kbaud of serial IO. I need to implement FIFO (ring) buffers for reception but at that speed the CPU gets interrupted at about 11kHz, so I'm wondering whether the DMA can be used for this? It looks from the docs that the DMA destination address can be reloaded automatically at end of block, so I'm guessing this can be done for incoming data using the current destination address as the FIFO write pointer. The foreground code could read out the data and increment a read pointer.
I'm unsure how this might work for writes, but since I send packets of data I could arrange a DMA just to send the entire packet in one go so I don't think that will be a problem.
Has anyone used the DMA for high speed serial IO using ring buffers, and is there any example code out there?