I've run into an interesting situation. EDMA3 (QDMA in my case) does not work as expected when the code is optimized at level 3 with speed 5. I am using QDMA to read a 16 bit port (same port) 16 times and transfer the readings to memory.
When code is compiled (with debug on) with optimization turned off, QDMA works as expected.
When code is compiled with optimization set as described above, QDMA does not work correctly the first time. Specifically, instead of signalling completion when all 16 values are transferred, the QDMA signals completion after the first value read/transfer.
What might be happening here?
The compiler version is 8.3.3