I know this is not directly SDCC-related, but if anyone has experience with EZ-USB FX DMA transfers, I'll appreciate any comments.
I'm trying to do a simple DMA transfer from the OUT 1 endpoint buffer to external RAM as folllows:
 DMASRCH=0x7E;        // OUT1BUF high address byte (source)
 DMASRCL=0x40;         // OUT1BUF lower adress byte (destination)
 DMADESTH=0x80;       // external RAM, high address byte
 DMADESTL=0x00;        // external RAM, low address byte
 DMALEN=64;               // Number of bytes to transfer
 DMAGO=0x00;            // Start DMA transfer
But this doesn't work.
My code starts at 0x2000 in external memory. According to table11-1 (TRM, p11-4) this DMA source/destination pair is possible, but it does not state anywhere in the TRM or on Cypress' website if this is possible if the program code runs in external memory (only some limitations, when code is running in a certain block in the internal memory).However, the DMA transfer seems to work when I change the DMA source/destination addresses to internal. Does anyone know if it possible to DMA to external RAM with program code running in external RAM as well?