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.

CCS/TMS570LC4357: DMA Working Control Packets not updating in CCS

Part Number: TMS570LC4357

Tool/software: Code Composer Studio

I am trying to debug my DMA configuration on the TMS570LC4357, but the DMA working control packets do not update in the Memory Browser window in CCS. The values at 0xFFF80800 appear to be junk/non-sense values that do not change when the DMA is configured or when a DMA channel is triggered. I am currently configuring DMA channel 0 to be triggered on SPI1 Rx. I can see data being moved, but the working control packets do not change.

  • Hi Jeremy,

    Is the value at 0xFFF80000 in CCS browser window the correct initial source address? Once the channel is arbitrated, the current source address, destination address and transfer count should be copied to their respective working images.

    Can you try to read the value from your code instead of the browser window?

  • Hi QJ,

    The value at 0xFFF80000 (primary control packet) is correct, but the value at 0xFFF80800 (working control packet) is not. Reading from 0xFFF80800 in the code reads the same values shown in the Memory Browser.

    Edit: I also noticed that when I read 0xFFF80800, 0xFFF80804, and 0xFFF80808 from the code, the DMA transfers stop working altogether. For some reason this feels like a cache coherency issue or something... Disabling instruction and data cache fixed the DMA issues I was having and now all DMA transfers work correctly, but the control packet still do not show the correct data. Do I need to configure the MPU with a region for DMA transfers that has cache disabled? Or is there another cache setting I can use?

  • Hi Jeremy,

    You can use write-through instead of write-back.