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.

Is it possible to create a new CCS project using starterWare example design?

Other Parts Discussed in Thread: OMAPL138

Hi there,

I managed to rebuild the starterWare example nandReadWrite design. I would like to make some modification and have created new project and added following files:

nandDma.c

nandDma.h

nandReadWrite.c and

nandReadWrite.cmd

Looks like all other header files and drivers could be added to the search path. But for some reason I am getting error:

<Linking>

undefined first referenced
symbol in file
--------- ----------------
EDMA3ClrCCErr ./nandDma.obj
EDMA3ClrIntr ./nandDma.obj
EDMA3ClrMissEvt ./nandDma.obj
EDMA3DisableTransfer ./nandDma.obj
EDMA3EnableTransfer ./nandDma.obj
EDMA3GetCCErrStatus ./nandDma.obj
EDMA3GetErrIntrStatus ./nandDma.obj
EDMA3GetIntrStatus ./nandDma.obj
EDMA3Init ./nandDma.obj
EDMA3QdmaClrMissEvt ./nandDma.obj
EDMA3QdmaGetErrIntrStatus ./nandDma.obj
EDMA3RequestChannel ./nandDma.obj
EDMA3SetPaRAM ./nandDma.obj
EMIFAClkConfig ./nandReadWrite.obj
EMIFANANDDMAXfer ./nandReadWrite.obj
EMIFANANDECCCalculate ./nandReadWrite.obj
EMIFANANDECCCheckAndCorrect ./nandReadWrite.obj
EMIFANANDECCDisable ./nandReadWrite.obj
EMIFANANDECCEnable ./nandReadWrite.obj

EMIFANANDECCInit ./nandReadWrite.obj
>> Compilation failure
makefile:141: recipe for target 'NandStarterWareExample.out' failed
EMIFANANDECCReadSet ./nandReadWrite.obj
EMIFANANDECCWriteSet ./nandReadWrite.obj
EMIFANANDInit ./nandReadWrite.obj
EMIFANANDWaitPinStatusGet ./nandReadWrite.obj
IntDSPINTCInit ./nandDma.obj
IntEnable ./nandDma.obj
IntEventClear ./nandDma.obj
IntEventMap ./nandDma.obj
IntGlobalEnable ./nandDma.obj
IntRegister ./nandDma.obj
NANDBadBlockCheck ./nandReadWrite.obj
NANDBlockErase ./nandReadWrite.obj
NANDMarkBlockAsBad ./nandReadWrite.obj
NANDOpen ./nandReadWrite.obj
NANDPageRead ./nandReadWrite.obj
NANDPageWrite ./nandReadWrite.obj
NANDPinMuxSetup ./nandReadWrite.obj
PSCModuleControl ./nandDma.obj

