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 symbols for SYSBIOS 6.33.5.46

Other Parts Discussed in Thread: SYSBIOS

We have been building on the ARM side of the expOMAPL138 very successfully.

Now we want to get the DSP side up and running so we built a new kernel with similuare settings as our ARM for the DSP.

When we get to the point of doing the final link we get several unresolved symbols that should be resolved.with the DSP SYSBIOS.  The application is just the default for a CCS Project that has seperat SYSBIOS project.  CCS version is 5.2.1.00018

0245.app.cfg

 

Here are the errors:

<Linking>

undefined first referenced

>> Compilation failure

symbol in file

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

_ti_sysbios_BIOS_exit__E ./src/main.obj

_ti_sysbios_BIOS_start__E ./src/main.obj

_ti_sysbios_knl_Task_Object__create__S ./src/main.obj

_ti_sysbios_knl_Task_sleep__E ./src/main.obj

_xdc_runtime_Error_init__E ./src/main.obj

_xdc_runtime_System_printf__E ./src/main.obj

error #10234-D: unresolved symbols remain

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

  • I was able to reproduce precisely the symptoms you show but it was due to there being an error in the configuration part of the project.

    Once I cleared that up, the link proceeded successfully.

    In your CCS config project view, do you see any indications of errors (ie red 'x's)?

    If so, open the config file using the text editor and it will show you which config statements are causing problems.

    Alan

  • No red 'x's.

    Now what?

     

  • So I discovered the quick Fix function.  It tells me to do things like:

    Add this to your config file: var ti_sysbios_BIOS = xdc.useModule('ti.sysbios.BIOS');

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

    So I commented out the one and added the other, changed all the names to match, but it still fails.

    Gives the same thing about Tasks and Error but they are defined also.

     

  • Hi Mike,

    Just to confirm...when you rebuild the .cfg file, you get no errors or warnings. Is this correct?

    Can you include the build output from both the configuration build and from the application build?

    Todd

  • Correct no errors with build of .cfg file.

    Here is the build of the cfg.

    **** Build of configuration Default for project SYSBIOS_DSP_configuration ****

    C:\TI\ccsv5\utils\bin\gmake -k all

    'Building target: configPkg/linker.cmd'

    'Invoking: XDCtools'

    "C:/TI/xdctools_3_23_03_53/xs" --xdcpath="C:/TI/bios_6_33_05_46/packages;C:/TI/ipc_1_24_03_32/packages;C:/TI/uia_1_01_00_04/packages;C:/TI/xdais_7_21_01_07/packages;C:/TI/xdais_7_21_01_07/examples;C:/CCS/platform;C:/TI/ccsv5/ccs_base;C:/TI/dsplib_c674x_3_1_0_0/packages;C:/TI/edma3_lld_02_11_05_02/packages;" xdc.tools.configuro -o configPkg -t ti.targets.elf.C674 -p bh.platform.dsp.expOMAPL138 -r debug -c "C:/TI/ccsv5/tools/compiler/c6000_7.3.7" --compileOptions "-g --optimize_with_debug" ../app.cfg

    making package.mak (because of package.bld) ...

    generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...

    configuring app.xe674 from package/cfg/app_pe674.cfg ...

    generating custom ti.sdo.ipc library makefile ...

    generating custom ti.sysbios library makefile ...

    Starting build of library sources ...

    making C:/CCS/VSLED_Source_Code/SYSBIOS_DSP_configuration/src/sysbios/sysbios.lib ...

    making C:/CCS/VSLED_Source_Code/SYSBIOS_DSP_configuration/src/ipc/ipc.lib ...

    Build of libraries done.

    cle674 package/cfg/app_pe674.c ...

    'Finished building target: configPkg/linker.cmd'

    ' '

    **** Build Finished ****

     

    Here is the build of the Executable DSP Application:

    **** Build of configuration Debug for project DSP_Main ****

    C:\TI\ccsv5\utils\bin\gmake -k all

    'Building file: ../DSP_Main.cfg'

    'Invoking: XDCtools'

    "C:/TI/xdctools_3_23_03_53/xs" --xdcpath="C:/TI/ipc_1_24_03_32/packages;C:/TI/bios_6_33_05_46/packages;C:/TI/uia_1_01_00_04/packages;C:/TI/xdais_7_21_01_07/packages;C:/TI/xdais_7_21_01_07/examples;C:/TI/ccsv5/ccs_base;C:/CCS/platform;C:/TI/dsplib_c674x_3_1_0_0/packages;C:/TI/edma3_lld_02_11_05_02/packages;" xdc.tools.configuro -o configPkg -t ti.targets.elf.C674 -p bh.platform.dsp.expOMAPL138 -r debug -c "C:/TI/ccsv5/tools/compiler/c6000_7.3.7" "../DSP_Main.cfg"

    making package.mak (because of package.bld) ...

    generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...

    configuring DSP_Main.xe674 from package/cfg/DSP_Main_pe674.cfg ...

    cle674 package/cfg/DSP_Main_pe674.c ...

    'Finished building: ../DSP_Main.cfg'

    ' '

    'Building file: ../src/main.c'

    'Invoking: C6000 Compiler'

    "C:/TI/ccsv5/tools/compiler/c6000_7.3.7/bin/cl6x" -mv6740 -g --define=xdc__strict --define=VSLED_DEBUG --include_path="C:/TI/ccsv5/tools/compiler/c6000_7.3.7/include" --include_path="C:/CCS/VSLED_Source_Code/Vibration_Monitoring_DSP/h" --display_error_number --diag_warning=225 --abi=eabi --preproc_with_compile --preproc_dependency="src/main.pp" --obj_directory="src" --cmd_file="./configPkg/compiler.opt" "../src/main.c"

    'Finished building: ../src/main.c'

    ' '

    'Building target: DSP_Main.out'

    'Invoking: C6000 Linker'

    "C:/TI/ccsv5/tools/compiler/c6000_7.3.7/bin/cl6x" -mv6740 -g --define=xdc__strict --define=VSLED_DEBUG --display_error_number --diag_warning=225 --abi=eabi -z -m"DSP_Main.map" --warn_sections -i"C:/TI/ccsv5/tools/compiler/c6000_7.3.7/lib" -i"C:/TI/dsplib_c674x_3_1_0_0/lib" -i"C:/TI/ccsv5/tools/compiler/c6000_7.3.7/include" --reread_libs --ram_model --preferred_order=_c_int00 -o "DSP_Main.out" -l"./configPkg/linker.cmd" "./src/main.obj" -l"libc.a" -l"dsplib.ae674" -l"C:\CCS\VSLED_Source_Code\Vibration_Monitoring_DSP\Debug\Vibration_Monitoring_DSP.lib"

    <Linking>

    undefined first referenced

    symbol in file

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

    >> Compilation failure

    ti_sysbios_BIOS_exit__E ./src/main.obj

    ti_sysbios_BIOS_start__E ./src/main.obj

    ti_sysbios_knl_Task_Object__create__S ./src/main.obj

    ti_sysbios_knl_Task_sleep__E ./src/main.obj

    xdc_runtime_Error_init__E ./src/main.obj

    error #10234-D: unresolved symbols remain

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

    gmake: *** [DSP_Main.out] Error 1

    gmake: Target `all' not remade because of errors.

    **** Build Finished ****

    Here is what is in the problem window from the DSP Main:

    Description Resource Path Location Type
    #10010 errors encountered during linking; "DSP_Main.out" not built DSP_Main    C/C++ Problem
    <a href="file:/C:/TI/ccsv5/tools/compiler/dmed/HTML/10234.html">#10234-D</a>  unresolved symbols remain DSP_Main    C/C++ Problem
    unresolved symbol >>, first referenced in Compilation DSP_Main    C/C++ Problem

    Here is what is in the problem window from the CFG file:

    Description Resource Path Location Type
    Unresolved symbol ti_sysbios_BIOS_exit__E in file ./src/main.obj .xdchelp /SYSBIOS_DSP_configuration 0 C/C++ Problem
    Unresolved symbol ti_sysbios_BIOS_start__E in file ./src/main.obj .xdchelp /SYSBIOS_DSP_configuration 0 C/C++ Problem
    Unresolved symbol ti_sysbios_knl_Task_Object__create__S in file ./src/main.obj .xdchelp /SYSBIOS_DSP_configuration 0 C/C++ Problem
    Unresolved symbol ti_sysbios_knl_Task_sleep__E in file ./src/main.obj .xdchelp /SYSBIOS_DSP_configuration 0 C/C++ Problem
    Unresolved symbol xdc_runtime_Error_init__E in file ./src/main.obj .xdchelp /SYSBIOS_DSP_configuration 0 C/C++ Problem

    And I attached the cfg file again just to make sure - been playing with it quiet a bit to get over this:

    3817.app.cfg

     

  • Thanks. I see two issues

    1. Why do you have two .cfg files: app.cfg in the configuration project and DSP_Main.cfg in the application project.Unless you have a reason to have the separate .cfg project, why not just do all the SYS/BIOS configuration in the application project.

    2. your main.c is in a directory called "src". When you do a custom SYS/BIOS build, it creates a "src" directory and puts the object files there. You already having this directory might be causing problems. Can to rename your "src" directory to "appSrc" (or something). Yea, we know in hindsight that we should have made the name "sysbiossrc" or something:(

    Todd

  • ToddMullanix said:

     Yea, we know in hindsight that we should have made the name "sysbiossrc" or something:(

    The name of the custom build directory is configurable. This statement would leave 'src' available for the app source code:

    xdc.module("xdc.cfg.SourceDir").outputDir = "./biossrc";

  • OOOO I learn something new!  Its a good day...

    How about ../../sysbios_src?  It looks like "." is Default/configPkg.

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

    We have to have the DSP_Main.cfg (its an empty file) becasue we get the following when we dont have it:

    Buildfile generation error occurred..

    This project does not contain a buildable RTSC Configuration (.cfg) file. In order for it to build, this project must contain one RTSC Configuration file that is not excluded from build.

    Build stopped..

    Description Resource Path Location Type
    This project does not contain a buildable RTSC Configuration (.cfg) file. In order for it to build, this project must contain one RTSC Configuration file that is not excluded from build. DSP_Main  DSP_Main TI Problem Marker

    6303.app.cfg

     

     

     

  • Mike,

    Which way do you want to have your application setup

    A. One project: application and SYS/BIOS together

    B. Two projects: 1 for your application and 1 for the SYS/BIOS configuration

    I prefer "A" because it's easier to manage, but "B" might be better if you have common shared SYS/BIOS configuration

    Todd

  • B!

    Technically we have about 10 Projects.  We have 8 engineers working on this program so it was just easier to have everybody have their own project, share a SYSBIOS, and then have one project be the final executable.

    Thanks,

  • I tried option A and that seems to work.

    So what is the trick to get B to work?

  • Once you create a project as a RTSC-project (e.g. with a .cfg file), you cannot reverse it. You need to make a new (non-RTSC) project and add the compiler.opt (and other things) as specified in the "Compiling and Linking" section of the SPRUEX4 ("XDC Consumer User’s Guide").

    There are SYS/BIOS examples (Task) which have both the single project and the config & app projects.

    Todd