This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

data transfer using dma for 5416

I am  facing a problem in data transfer using DMA.

Working on TI5416 simulator.

I have tested  a data transfer using DMA with both Source and Destination data address in internal RAM, (DATA space).
But for my application Source should be external memory mapped device.

I have used following project example
i,e .......\examples\dsk5416\csl\

dma1

This project as it is runs well but if i change source address as external memory then '0' s are transferred.


I have used internal address for Source 0x4000 in data space, works well.
I have used external address for Source 0x8000 in data space , problem occured.

please help me to solve this problem.
  • Jagdish,

    Accessing external memory using the DMA  requires additional configuration. Please refer to the DMA section (section 3.12) in the C5416 datasheet [link].  You will need to set the DLAXS bit in the DMMCR register for the channel accessing the external memory. Without this configuration, the DMA will access internal DARAM4 when you make a DMA access to 0x8000 as shown in figure 3-18 of the datasheet.

    You will also have to edit the command linker file to create a new section in DATA_EXT memory as the dmaMem section is located in DATA_RAM PAGE1 which is internal memory. In the C code, both source and destination buffers are put into this dmaMem section using the #pragma directive. Please notice that you cannot do DMA transfers from external memory to external memory and the DROM, OVLY and MP/MC bits do not affect the DMA memory map.

    Regards,

    Sunil Kamath