error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "NandStarterWareExample.out" not built
gmake: *** [NandStarterWareExample.out] Error 1
gmake: Target 'all' not remade because of errors.

  • Hi there,
    I have now managed to get the example design building. And it was but added the nand.lib, etc libraries..
    Could you please let me know what is that needed? Is there a way to write/read to nand flash without this *.lib files?

    Regards,
    Mitesh
  • It seems you are missing to add the platform.lib and "drivers.lib" into your project.
  • Hi Mitesh Haran,

    Mitesh Haran said:
    CCS project using starterWare example design?

    Yes, it is possible to create a new project in CCS. As well as, if you are using the starterware project, you can directly import the existing project and build it.

    The following are the steps to import and re-build the project.

    1. Open CCS --> Project --> Open existing CCS Eclipse project --> select search directory --> < give the path where the *.ccsproject lies. i.e, ~\ti\OMAPL138_StarterWare_1_10_04_01\build\armv5\cgt_ccs\omapl138\lcdkOMAPL138\nand > --> click finish

    2. Rebuild. This will build successfully by default.

    3. If it throws error, right click on project properties --> resources --> linked resources--> path variables. Check whether all the paths to the sources are appropriate / valid and there is no conflict in the location.

    4. Please post the screenshot of your project properties of this "NAND" project of OMAPL138 starterware. 

     

  • Thanks Guys. but if u see my second post. I did at the end manage to get the example design rebuild. However, I want to build without the need of the lib files viz., nand.lib, system_config.lib, platform.lib, etc. is it possible? n what is the *.lib files ? 

    Regards,

    Mitesh

  • Hi,

    May be, you could check the project and build handbook for CCS as below which would help you better in importing, adding or linking source files/folders to the project workspace:

    http://processors.wiki.ti.com/index.php/Projects_and_Build_Handbook_for_CCS#Adding_or_linking_source_files_and_folders_to_project

    Thanks & regards,

    Sivaraj K

    ------------------------------------------------------------------------------------------------------

    Please click the Verify Answer button on this post if it answers your question.

    -------------------------------------------------------------------------------------------------------

  • Dear Mitesh,

    I want to build without the need of the lib files viz., nand.lib, system_config.lib, platform.lib, etc. is it possible? n what is the *.lib files ?

    Yes its possible.
    If that is the case, you may need to add those nand library source files to your starterware project.

    C:\ti\OMAPL138_StarterWare_1_10_04_01\nandlib\nandlib.c
    C:\ti\OMAPL138_StarterWare_1_10_04_01\nandlib\nand_emifa2.c
  • Hi Mitesh,

    Actually the NAND program that you created newly as a CCS project need those library files. You cannot ignore it.

    More over you NEED NOT create a new project with NAND source files. The *.ccs files were already existing for that starterware example.

    Follow the instructions given in my previous post.

    Mitesh said:
    without the need of the lib files viz., nand.lib, system_config.lib, platform.lib, etc. is it possible? n what is the *.lib files ?


    If it is the starterware NAND program, no it is not possible as the source files of that program needs functions enclosed in the library.

    If it is just a hello world program, you do not need these library files.

  • Thanks both Shankari and Titus.
    Yup, it now make sense.
    Yes, I am modifying the NAND read write example. (StarterWare Example)

    As Titus suggested, I have removed all the links I created to *.lib files and added the actual *.c files to the project. And one problem in doing so was the files inside the platform is also named same as the drivers ;) I have changed the file name and all seems to work now. Thanks for the support.

    One final question, what's your recommendation? In an actual design that consists of more than one peripheral used, would you combine all the platform depended files (pinmux, init) in one common config file or use the *.lib as in the example ?

    In general, the example design uses *.lib files and the example I have modified uses 1 common file for the config (Combined all the source files nand.c,emifa.c,etc) is any method better than the other?

    Regards,
    Mitesh
  • Mitesh said:
    One final question, what's your recommendation? In an actual design that consists of more than one peripheral used, would you combine all the platform depended files (pinmux, init) in one common config file or use the *.lib as in the example ? In general, the example design uses *.lib files and the example I have modified uses 1 common file for the config (Combined all the source files nand.c,emifa.c,etc) is any method better than the other?

    It depends upon your software design. For modularity purposes, library files are created. No problem in combining the source files. Actually in starterware, it is organised in such a way to demonstrate one example for each periheral etc,.

     

     

  • Shankari,

    It doesn't affect performance or the code length in either of the cases right? Could you also send me a link which explains how to convert code into libraries? Thanks Shankari.

    Regards,

    Mitesh

  • Mitesh,

    Codes are not converted but "built" as libraries .
    Go to CCS help menu and type "Library-build process"; You will get lot of documentations.

    As well, you can refer the build configurations of "NANDlib" or "usblib" sample projects enclosed in the starterware.
  • Okay thanks. will check.
    I have one more question, I have created a simple design in which the DSP received data from a PC as an UDP packet and I then want to write that data to NAND flash.
    So I have created a task which would write data to NAND and is pend on a Semaphore. I would like to post the semaphore, once I receive the UDP packet in the NDK. I have added the post semaphore function inside the helloworld example design, that is, in the dtask_udp_echo hook function. Is this right way of doing it? ta
  • Hi Mitesh,

    I would recommend you to open up a new question.

    Appending one or more questions repeatedly on the closed posts will seek very less attention compared to the new ones.

     

    Thanks for understanding.