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.

Problems with DMA example "fastcopy"

I am a beginner of using DM6437 to implement some computer vision algorithms, and I am studying how to use DMA now.

I use the example "fastcopy" as a metrial to study DMA. However, after compiling the project using CCS (version 3.3.38.2), I have some troubles.

1. When I use fastcopytest.pjt in directory davincisim_bios to build the program, it was successed after I modified the "Include Search Path" and "Search Path" in "Build Option" dialog. Then, I try to run the program. However, when the program runs to function activateChannels(), line 201

    status = DMAN3_createChannels(0, &dmaTab, 1);

the value of status is always DMAN3_EOUTOFTCCS.

 

I don't know how to solve the problem, so I try the fastcopytest.pjt in directory davincisim_nobios.

2. When the program runs to function activateChannels(), line 201

    status = DMAN3_createChannels(0, &dmaTab, 1);

the value of status is always DMAN3_EOUTOFMEMORY.

 

I tried to search the forums by using DMAN3_EOUTOFTCCS, DMAN3_EOUTOFMEMORY, ACPY3, DMAN3, and DMA as keywords, but there are no solutions for my case.

Can anyone give me some advices to solve the problems?

 

The version of my framework components is 1.20.03, and xDAIS is version 5.21.

 

By the way, for now, I have several documents to study :

TMS320C64x DSP Two-Level Internal Memory Reference Guide (SPRU610C)

TMS320C6000 DSP Enhanced Direct Memory Access (EDMA) Controller Reference Guide (SPRU234C)

Framework Components Reference Manual

Using DMA with Framework Components for ‘C64x+ (SPRAAG1A)

 

Are there other DAM documents are suitable for a beginner to study? Or other examples for DMA usage? Or anything that might be helpful for me to know how to incorporate DMA into my project.

 

Many thanks

Jin-Yi Wu

 

  • What version of framework components are you using ? It is possible that DMAN3's default configuration in that example is not sufficient for DM6437 and might require modification.

  • The version of framework components I am using is 1.20.03, and xDAIS is version 5.21.

     

    I have uploaded the screenshots of variables "dmaTab" and "DMAN3_PARAMS" before calling "status = DMAN3_createChannels(0, &dmaTab, 1);"

    (using fastcopytest.pjt in directory davincisim_bios)  to

    http://touristjerry.myweb.hinet.net/Bios0.PNG

    and after calling "status = DMAN3_createChannels(0, &dmaTab, 1);" to

    http://touristjerry.myweb.hinet.net/Bios1.PNG

     

    And I have also uploaded the screenshots of variables "dmaTab" and "DMAN3_PARAMS" before calling "status = DMAN3_createChannels(0, &dmaTab, 1);"

    (using fastcopytest.pjt in directory davincisim_nobios)  to

    http://touristjerry.myweb.hinet.net/nobios0.PNG

    and after calling "status = DMAN3_createChannels(0, &dmaTab, 1);" to

    http://touristjerry.myweb.hinet.net/nobios1.PNG

     

    So.....which files in project fastcopytest are required to be modified?

     

    P.S. I notice that in the "GEL Output" dialog, the last line shows "Disable EDMA events". Does my situation has anything to do with it?

     

    Jin-Yi Wu

     

  • Based on the screenshots + information above it is hard to tell why you are getting these error return codes.

    The DMAN3_createChannels call is requesting a single algorithm instance from group-0. Looking at your DMAN3 Params settings you have assigned 4 tccs and 4 params to group-0, and looking at the dmaTab (idma3 resource descriptor) the algo is asking for a logical channel with 4 transfers (=4 PaRAMs) and 4 waits (=4 TCCs), so the request should go though successfully.

    Can you experiment with changing the algorithm, to ask for say 1 PaRAM and 1 TCC (numTransfers=1 and numWaits=1), and see if DMAN3_createChannels() behaves differently?  

    Murat

     

  •    Is there some way you could upgrade to using FC 2.00.01, that has an example specifically for DM6437:-

    framework_components_2_00_01/examples/ti/sdo/fc/dman3/examples/fastcopy/dm6437_bios