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.

Unresolved symbol NIMUDeviceTable on TMS320c6657

Other Parts Discussed in Thread: TMS320C6657, SYSBIOS

Hello,

I'm using a TMS320C6657 board and tried to create a program using the ndk features. I created a new CCS project, added a new .c-file and a .cfg-file, both of them empty. In the Properties->General RTSC tab I enabled NDK 2.24.3.35, SYS/BIOS 6.45.1.29, System Analyzer and 665x PDK 2.0.1.

Then I added these lines to the cfg-file

var Emac = xdc.useModule('ti.ndk.config.Emac');

var Global = xdc.useModule('ti.ndk.config.Global');

var BIOS = xdc.useModule('ti.sysbios.BIOS');

var Emac = xdc.useModule('ti.ndk.config.Emac');
var Global = xdc.useModule('ti.ndk.config.Global');
var BIOS = xdc.useModule('ti.sysbios.BIOS');

and a main.c file with the code

int main(void) {

BIOS_start();

return 0;

}

#include <ti/sysbios/BIOS.h>

int main(void) {
	BIOS_start();
	return 0;
}

The problem is, I get the following error:

<Linking>

undefined first referenced

symbol in file

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

NIMUDeviceTable C:\ti\ndk_2_24_03_35\packages\ti\ndk\stack\lib\stk6.ae66<nimu.oe66>

error #10234-D: unresolved symbols remain

error #10010: errors encountered during linking; "NetworkTest02.out" not built

>> Compilation failure

