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.

Failing to build of image processing demo in mcsdk_bios_3_01_03_06

Other Parts Discussed in Thread: SYSBIOS

Hi,

I try to (re)build the image processing demo in MCDSK 3.1.3.6 but it fails with linking problems.

Building under CCS Version: 6.0.1.00040, efter importing project using
Projects -> Import CCS Projects... and selecting 
/home/klint/ti/mcsdk_bios_3_01_03_06/demos/image_processing at Browse and finally
image_processing_evmtci6638k2k_slave in the list of detected projects.

Regards,
/Anders Klint

Build log below:

**** Build of configuration Debug for project image_processing_evmtci6638k2k_slave ****

/home/klint/ti/ccsv6/utils/bin/gmake -k all
Building file: ../image_processing_evmtci6638k2k_slave.cfg
Invoking: XDCtools
"/home/klint/ti/xdctools_3_30_05_60/xs" --xdcpath="/home/klint/ti/ipc_3_35_01_07/packages;/home/klint/ti/ccsv6/ccs_base;/home/klint/ti/imglib_c66x_3_1_1_0/packages;/home/klint/ti/mcsdk_bios_3_01_03_06/demos;/home/klint/ti/bios_6_41_00_26/packages;" xdc.tools.configuro -o configPkg -t ti.targets.elf.C66 -p ti.platforms.evmTCI6638K2K -r release -c "/home/klint/ti/ccsv6/tools/compiler/c6000_7.4.14" "../image_processing_evmtci6638k2k_slave.cfg"
making package.mak (because of package.bld) ...
generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
configuring image_processing_evmtci6638k2k_slave.xe66 from package/cfg/image_processing_evmtci6638k2k_slave_pe66.cfg ...
Program.cpu.deviceName = TMS320TCI6638
Program.platformName = ti.platforms.evmTCI6638K2K
generating custom ti.sysbios library makefile ...
Starting build of library sources ...
making /home/klint/workspace_Argus/image_processing_evmtci6638k2k_slave/src/sysbios/sysbios.ae66 ...
gmake[1]: Entering directory `/home/klint/workspace_Argus/image_processing_evmtci6638k2k_slave/src/sysbios'
cle66 /home/klint/ti/bios_6_41_00_26/packages/ti/sysbios/BIOS.c ...
asme66 /home/klint/ti/bios_6_41_00_26/packages/ti/sysbios/family/c64p/Exception_asm.s64P ...
asme66 /home/klint/ti/bios_6_41_00_26/packages/ti/sysbios/family/c64p/Hwi_asm.s62 ...
asme66 /home/klint/ti/bios_6_41_00_26/packages/ti/sysbios/family/c64p/Hwi_asm_switch.s62 ...
asme66 /home/klint/ti/bios_6_41_00_26/packages/ti/sysbios/family/c64p/Hwi_disp_always.s64P ...
asme66 /home/klint/ti/bios_6_41_00_26/packages/ti/sysbios/family/c62/TaskSupport_asm.s62 ...
asme66 /home/klint/ti/bios_6_41_00_26/packages/ti/sysbios/timers/timer64/Timer_asm.s64P ...
are66 BIOS.obj c64p_Exception_asm.obj c64p_Hwi_asm.obj c64p_Hwi_asm_switch.obj c64p_Hwi_disp_always.obj c62_TaskSupport_asm.obj timer64_Timer_asm.obj ...
gmake[1]: Leaving directory `/home/klint/workspace_Argus/image_processing_evmtci6638k2k_slave/src/sysbios'
Build of libraries done.
cle66 package/cfg/image_processing_evmtci6638k2k_slave_pe66.c ...
Finished building: ../image_processing_evmtci6638k2k_slave.cfg

Building target: image_processing_evmtci6638k2k_slave.out
Invoking: C6000 Linker
"/home/klint/ti/ccsv6/tools/compiler/c6000_7.4.14/bin/cl6x" -mv6600 --abi=eabi -g --define=SLAVE_CORE --display_error_number --diag_warning=225 -z -m"image_processing_evmtci6638k2k_slave.map" -i"/home/klint/ti/ccsv6/tools/compiler/c6000_7.4.14/lib" -i"/home/klint/ti/imglib_c66x_3_1_1_0/lib" -i"/home/klint/ti/ccsv6/tools/compiler/c6000_7.4.14/include" --reread_libs --warn_sections --display_error_number --xml_link_info="image_processing_evmtci6638k2k_slave_linkInfo.xml" --rom_model -o "image_processing_evmtci6638k2k_slave.out" -l"./configPkg/linker.cmd" -l"imglib.ae66" -l"libc.a"
<Linking>

undefined first referenced
symbol in file
--------- ----------------
main /home/klint/ti/ccsv6/tools/compiler/c6000_7.4.14/lib/rts6600_elf.lib<args_main.obj>

error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking;
"image_processing_evmtci6638k2k_slave.out" not built

