The RAM used to store the UAVO data is now (possibly) stored in non-dma-capable RAM.  If the underlying flash driver happens to use DMA when reading from or writing to the user buffer, that won't work anymore.

The trampoline is declared static and will be allocated from normal (dma-capable) SRAM.  For a read, we feed the trampoline buffer to the underlying filesystem (and thus to the underlying flash driver) to ensure that it still gets to deal with a dma-safe buffer.  We then have to copy it (not using DMA) to its final storage (possibly) in non-dma-capable RAM.  A write is similar but the copy goes the other way and happens before the logfs write call.

I need to #ifdef the use of the trampoline so we don't pay this penalty on F1 which doesn't have the CCM RAM so won't ever need the trampoline.

I also need to figure out the best way to deal with these buffers (one for read, one for write trampoline).  If we guarantee that we'll never do a read **and** a write at the same time, I can reduce this to a single trampoline buffer.  That seems like a reasonable assumption and would save us 256 bytes of RAM (only one trampoline).