As far as I read in the forum I need to link in the correct nimu library. I discovered the file nimu_eth.h in my pdk_c665x_2_0_1/packages/ti/transport/ndk/nimu directory. But how can I tell my project to find it, I don't get it, tried several things and compared to the examples (which run without errors). Please, can you help me? Thanks.

  • Martin,

    I went ahead and moved this thread over to the device forum in hopes that it will receive a faster response there.
  • Martin,

    Welcome to the TI E2E forum. I hope you will find many good answers here and in the TI.com documents and in the TI Wiki Pages (for processor issues). Be sure to search those for helpful information and to browse for the questions others may have asked on similar topics (e2e.ti.com). Please read all the links below my signature.

    We will get back to you on the above query shortly. Thank you for your patience.

    Note: We strongly recommend you to create new e2e thread for your queries instead of following up on an old/closed e2e thread, new threads gets more attention than old threads and can provide link of old threads or information on the new post for clarity and faster response.

  • Try to link the following library in your project to resolve the linking issue.
    C:\ti\pdk_c665x_2_0_1\packages\ti\transport\ndk\nimu\lib\c6657\c66\ti.transport.ndk.nimu.c6657.ae66e
    ti.transport.ndk.nimu.c6657.ae66
  • Hello Titus,

    thank you very much for your answer, and sorry for replying so late. I tried to do as you suggested. I linked the referred library by calling Project -> Properties -> CCS Build -> C6000 Linker -> File Search Path and included the library file as described in processors.wiki.ti.com/.../Include_paths_and_options

    First I got an error concerning little and big endian because I added both libraries, I then deleted the ae66e library file again and tried to build.

    I then got a new error I unfortunately can't fix, can you help me again?

    <Linking>

    undefined first referenced

    symbol in file

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

    Convert_CoreLocal2GlobalAddr C:/ti/pdk_c665x_2_0_1\packages\ti\transport\ndk\nimu\lib\c6657\c66\ti.transport.ndk.nimu.c6657.ae66<nimu_eth.oe66>

    Osal_exitSingleCoreCriticalSection C:/ti/pdk_c665x_2_0_1\packages\ti\transport\ndk\nimu\lib\c6657\c66\ti.transport.ndk.nimu.c6657.ae66<nimu_eth.oe66>

    emac_close C:/ti/pdk_c665x_2_0_1\packages\ti\transport\ndk\nimu\lib\c6657\c66\ti.transport.ndk.nimu.c6657.ae66<nimu_eth.oe66>

    emac_config C:/ti/pdk_c665x_2_0_1\packages\ti\transport\ndk\nimu\lib\c6657\c66\ti.transport.ndk.nimu.c6657.ae66<nimu_eth.oe66>

    emac_int_service C:/ti/pdk_c665x_2_0_1\packages\ti\transport\ndk\nimu\lib\c6657\c66\ti.transport.ndk.nimu.c6657.ae66<nimu_eth.oe66>

    emac_open C:/ti/pdk_c665x_2_0_1\packages\ti\transport\ndk\nimu\lib\c6657\c66\ti.transport.ndk.nimu.c6657.ae66<nimu_eth.oe66>

    emac_send C:/ti/pdk_c665x_2_0_1\packages\ti\transport\ndk\nimu\lib\c6657\c66\ti.transport.ndk.nimu.c6657.ae66<nimu_eth.oe66>

    error #10234-D: unresolved symbols remain

    error #10010: errors encountered during linking; "NetworkTest02.out" not built

    Did I do anything wrong? Thank you very much for your answer again.

    Martin

  • If you are using SYSBIOS based application then try to use the following code in *.cfg file.

    /* Load the EMAC packages */
    var Emac = xdc.loadPackage('ti.drv.emac');
    Emac.Settings.socType = devType;
    var socType = "c6657";

    var Nimu = xdc.loadPackage('ti.transport.ndk.nimu');
    Nimu.Settings.socType = socType;

    I would like to suggest to refer the NDK NIMU helloworld example in latest processor SDK.
    C:\ti\pdk_c665x_2_0_1\packages\MyExampleProjects\NIMU_emacExample_EVMC6657C66BiosExampleProject
  • Hi Titus,

    yes I use SYSBIOS and I tried to use the HelloWorld example from the MCSDK package (C:\ti\mcsdk_2_01_02_06\examples\ndk\helloWorld) (which runs), but I don't understand the different dependencies. The example file you referred to is not part of my installation. Do you know why? In the pdk_c665x_2_0_1/packages directory is no MyExampleProjects folder. Am I using a wrong or old version? I installed the latest processor SDK I could find only a few weeks ago. Unfortunatelly I deleted the installation file and thus don't know which file I used.

    Further I tried copying the complete cfg file from the example, I tried to copy only parts belonging to the ndk from the example *.cfg file, I tried to find more information about that topic in the forums and the User's and Reference Guides. I compared the include settings between my file and the example and copied all include paths at the different setting pages, ... but regardless of what I do I get at least one of the following errors:

    1. Using your suggested code in the *.cfg file throws "devType not defined:

    configuring NetworkTest02.xe66 from package/cfg/NetworkTest02_pe66.cfg ...

    js: "U:/TIWorkspace/NetworkTest02/NetworkTest02.cfg", line 17: ReferenceError: "devType" is not defined. (U:/TIWorkspace/NetworkTest02/NetworkTest02.cfg#17)

    "./package/cfg/NetworkTest02_pe66.cfg", line 188

    gmake.exe: *** [package/cfg/NetworkTest02_pe66.xdl] Error 1

    js: "C:/ti/xdctools_3_32_00_06_core/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.

    2. Using the code without the line "Emac.Settings.socType = devType;" throws "xdc.Package not found":

    configuring NetworkTest02.xe66 from package/cfg/NetworkTest02_pe66.cfg ...

    js: "U:/TIWorkspace/NetworkTest02/NetworkTest02.cfg", line 24: xdc.services.global.XDCException: xdc.PACKAGE_NOT_FOUND: C:\ti\pdk_c665x_2_0_1\packages\ti\platform\evmc6657l\package.xdc found along the package path, but no schema file was found. Ensure that the package 'ti.platform.evmc6657l' is completely built.

    "./package/cfg/NetworkTest02_pe66.cfg", line 188

    xdctools_3_32_00_06_core\gmake.exe: *** [package/cfg/NetworkTest02_pe66.xdl] Error 1

    js: "C:/ti/xdctools_3_32_00_06_core/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.

    3. If I use the *.cfg file from the example CCS throws "schema file not found":

    configuring helloWorld.xe66 from package/cfg/helloWorld_pe66.cfg ...

    js: "U:/TIWorkspace/NetworkTest02/helloWorld.cfg", line 122: xdc.services.global.XDCException: xdc.PACKAGE_NOT_FOUND: C:\ti\pdk_c665x_2_0_1\packages\ti\platform\evmc6657l\package.xdc found along the package path, but no schema file was found. Ensure that the package 'ti.platform.evmc6657l' is completely built.

    "./package/cfg/helloWorld_pe66.cfg", line 188

    gmake.exe: *** [package/cfg/helloWorld_pe66.xdl] Error 1

    js: "C:/ti/xdctools_3_32_00_06_core/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.

    Okay, but why don't I start with the running example file. First it uses UDP, while I need to have a TCP connection. Second I need to implement this into another project, so I need to understand which parts are important to copy and how I do it.

    So thank you very much again, I'm very sorry for having more problems.

    Martin

  • Dear Martin,

    yes I use SYSBIOS and I tried to use the HelloWorld example from the MCSDK package (C:\ti\mcsdk_2_01_02_06\examples\ndk\helloWorld) (which runs), but I don't understand the different dependencies. The example file you referred to is not part of my installation. Do you know why? In the pdk_c665x_2_0_1/packages directory is no MyExampleProjects folder. Am I using a wrong or old version? I installed the latest processor SDK I could find only a few weeks ago. Unfortunatelly I deleted the installation file and thus don't know which file I used.

    Once you installed the latest processor SDK package "pdk_c665x_2_0_1", you should create examples for C6657 device.

    pdkProjectCreate.bat C6657 all little all dsp

    processors.wiki.ti.com/.../Processor_SDK_-_Create_PDK_projects
  • Hi,

    I found the batch file and now I'm able to view the examples, thank you. Unfortunately this doesn't help me fixing my problem. I took the suggested NIMU helloWorld example and tried to analyze it. I copied the include variables and files of the linker and der compiler, I tried with my own cfg-file, with the one from the example and mixed both by copying the ndk-related parts. CCS still throws several errors, now:

    <Linking>

    warning #10247-D: creating output section "emacComm" without a SECTIONS specification

    undefined first referenced

    symbol in file

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

    CSL_chipReadReg C:\ti\pdk_c665x_2_0_1\packages\ti\drv\emac\lib\c6657\c66\ti.drv.emac.c6657.ae66<emac_drv_v0.oe66>

    Convert_CoreLocal2GlobalAddr C:\ti\pdk_c665x_2_0_1\packages\ti\transport\ndk\nimu\lib\c6657\c66\ti.transport.ndk.nimu.c6657.ae66<nimu_eth.oe66>

    Osal_beginMemAccess C:\ti\pdk_c665x_2_0_1\packages\ti\drv\emac\lib\c6657\c66\ti.drv.emac.c6657.ae66<emac_drv_v0.oe66>

    Osal_endMemAccess C:\ti\pdk_c665x_2_0_1\packages\ti\drv\emac\lib\c6657\c66\ti.drv.emac.c6657.ae66<emac_drv_v0.oe66>

    Osal_enterMultipleCoreCriticalSection C:\ti\pdk_c665x_2_0_1\packages\ti\drv\emac\lib\c6657\c66\ti.drv.emac.c6657.ae66<emac_drv_v0.oe66>

    Osal_enterSingleCoreCriticalSection C:\ti\pdk_c665x_2_0_1\packages\ti\drv\emac\lib\c6657\c66\ti.drv.emac.c6657.ae66<emac_drv_v0.oe66>

    Osal_exitMultipleCoreCriticalSection C:\ti\pdk_c665x_2_0_1\packages\ti\drv\emac\lib\c6657\c66\ti.drv.emac.c6657.ae66<emac_drv_v0.oe66>

    Osal_exitSingleCoreCriticalSection C:\ti\pdk_c665x_2_0_1\packages\ti\transport\ndk\nimu\lib\c6657\c66\ti.transport.ndk.nimu.c6657.ae66<nimu_eth.oe66>

    Osal_free C:\ti\pdk_c665x_2_0_1\packages\ti\drv\emac\lib\c6657\c66\ti.drv.emac.c6657.ae66<emac_drv_v0.oe66>

    Osal_malloc C:\ti\pdk_c665x_2_0_1\packages\ti\drv\emac\lib\c6657\c66\ti.drv.emac.c6657.ae66<emac_drv_v0.oe66>

    _DebugP_assert C:\ti\pdk_c665x_2_0_1\packages\ti\drv\emac\lib\c6657\c66\ti.drv.emac.c6657.ae66<emac_drv.oe66>

    error #10234-D: unresolved symbols remain

    error #10010: errors encountered during linking; "NetworkTest02.out" not built

    >> Compilation failure

    Is there any important relation I completely ignore? Is there any further tutorial on network issues? Is there anything where I can find information? I can't believe that I am the only one having this troubles?

    Best regards,

    Martin

  • Hello Martin, did you manage to resolve this? I am seeing similar unresolved symbols.
    Thanks,
    Geraldine
  • Hi,
    Which example are you building ?
    Are you using the latest processor SDK package or MCSDK version ?
  • Hello Titus,

    My setup is described in a separate thread (e2e.ti.com/.../537927). When I saw that Martin was seeing similar error messages in this post I decided to ask if he'd found a resolution.

    Regards,
    Geraldine

  • Hi Geraldine,

    unfortunately no, I couldn't resolve the problem, but I know some more details. In end the all of my config seemed to be correct, but there was a problem with an initialization routine of one of the network classes. I have two identical boards which are mounted from einfochips.com. These are from a beta version charge and have a known problem with network system. The class resets a register and waits for the board to confirm the reset, but this never happens. Although thats not true, sometimes it works, and sometimes it doesn't. I checked that several times with identical code, but different day time.

    There was a pdf from einfochip with a solution, but I can't find it right now and for me it didn't work.

  • Hi Martin,

    Thanks for your reply. I am still stuck with linker errors with undefined symbols such as Convert_CoreLocal2GlobalAddr. 

    Good luck with your development project.

    Regards,

    Geraldine