We have a custom board with DM335-216MHz and DDR2-171MHz x 16 bits. Theoretical bandwidth of the DDR2 is 342*2 = 682MB/s.
We have made some tests using a JTAG debugger for program loading in DDR2. So there is not OS or loader. Code and data caches are switched on.
Test EDMA data move DDR2-DDR2 gives value about 250MB/s = 73% of max.
Test CPU data write to DDR2 gives value about 450MB/s = 66% of max.
Test CPU data read from DDR2 gives value about 120MB/s = 18% of max.
Test CPU data write look like:
STMIA r1!, {r5-r12}.
Test CPU data read look like:
LDMIA r1!, {r5-r12}.
It is the fastest way data moving to/from CPU as I now.
May concern is very slow data read speed. I used an oscilloscope for check of the DDR2 data lines and saw burst with 8 pulses = 47ns and then pause about 200ns. So this is not bandwidth limitation.
But what is it?