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.

Question about using CSL EDMA3

I use ccsv5 and mcsdk2.0.  Following is my code and after build the project, reported that undefined symbol CSL_edma3Open  CSL_edma3Init.  Why can normally use the cache API but EDMA3.

#include <stdio.h>

#include <xdc/std.h>
#include <xdc/runtime/System.h>
#include <ti/csl/csl_cacheAux.h>

#include <ti/csl/csl_edma3.h>
#include <ti/csl/csl_edma3Aux.h>

int main(void)
{
 CACHE_L1Size cacheL1PSize;
 CACHE_L1Size cacheL1DSize;
 CACHE_L2Size cacheL2Size;
  CSL_Edma3Obj            edmaObj;
  CSL_Status              status;

 // EDMA Init

 CSL_edma3Init(NULL);
 hModule = CSL_edma3Open(&edmaObj,1,NULL,&status);

 //  cache Init
 cacheL1PSize = CACHE_L1_MAXIM3;

 while(cacheL1PSize != CACHE_getL1PSize())
 {
  CACHE_setL1PSize(cacheL1PSize);
 }

 printf("L1P Cache Set Successed\n");

 cacheL1DSize = CACHE_L1_MAXIM3;
 while(cacheL1DSize != CACHE_getL1PSize())
 {
  CACHE_setL1PSize(cacheL1DSize);
 }
 printf("L1D Cache Set Successed\n");
 cacheL2Size = CACHE_128KCACHE;
 while(cacheL2Size != CACHE_getL2Size())
 {
  CACHE_setL2Size(cacheL2Size);
 }
 printf("L2 Cache Set Successed\n");

 
 return 0;
}

 

  • If the error is in the compile step, then the include search path is not set to find these files.

    If the error is in the link step, then the correct CSL library has not been included for the linker.

    Regards,
    RandyP

     

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

  • Hi RandyP, thanks for you reply.

    The error is in the link step.  There are two CSL librarys for C66x, I have added them both in my project(ti.csl.ae66 and ti.csl.intc.ae66).  If I need other librarys?

  • Eric Mao,

    After adding the libraries, do you still get the error messages?

    Regards,
    RandyP

  • Yes, the error messages is still the same after adding the libraries. Any other suggestions?

  • I expect this is an issue with setting up the libraries and linker to access the files correctly. The experts for these software issues are in this BIOS forum, so we will have the best chance to get an answer here.

    Regards,
    RandyP

  • Hi RandyP

     I find several c source files under the CSL folder.  The function definition for  the functions mentioned in the error message are present in these files, so I link them to my project, then everything is OK.

  • Eric Mao,

    Your solution works by including the source files rather than pulling the pre-compiled object from a library file. You can do this with all of the CSL functions because we supply the source files for all of these functions.

    The downside to this solution will be when you start using more CSL functions, then you will need to keep adding more source files to your project. And your compiler switches may not result in an optimized version.

    Also, this is additional evidence that you did not get the libraries properly pulled into your project. When this happens in the future for a different library, especially if it is one that does not supply source, your problem will come back.

    The upside is that we are all glad your project is now working.

    Regards,
    RandyP

  • RandyP,

    I doubt that sevel CSL modules are not pre-compiled into the CSL library file.  Under the CSL folder, I find server module's source files such as EDMA3,CHIP,INTC.  In recent days,  I wrote the programs to test the CSL modules' API ,and find that the moudles have source files all can't link correctly unless include the source files into the project.

    Not all of the CSL functions have source files under my CSL folder. Just EDMA3 ,CHIP ,INTC,TIMER module have source files.

  • Eric Mao,

    [ When you are editing a reply, if you select text in the "previous post" window above your reply window, then click the Quote link, the editor will insert that text in a box with the name of the person being quoted. You can click Preview to see how it will look later, then click Compose to get back to the edit window. ]

    All of the CSL modules should be pre-compiled into the CSL library file. This is the reason this library file exists, as a container for all of these functions. You should not need to include the source files into your project.

    If you want to find out what is wrong with how you were building it before including the source files, you will need to click Reject Answer on the post that you marked with Verify Answer. If the experts here in the BIOS forum see that the thread is answered, they are less likely to read through this whole thread to figure out what the questions are or what they can help with.

    Regards,
    RandyP

  • RandyP,

    OK, I've cancled the Verify Answer. Expect someone  solve the question.

     

     

    Eric.

  • Eric,

    Have you considered using the EDMA3 LLD?

    http://software-dl.ti.com/sdoemb/sdoemb_public_sw/bios_mcsdk/02_00_00_08/index_FDS.html

     

    After you install it, there is an EDMA3 LLD example at:

    C:\Program Files\Texas Instruments\edma3_lld_02_11_01_02\examples\edma3_driver

    This may be a better option than solely using CSL.

    Regards,

    Travis

  • I experience the same issue - although mcsdk/pdk is selected in the RTSC configuration, the linker can not resolve the symbols in question.

    As suggested in the previous posts, I moved my question to the SYS/BIOS E2E forum: http://e2e.ti.com/support/embedded/bios/f/355/t/201564.aspx