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.

EDMA3 not working

Hello,

I am using DM6437. I have created a project based on the Video loopback example.

We are trying to transfer data from DDR2 to L1 Cache without using interrupt in loop. First we tried the data transfer from DDR2 to L1 by running the EDMA3TEST example project. When we run the example project the results are as expected.

We modified the "test_2D2D_nointr" function to copy the data from DDR2 to L1 cache. The same code when we used in our project to copy the data, the EDMA3_DRV_requestChannel goes for infinite loop after second time onwards and when we try to halt the execution, a below mentioned pop-up window will appeared.

 

Can anyone help me? What is the problem and how to debug the code.

Regards,

Gurudath

  • Gurudath,

    Welcome to the E2E forum. I hope you find a large range of answers and information to help you with your work, and that you offer back some of that knowledge as you gain experience with these TI parts.

    One question: you included a Tag about the C6455. Are you porting software from a different processor to the DM6437, or why is this tag included?

    The DM6437 has two blocks of high-performance L1D memory. In most cases, the 32KB block at address 0x10F1 0000-0x10F17FFF will be configured to be used as 100% cache, but it can be configured as less cache and more SRAM. When some or all of this L1D block is used as cache, it cannot be used as SRAM. There is a second 48KB block at address 0x10F0 4000-0x10F0 FFFF which is only SRAM and cannot be configured as cache.

    If you are trying to copy from DDR2 to L1D cache, you will crash your system. This memory must not be written directly when it is configured as cache.

    I do not know how the example code is operating, but it would be efficient to request the channel once at initialization and save the handles and objects as global or static variables so you can reuse the same channel. This might not make sense, depending on what you are doing, but it always makes sense in the examples I have worked with on EDMA3.

    The source file being sought in the CCS dialog is just looking for the EDMA3 LLD file that was compiled and archived into the EDMA3 LLD library. It is natural that its location is not known within your project, so you could browse for it if you wish. The more helpful thing would be to look at your arguments to EDMA3_DRV_requestChannel and figure out why it might have a problem with being called a second time.

    There is no way to tell from here if the copy into L1D cache is causing your problem or if it is the arguments to your requestChannel function. But these are two important places for you to study.

    Please let us know if you solve your problem, and what you did to solve it. And please let us know if you have additional information or questions.

    Regards,
    RandyP

     

    If you need more help, please reply back. If this answers the question, please click  Verify Answer  , below.