the prog cannot pass the test, the EDMA cannot transfer data
look the file
please help me0005.tempa.rar
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.
the prog cannot pass the test, the EDMA cannot transfer data
look the file
please help me0005.tempa.rar
Please explain what is the problem you have.
Have you started from any examples supplied by TI?
Have you looked at the examples for the EDMA3_LLD? This is similar to CSL but provides resource management and seems to be the recommended way for C6678 users to run EDMA3 operations.
Regards,
RandyP
I wanted to study using the CSL. I copied the "EDMA" example to my empty project, I compile the file, load the program, but I find out that the EDMA transfer cannot be finished. so I wanted to look for help , did the example of TI have a problem?
Yes, only CSL,if you gave a glance at the source code whitch i uploaded you will see?
wish you reply.
If you are using C667X device, please download MCSDK and look at the EDMA example in the following location :
MCSDK location : http://software-dl.ti.com/sdoemb/sdoemb_public_sw/bios_mcsdk/latest/index_FDS.html
EDMA example is at : ..\..\pdk_C667X_1_0_0_14\packages\ti\csl\example
This EDMA example uses the appropriate CSL for the device. It uses both register level CSL and simple functional CSL. You can build this EDMA example in CCS and link the functional CSL EDMA library (file name : ti.csl.ae66 ) provided. Then build the example and run.
If you have any issues after doing this, please let us know. We are here to help you.
I had downloaded the new MCSDK last Fri and solved this problem and the SPI problem , thank you very much!!!!!
Hello Randy,
After some struggle, I successfully built the edma3_lld_02_11_03_02\examples\edma3_driver\evm6678\sample_app example.
The first test (edma_test) which performs a simple memory to memory transfer does not work (transfer not made).
Further debugging revealed that even though the EDMA3_DRV_requestChannel() returns 0, the channel number and TCC are both set to 0 by this function.
I am quite familiar with EDMA3 from previous devices (DM648 for example), and had no special issues with it.
So, I tried a similar test on DM648 and it works well.
My questions are:
Thanks Allot,
A.T.
A.T.,
It is interesting that you called my name on this when Varada is the one who answered the question. By jumping onto this Answered thread instead of posting a new one, you are probably only going to hear from one of us; not certain, but it hurts your chances. And the thread you jump on is about EDMA CSL while your actual question is about the EDMA3_LLD.
EDMA3_LLD is not a strong point for me. I have been using CSL and have not learned all the LLD commands, although the examples are newer for the LLD and more likely to work.
There is nothing inherently wrong with channel number = 0 and TCC = 0. These are valid values and make it easy to find the PARAM, assuming PARAM Set = 0 also.
Does it appear that the transfer ran but the data did not get updated?
The most common error is using a local L2 memory address for either the source or destination. The EDMA3 module must use the Global L2 memory address for the CorePacN from which you want to access the L2 memory. Go to the datasheet and look through the Memory Map Summary.
Please reply back either that this helped or with more information on what ran, what worked, what failed, and so on.
Regards,
RandyP
Hello Randy,
Maybe that was not the best way to proceed, but I called your name since you mentioned the LLD and recommended using it. Of course I would be grateful if Varada could join in.
Regarding your comments:
The code sample under edma3_lld_02_11_03_02\examples\edma3_driver\evm6678 got me somewhat confused.
There are 2 directories there: sample_app directory with CCS project that includes links to actual sources and rtsc_config directory which includes the BIOS CFG file.
The project under the sample_app directory did not build automatically, so I modified build options and added the CFG file under the to the rtsc_config to make it build, but the EDMA transfer is not being executed (the callback function is not triggered).
All EDMA functions return with no specific error code and memory regions seem ok, so it is kind of hard to pin point the actual problem with this supplied example.
I would be grateful if you could point me to where I should continue looking.
Thanks,
A.T.
Avi,
It is my understanding that the MCSDK examples, which would include this one, are expected to be built in-place instead of being imported elsewhere. Either way, there could be some paths that need to be updated, but that should be the only thing that you need to change to get the examples to work.
But I do not know how these build. Maybe we will get some help on Monday from someone who knows the examples better. I recommend the EDMA3_LLD because it is the fully supported and well-documented way to drive the EDMA3 module. But I do not know it well; I know the EDMA3 logic well, but not the LLD.
Before the transfer is going to be triggered, look at the PARAM Set to see if it looks like what you meant to be programmed there. I guess I should ask if this is a QDMA or regular DMA channel?
Then look at the EDMA3 registers to see if any error bits are set for the channel you are using.
But, the example should work as-is with only path updates. So the debugging should be unnecessary, but I do not know what else to suggest right now.
Regards,
RandyP