I am using EDMA to transform data beteween CPU and EMIFA to speedup the system. But
It costs about 200ns to start the EDMA by EDMACC0_ESR |= 1 << 10. Here is the code:
#define EDMACC0_BASE 0x01C00000
#define EDMACC0_ESR *(unsigned int*)(EDMACC0_BASE + 0x1010)
SET_LED(1);
EDMACC0_ESR |= 1 << 10; // this line costs 200ns (or 405ns), it's slow.
CLR_LED(1);
SET_LED and CLR_LED controls some GPIO pin to measure the time of the code.
The 200ns result is measured by the GPIO pin.
If I use the Clock(CPU Execute Cycles ) measured by CCS, it's about 185 cycles,
that means 405ns (the system clock is 456MHz).
I don't know which measure is right, 200ns or 405ns, but it costs too much to just write
a EDMA register.
Is it the specification of the DSP, or are there any method to speedup the access of the register?
↧
EDMA register access is too slow.
↧