gmake: *** [image_processing_evmtci6638k2k_slave.out] Error 1
>> Compilation failure
gmake: Target `all' not remade because of errors.

**** Build Finished ****

  • Hi Anders,

    Able to build the project, "image_processing\ipc\evmtci6638k2k\slave" from my end.

    I compared the linker command of mine ( given below) with yours and noticed the only difference as using "C6000_7.4.5/lib" instead of "c6000_7.4.14/lib". Try using "C:/ti/ccsv5/tools/compiler/C6000_7.4.5/lib".

    Linker command :

    -mv6600 --abi=eabi -g --define=SLAVE_CORE --display_error_number --diag_warning=225 -z -m"image_processing_evmtci6638k2k_slave.map" -i"C:/ti/ccsv5/tools/compiler/C6000_7.4.5/lib" -i"C:/ti/imglib_c66x_3_1_1_0/lib" -i"C:/ti/ccsv5/tools/compiler/C6000_7.4.5/include" --reread_libs --warn_sections --display_error_number --xml_link_info="image_processing_evmtci6638k2k_slave_linkInfo.xml" --rom_model

    ----

  • Hi Shankari,

    I did not have 7.4.5 installed, but tried with an existing 7.4.8 - same result (build fails).

    Considering that the output actually says that it is "main" that is missing I doubt that the compiler version is the (only) problem.

    When I expand the entry for the imported project (screenshot attached) it seems that there must be source code missing.
    The mcsdk tree contains what seems to be relevant source under .../image_processing/ipc/slave,
    but as of yet I don't find any reference to that from .../image_processing/ipc/evmtci6638k2k

    Could I be doing something wrong when importing the project?

    Regards

    /Anders

  • Hi Shankari,

    It also seems that there is a ccs5 vs ccs6 difference, but as I understand ccs6 IS supported as development environment?

    Do you have any input on the apparently missing source code in my imported project?

    Regards
    /Anders

  • Hi Anders,

    Anders said:
    Do you have any input on the apparently missing source code in my imported project?


    yes, exactly. The path you have given for importing the project is wrong. You should give the appropriate path something like below.

    "C:\ti\mcsdk_bios_3_01_03_06\demos\image_processing\ipc\evmtci6638k2k\slave" Where in you will find the *.ccsproject, .cproject.

    -----
  • Hi Shankari,

    I'm pretty sure that was the path I used, but for safety's sake I deleted the project and re-import it.

    Using path as per this screenshot:

    Content of project after successful import:

    Then selecting "Build project" from drop-down menu fails as before, build log below:

    **** Clean-only build of configuration Debug for project image_processing_evmtci6638k2k_slave ****

    /home/klint/ti/ccsv6/utils/bin/gmake -k clean
    rm -rf "image_processing_evmtci6638k2k_slave.out" "configPkg/linker.cmd" "configPkg/compiler.opt"
    rm -rf "configPkg/"
    Finished clean

    **** Build Finished ****

    **** Build of configuration Debug for project image_processing_evmtci6638k2k_slave ****

    /home/klint/ti/ccsv6/utils/bin/gmake -k all
    Building file: ../image_processing_evmtci6638k2k_slave.cfg
    Invoking: XDCtools
    "/home/klint/ti/xdctools_3_30_05_60/xs" --xdcpath="/home/klint/ti/ipc_3_35_01_07/packages;/home/klint/ti/ccsv6/ccs_base;/home/klint/ti/imglib_c66x_3_1_1_0/packages;/home/klint/ti/mcsdk_bios_3_01_03_06/demos;/home/klint/ti/bios_6_41_00_26/packages;" xdc.tools.configuro -o configPkg -t ti.targets.elf.C66 -p ti.platforms.evmTCI6638K2K -r release -c "/home/klint/ti/ccsv6/tools/compiler/c6000_7.4.14" "../image_processing_evmtci6638k2k_slave.cfg"
    making package.mak (because of package.bld) ...
    generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
    configuring image_processing_evmtci6638k2k_slave.xe66 from package/cfg/image_processing_evmtci6638k2k_slave_pe66.cfg ...
    Program.cpu.deviceName = TMS320TCI6638
    Program.platformName = ti.platforms.evmTCI6638K2K
    generating custom ti.sysbios library makefile ...
    Starting build of library sources ...
    making /home/klint/workspace_Argus/image_processing_evmtci6638k2k_slave/src/sysbios/sysbios.ae66 ...
    gmake[1]: Entering directory `/home/klint/workspace_Argus/image_processing_evmtci6638k2k_slave/src/sysbios'
    cle66 /home/klint/ti/bios_6_41_00_26/packages/ti/sysbios/BIOS.c ...
    asme66 /home/klint/ti/bios_6_41_00_26/packages/ti/sysbios/family/c64p/Exception_asm.s64P ...
    asme66 /home/klint/ti/bios_6_41_00_26/packages/ti/sysbios/family/c64p/Hwi_asm.s62 ...
    asme66 /home/klint/ti/bios_6_41_00_26/packages/ti/sysbios/family/c64p/Hwi_asm_switch.s62 ...
    asme66 /home/klint/ti/bios_6_41_00_26/packages/ti/sysbios/family/c64p/Hwi_disp_always.s64P ...
    asme66 /home/klint/ti/bios_6_41_00_26/packages/ti/sysbios/family/c62/TaskSupport_asm.s62 ...
    asme66 /home/klint/ti/bios_6_41_00_26/packages/ti/sysbios/timers/timer64/Timer_asm.s64P ...
    are66 BIOS.obj c64p_Exception_asm.obj c64p_Hwi_asm.obj c64p_Hwi_asm_switch.obj c64p_Hwi_disp_always.obj c62_TaskSupport_asm.obj timer64_Timer_asm.obj ...
    gmake[1]: Leaving directory `/home/klint/workspace_Argus/image_processing_evmtci6638k2k_slave/src/sysbios'
    Build of libraries done.
    cle66 package/cfg/image_processing_evmtci6638k2k_slave_pe66.c ...
    Finished building: ../image_processing_evmtci6638k2k_slave.cfg

    Building target: image_processing_evmtci6638k2k_slave.out
    Invoking: C6000 Linker
    "/home/klint/ti/ccsv6/tools/compiler/c6000_7.4.14/bin/cl6x" -mv6600 --abi=eabi -g --define=SLAVE_CORE --display_error_number --diag_warning=225 -z -m"image_processing_evmtci6638k2k_slave.map" -i"/home/klint/ti/ccsv6/tools/compiler/c6000_7.4.14/lib" -i"/home/klint/ti/imglib_c66x_3_1_1_0/lib" -i"/home/klint/ti/ccsv6/tools/compiler/c6000_7.4.14/include" --reread_libs --warn_sections --display_error_number --xml_link_info="image_processing_evmtci6638k2k_slave_linkInfo.xml" --rom_model -o "image_processing_evmtci6638k2k_slave.out" -l"./configPkg/linker.cmd" -l"imglib.ae66" -l"libc.a"
    <Linking>

    undefined first referenced
    symbol in file
    --------- ----------------
    main /home/klint/ti/ccsv6/tools/compiler/c6000_7.4.14/lib/rts6600_elf.lib<args_main.obj>

    error #10234-D: unresolved symbols remain
    error #10010: errors encountered during linking;
    "image_processing_evmtci6638k2k_slave.out" not built

    >> Compilation failure
    gmake: *** [image_processing_evmtci6638k2k_slave.out] Error 1
    gmake: Target `all' not remade because of errors.

    **** Build Finished ****

  • Hi Anders,

    It seems, there is some major mistake in your imporitng procedure. If you had followed all the instructions / reply given here in this thread,

    you might have solved it  long back. But still that's OK...

    Refer the screenshot below in which the correct path is provided to pick up the project and its sources.Note that the option for " Copy projects into workspace" should be unchecked.

    In the project explorer screen, check whether you are able to see the folders, slave --> src --> *.c files....

    Please delete the current project from your workspace ( not from disk ) and import the project again like above.

    Let me know if you are not able to succeed still.

    --------

  • Hi Shankari,

    Good news: Finally this is building - also under CCS6 - which is a great step forward!
    Alas I have not been able to run the built binary since I currently get "Internal server error"
    for any image processing demo version I try to run. This is likely related to board setup
    and I will get back with info on result of running as soon as I have them.

    The one thing that I did differently compared to previously was to de-select the option
    "copy to workspace" which was enabled by default. (Why does this make a difference
    in the "buildability" of the imported project?)

    While it sure made a lot of difference, I don't think it is really fair to call this "a major mistake in your importing procedue",
    especially since I so far fail to find any previous instructions that this needs to be done.
    I also believe that I have been following all instructions given here, so if you could clarify which instruction(s) you mean
    that I have failed to follow it may be a great help - and timesaver - to future readers of this thread.

    Regards
    /Anders
  • Anders Klint said:
    While it sure made a lot of difference, I don't think it is really fair to call this "a major mistake in your importing procedue",
    especially since I so far fail to find any previous instructions that this needs to be done.
    I also believe that I have been following all instructions given here, so if you could clarify which instruction(s) you mean
     that I have failed to follow it may be a great help - and timesaver - to future readers of this thread.

    You were using CCS 6.0.1 under Linux.

    With CCS 6.0.1 under Linux importing a project would sometimes to import linked resources correctly, leading to compile / link errors.

    This has been marked as fixed in CCS 6.1 under Linux (see https://e2e.ti.com/support/development_tools/code_composer_studio/f/81/t/337555)

    [The Windows version of CCS 6.0.1 didn't suffer the problem]

  • Hi,

    I have now re-started with a fresh rootfs from the MCSDK 3_01_03_06, which was able to run the image processing demo.

    I then replaced the file image_processing_evmtci6638k2k_slave.out in /usr/share/matrix-gui-2.0/apps/demo_imageproc/bin
    with the one I built earlier as described above.

    Unfortunately the newly built binary fails to produce any output. After specifying the import image, number of cores to use (8)
    and seleting "Run" the web client just waits.

    I have then switched back to the original slave binary which still works.

    Please advice.
    Would it help you if I sent you the built binary?

    Regards
    /Anders