Other Parts Discussed in Thread: TMS570LC4357, TMS570LS3137
I am planning to utilize DMA quite a bit for transferring data on TMS570LC4357. The TMS570LC4357 Tech Reference Manual talks about the features and configuration of DMA, but it doesn’t talk about how the DMA works. Is there a document that explains the internals of DMA and how the data is transferred from one type of memory to another type? Basically, I am trying to find answers to the following questions:
1. DMA transfer timing.
a. What is the time it takes for a DMA channel to transfer one frame of data?
b. Is there a formula to calculate the time based on the number of elements and the size of the read and write elements?
2. DMA Contention and Priority. Based on the ARM Architecture reference manual, the DMA accesses RAM or Flash using CPU AXI slave and TCM ports. Since LSU (Load/Store Unit) and PFU access the Flash and RAM using the TCM Port, there would be a contention between CPU and DMA which CPU has higher priority.
a. Is there a way that we can quantify the DMA stall time due to the CPU accessing Flash or RAM?
b. What is the mechanism that makes sure that the DMA access request to RAM/Flash is not starved?
c. Is there a way to change the priority so that the DMA has higher priority?
3. The TCM has three ports (ATCM, B0TCM, and B1TCM).
a. Is it possible to access RAM and Flash simultaneously using ATCM and one of the B0TCM or B1TCM?
4. Is there a bus release time after each DMA frame is transferred? In another word, does DMA Controller need to release the bus for certain amount of time after each frame transfer? If yes, how long is the time?
Regards,
Pouya