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.

NDK NSP for DSK6455

Other Parts Discussed in Thread: TMS320C6455, OMAP-L138, OMAPL138, SYSBIOS

I am confused. I am upgrading my NDK from 1.94 to 2.22. I am building for a C64x+ (6455) on our custom board. I have all the NDK libraries (os, nettools, etc) linked into the CCSv5 RTSC project.

I do get one link error: 

unresolved symbol _NIMUDeviceTable, first referenced in C:\ti\ndk_2_22_03_20\packages\ti\ndk\stack\lib\stk6.a64P<nimu.o64P>

I read the docs, learned about the NSP, and looked at the download page - to find that the NSP downloads are for the OMAP parts only ??

I searched through the NDK directories and NDK documents but can't seem to find sufficient information on the DSK6455 NSP, or where to download it. The documentation seems to point to the NSP already being part of the NDK_2_22 - if so, how do I configure it ?

Or is this error related to something else ?

Thanks for your help!

Richard

  • Richard,

    I realize you are on a TMS320C6455, but I think the OMAP-L138 EMAC module will still work. I looked at the NDK EVM6748 Client example and they are also using the same EMAC module.

    Try adding this to your configuration script.

    xdc.useModule('ti.drv.omapl138.Emac');

    Here is the example I looked at for your reference.

    nsp_1_10_03_15/packages/ti/ndk/examples/ndk_evm6748_elf_examples.zip

    ~Ramsey

  • Thanks! Here is the result (showing the libraries at the end of the link command)

    "./FlirRangerHrc.obj" "./FlirRS6700.obj" "./Flash.obj" "./FPGA_PROM.obj" "./Diop.obj" "./Cohu.obj" "./AeroflexIttMount.obj" "../SYS1.cmd" -l"libc.a" -l"C:\ti\nsp_1_10_03_15\packages\ti\drv\omapl138\lib\debug\ti.drv.omapl138.a674" -l"C:\7000\common\csl_c6455\lib\csl_c6455.lib" -l"C:\ti\ndk_2_22_03_20\packages\ti\ndk\os\lib\os.a64P" -l"C:\ti\ndk_2_22_03_20\packages\ti\ndk\stack\lib\stk6.a64P" -l"C:\ti\ndk_2_22_03_20\packages\ti\ndk\netctrl\lib\netctrl.a64P" -l"C:\ti\ndk_2_22_03_20\packages\ti\ndk\nettools\lib\nettool.a64P" -l"C:\ti\ndk_2_22_03_20\packages\ti\ndk\hal\ser_stub\lib\hal_ser_stub.a64P" -l"C:\ti\ndk_2_22_03_20\packages\ti\ndk\hal\userled_stub\lib\hal_userled_stub.a64P"

    <Linking>

    >> Compilation failure
    undefined first referenced
    symbol in file
    --------- ----------------
    _EMAC_getConfig C:\ti\nsp_1_10_03_15\packages\ti\drv\omapl138\lib\debug\ti.drv.omapl138.a674<nimu_eth.o674>
    _EMAC_setConfig C:\ti\nsp_1_10_03_15\packages\ti\drv\omapl138\lib\debug\ti.drv.omapl138.a674<nimu_eth.o674>
    _OEMCacheCleanSynch ./emac_ctrl.obj
    _ti_sysbios_hal_Cache_CacheProxy_wbInv__E C:\ti\bios_6_35_04_50\packages\ti\sysbios\lib\sysbios\instrumented\sysbios.a64P<BIOS.obj>

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

    **** Build Finished ****
  • Richard,

    Looks like I sent you in the wrong direction. Sorry about that. Please disregard my previous post.

    Moving from NDK 1.94 to NDK 2.22 is a big jump. In particular, the old version supported BIOS 5.x and the new version only supports BIOS 6.x. Is it your intention to also make this move or not? If you want to stay on BIOS 5.x, then you should roll back to NDK 2.20.06.35. This is the last release to support BIOS 5.x. It also happens to support BIOS 6.x, so this is a good transition release.

    The drivers are typically supported by different teams. Updating them is at the discretion of each business unit. There was a period of time when the drivers were shipped with the NDK, but this is no longer the case. NDK 2.00 is the last release with the DSK6455 driver. I suggest you download this release and extract the driver into your build environment. Look in the following folders:

    ndk_2_0_0/packages/ti/ndk/src/hal/dsk6455 - source files
    ndk_2_0_0/packages/ti/ndk/lib/hal/dsk6455/hal_eth_c6455.lib - libraries

    Note that c6455 denotes little-endian and c6455e denotes big-endian.

    With these changes, I don't think you will need the NSP product.

    ~Ramsey

  • Thanks for the update. Here is a snapshot of my linker Include List:
    (I am using sysBios_6_35_4_50 but agree that taking a smaller step with the NDK is a good idea)

    "libc.a"
    "C:\7000\common\csl_c6455\lib\csl_c6455.lib"
    "C:\ti\ndk_2_20_06_35\packages\ti\ndk\lib\C64plus\os.lib"
    "C:\ti\ndk_2_20_06_35\packages\ti\ndk\lib\C64plus\netctrl.lib"
    "C:\ti\ndk_2_20_06_35\packages\ti\ndk\lib\C64plus\nettool.lib"
    "C:\ti\ndk_2_20_06_35\packages\ti\ndk\lib\C64plus\hal\hal_userled_stub.lib"
    "C:\ti\ndk_2_20_06_35\packages\ti\ndk\lib\C64plus\hal\hal_ser_stub.lib"
    "C:\ti\ndk_2_20_06_35\packages\ti\ndk\lib\C64plus\all_stk\stk6.lib"
    "C:\ti\ndk_2_0_0\packages\ti\ndk\lib\hal\dsk6455\hal_eth_c6455.lib"


    I am getting the following unresolved references. Am I missing a library ?
    Thanks




    "./FlirRangerHrc.obj" "./FlirRS6700.obj" "./Flash.obj" "./FPGA_PROM.obj" "./Diop.obj" "./Cohu.obj" "./AeroflexIttMount.obj" "../SYS1.cmd" -l"libc.a" -l"C:\7000\common\csl_c6455\lib\csl_c6455.lib" -l"C:\ti\ndk_2_20_06_35\packages\ti\ndk\lib\C64plus\os.lib" -l"C:\ti\ndk_2_20_06_35\packages\ti\ndk\lib\C64plus\netctrl.lib" -l"C:\ti\ndk_2_20_06_35\packages\ti\ndk\lib\C64plus\nettool.lib" -l"C:\ti\ndk_2_20_06_35\packages\ti\ndk\lib\C64plus\hal\hal_userled_stub.lib" -l"C:\ti\ndk_2_20_06_35\packages\ti\ndk\lib\C64plus\hal\hal_ser_stub.lib" -l"C:\ti\ndk_2_20_06_35\packages\ti\ndk\lib\C64plus\all_stk\stk6.lib" -l"C:\ti\ndk_2_0_0\packages\ti\ndk\lib\hal\dsk6455\hal_eth_c6455.lib"

    <Linking>

    >> Compilation failure
    undefined first referenced
    symbol in file
    --------- ----------------
    _OEMCacheCleanSynch ./emac_ctrl.obj
    _ti_sysbios_hal_Cache_CacheProxy_wait__E C:\ti\bios_6_35_04_50\packages\ti\sysbios\lib\sysbios\instrumented\sysbios.a64P<BIOS.obj>
    _ti_sysbios_hal_Cache_CacheProxy_wbInv__E C:\ti\bios_6_35_04_50\packages\ti\sysbios\lib\sysbios\instrumented\sysbios.a64P<BIOS.obj>

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

    **** Build Finished ****

  • Richard,

    Okay, so you are using SYS/BIOS 6.35.04.50. Unfortunately, the driver you are using (taken from NDK 2.0.0) was written and built for BIOS 5.x. We don't have the same driver built for SYS/BIOS 6.x. You will need to modify the driver source code and rebuild it against SYS/BIOS 6.35.04.50.

    Here are two forum threads to help you through this process.



    Let me know how this works out for you.

    ~Ramsey