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.

Code Composer 4.2.3 with NDK 2_20_02_22 and bios_6_31_04_27

Other Parts Discussed in Thread: SYSBIOS, CCSTUDIO, OMAPL138

Hello!

My name is Valentin Gulimanescu I downloaded code composer 4.2.3 and i am trying to build a project that uses sysbios 6_31_04_27 and NDK 2_20_02_22. I am using a evm6455 from spectrum digital. The project compiles ok without the ndk, and also runs on the evm, but when i try to add the ndk  (using the wizard to edit the .cfg file) and try to compile i get an undefined symbol _NIMUDeviceTable linker error. If i try an manually add library hal_eth_6455 from NDK 2_0_0 (because it is the latest version that supports the platform i am working on) i get more undefined symbol linker errors:

undefined             first referenced                                                                           
  symbol                   in file                                                                                
 ---------             ----------------                                                                           
 _BCACHE_invL1pAll     C:\CCStudio_v3.3\ndk_2_0_0\packages\ti\ndk\lib\hal\dsk6455\hal_eth_c6455.lib<ethdriver.o64P>
 _C6455EMAC_getConfig  C:\CCStudio_v3.3\ndk_2_0_0\packages\ti\ndk\lib\hal\dsk6455\hal_eth_c6455.lib<ethdriver.o64P>
 _C6455EMAC_linkStatus C:\CCStudio_v3.3\ndk_2_0_0\packages\ti\ndk\lib\hal\dsk6455\hal_eth_c6455.lib<ethdriver.o64P>
 _C64_disableIER       C:\CCStudio_v3.3\ndk_2_0_0\packages\ti\ndk\lib\hal\dsk6455\hal_eth_c6455.lib<ethdriver.o64P>
 _C64_enableIER        C:\CCStudio_v3.3\ndk_2_0_0\packages\ti\ndk\lib\hal\dsk6455\hal_eth_c6455.lib<ethdriver.o64P>
 _SEM_post             C:\CCStudio_v3.3\ndk_2_0_0\packages\ti\ndk\lib\hal\dsk6455\hal_eth_c6455.lib<ethdriver.o64P>

Are there any drivers that i must add, because i tried manually adding dsk6455bsl.lib and csl_c6455.lib and got the same error. The path of NDK is the default install part, but i am NOT using code composer 3.3.

Could you please at least point me in the right, direction, it is my first DSP project and i am on a tight timeline. Thank you.

Valentin

  • Hello, Valentin

    It seems your ethernet PHY`s driver referenced from ndk 2.0 uses old version of Bios

    For example SEM_post is not supported in Sys/Bios 6.31

    The best way for you is to take sources of the PHY driver and develop your own library for your EMAC.

    All you need is to construct a library project in the CCSv4.2 and to take a little attention to port sources to Sys/Bios

    (change all include files and function calls to the supported in Sys/Bios 6.31)

    Function call BCACHE_invL1pAll can be commented out

    (and

    //#include <std.h>
    //#include <sys.h>
    //#include <bcache.h>
    )

    Also you should look at the sources of your BSL library (dsk6455bsl.lib) and find the functions implementation C6455EMAC_getConfig C6455EMAC_linkStatus C64_disableIER C64_enableIE. Is it there? If yes, you should rebuild your BSL also.


    NIMUDeviceTable maybe not found because your PHY driver is built without NIMU support (add _INCLUDE_NIMU_CODE definition to your driver library)

    Be careful, I posted my advice, I`m not a TI`s specialist

    Best regards, Yuriy

  • hello Yuriy!


    Thanks for your swift reply! You are right, the problem is that while the drivers from NDK 2.00 are compatible with newer versions of NDK, they are not compatible with SYSBIOS. I am trying now to use  the driver in the NSP_1_00_00_09, i recompiled it for C64P and now I've got the project compiling with no errors, but when I try to run it on the board, it crashes. This is probably because of the initialization and opening of the EMAC, which is not thought for the C6455, but rather for the OMAPL138. I will search thru all bsl and csl for the right functions. Anyway, do you have a normal initialization for the EMAC on the c6455 from a dsk or evm with that DSP? Thanks again!

    Valentin

  • Valentin, unfortunately I don`t have C6455.

    I`m working with OMAPL137

     

    Good luck!

  • Hello Yuriy!


    Thanks! I made some real progress. I took the sources for the ethernet driver from NDK 2.00 and managed to compile them into a library (i commented out the cache invalidation : BCACHE...) using code composer my 4.2. I added this library along with the dsk6455csl and bsl libraries from spectrum dsk support package to my sysbios 6.31 and ndk 2_00_22 project and it compiled ok. I am now trying to get the software to work, it crashes badly right after bios_start. Good luck to you to!

    Valentin

  • Hi Valentin,

    There are a couple of documents that may be helpful to you.  Have you seen these?

     

    - Migrating a DSP/BIOS 5 Application to SYS/BIOS 6

    • This document discusses how to port a legacy BIOS 5.x application to BIOS 6.x.
    • You can find this doc in your SYS/BIOS installation.  For example, on my machine this doc is here:

    C:\Program Files\Texas Instruments\bios_6_32_01_33_eng\docs\bios_legacy_app_note.pdf

    - TMS320C6000 Network Developer's Kit
    (NDK) Support Package Ethernet
    Driver Design Guide

    • This document discusses the Ethernet driver design
    • You can find this in your NDK installation, for example on my machine, it's here:

    C:\Program Files\Texas Instruments\ndk_2_20_04_26\packages\ti\ndk\docs\stack\sprufp2_nspethdrvdesign.pdf

    Steve