Basically the
USB "framework" would need to be rewritten specifically
for zero copy operation, if the hardware actually allows that.
unfortunately the old USB peripheral in the sam7s does not have DMA, you
have to use FIFO / MMIO to put the data onto USB. It's really sad,
almost all other peripherals can do DMA, but not the USB device
controller.
I figured as much. Perhaps writing to the FIFO can happen already
when initially receiving the data from the serial port, ie. without
first storing to a buffer in RAM. But I think this will have some
non-trivial consequences for the code.
//Peter