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.

C5505 ezdsp Linkage Failure

Starting to learn how to program for the USB Stick, starting with the TMS320 DSB/BIOS v5.40 User's Guide - spru423g, section 2.1.

Unable to build a project due to linkage failure - Unable to determine the cause of the linkage failure.

Build Failure - Project hellobias5

Project entered as defined in TMS320 DSP/BIOS v5.40 User's Guide section 2.1 except with
following selections:
Project Type: C5500 instead of C6000
Device Varient: TMS320C55XX instead of Generic 64x+ Device
Runtime Support Library: rts55h.lib
Used TI Simulator: C55x+ CPU Cycle Accurate Simulator

**** Build of configuration Debug for project hellobias5 ****

C:\Program Files\Texas Instruments\ccsv4\utils\gmake\gmake -k all
'Building file: ../hellobias5.tcf'
'Invoking: TConf Script Compiler'
"C:/Program Files/Texas Instruments/xdctools_3_15_03_67/tconf" -b -Dconfig.importPath="C:/Program

Files/Texas Instruments/bios_5_40_03_23/packages"; "../hellobias5.tcf"
'Finished building: ../hellobias5.tcf'
' '
'Building file: ../hellobias5.c'
'Invoking: C5500 Compiler'
"C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c5500/bin/cl55" -v5505 -g

--include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c5500/include"

--include_path="F:/ez-dsp Work Folder/hellobias5/Debug" --include_path="C:/Program Files/Texas

Instruments/bios_5_40_03_23/packages/ti/bios/include" --include_path="C:/Program Files/Texas

Instruments/bios_5_40_03_23/packages/ti/rtdx/include/c5500" --diag_warning=225 --sat_reassoc=off

--ptrdiff_size=32 --fp_reassoc=off --memory_model=huge --asm_source=mnemonic --preproc_with_compile

--preproc_dependency="hellobias5.pp"  "../hellobias5.c"
'Finished building: ../hellobias5.c'
' '
'Building file: hellobias5cfg.s??'
'Invoking: C5500 Compiler'
"C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c5500/bin/cl55" -v5505 -g

--include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c5500/include"

--include_path="F:/ez-dsp Work Folder/hellobias5/Debug" --include_path="C:/Program Files/Texas

Instruments/bios_5_40_03_23/packages/ti/bios/include" --include_path="C:/Program Files/Texas

Instruments/bios_5_40_03_23/packages/ti/rtdx/include/c5500" --diag_warning=225 --sat_reassoc=off

--ptrdiff_size=32 --fp_reassoc=off --memory_model=huge --asm_source=mnemonic --preproc_with_compile

--preproc_dependency="hellobias5cfg.pp"  ""
Command-line error: missing source file name
1 fatal error detected in this compilation.
Compilation terminated.

>> Compilation failure
C:\Program Files\Texas Instruments\ccsv4\utils\gmake\gmake: *** [hellobias5cfg.obj] Error 1
'Building file: hellobias5cfg_c.c'
'Invoking: C5500 Compiler'
"C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c5500/bin/cl55" -v5505 -g

--include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c5500/include"

--include_path="F:/ez-dsp Work Folder/hellobias5/Debug" --include_path="C:/Program Files/Texas

Instruments/bios_5_40_03_23/packages/ti/bios/include" --include_path="C:/Program Files/Texas

Instruments/bios_5_40_03_23/packages/ti/rtdx/include/c5500" --diag_warning=225 --sat_reassoc=off

--ptrdiff_size=32 --fp_reassoc=off --memory_model=huge --asm_source=mnemonic --preproc_with_compile

--preproc_dependency="hellobias5cfg_c.pp"  ""

Command-line error: missing source file name
1 fatal error detected in this compilation.
Compilation terminated.

>> Compilation failure
C:\Program Files\Texas Instruments\ccsv4\utils\gmake\gmake: *** [hellobias5cfg_c.obj] Error 1
C:\Program Files\Texas Instruments\ccsv4\utils\gmake\gmake: Target `all' not remade because of errors.
Build complete for project hellobias5

Problem Description:
Severity and Description Resource Location
Linking failed.   hellobias5 Unknown

Debug Folder Files:
hellobias5cfg.h, hellobias5cfg_c.c, hellobias5cfg.s55, hellobias5obj - [C5500be],
ccsObjs.opt, hellobias5.cdb, hellobias5.pp, hellobias5cfg.cmd, hellobias5cfg.h55
makefile, objects.mk, sources.mk, subdir.mk

Source Files:
hellobias5.c, hellobias5cfg.h, log.h, std.h, main

Target Configuration File: C55x+ CPU Cycle Accurate Simulator
ezdspsim.ccxml [Active]
hellobias5.tcf

 

  • I installed the C5500 tools including the hex55 v4.3.5 update as suggested in the Flashing in C5505 ezdsp topic, and rebuilt the project.

    The following are the results:

    **** Build of configuration Debug for project hellobias5 ****

     

    C:\Program Files\Texas Instruments\ccsv4\utils\gmake\gmake -k all

    'Building file: hellobias5cfg.s55'

    'Invoking: C5500 Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c5500/bin/cl55" -v5505 -g --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c5500/include" --include_path="F:/ez-dsp Work Folder/hellobias5/Debug" --include_path="C:/Program Files/Texas Instruments/bios_5_40_03_23/packages/ti/bios/include" --include_path="C:/Program Files/Texas Instruments/bios_5_40_03_23/packages/ti/rtdx/include/c5500" --diag_warning=225 --sat_reassoc=off --ptrdiff_size=32 --fp_reassoc=off --memory_model=huge --asm_source=mnemonic --preproc_with_compile --preproc_dependency="hellobias5cfg.pp" "hellobias5cfg.s55"

    'Finished building: hellobias5cfg.s55'

    ' '

    'Building file: hellobias5cfg_c.c'

    'Invoking: C5500 Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c5500/bin/cl55" -v5505 -g --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c5500/include" --include_path="F:/ez-dsp Work Folder/hellobias5/Debug" --include_path="C:/Program Files/Texas Instruments/bios_5_40_03_23/packages/ti/bios/include" --include_path="C:/Program Files/Texas Instruments/bios_5_40_03_23/packages/ti/rtdx/include/c5500" --diag_warning=225 --sat_reassoc=off --ptrdiff_size=32 --fp_reassoc=off --memory_model=huge --asm_source=mnemonic --preproc_with_compile --preproc_dependency="hellobias5cfg_c.pp" "hellobias5cfg_c.c"

    'Finished building: hellobias5cfg_c.c'

    ' '

    'Building target: hellobias5.out'

    'Invoking: C5500 Linker'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c5500/bin/cl55" -z -m"hellobias5.map" --warn_sections -i"C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c5500/lib" -i"C:/Program Files/Texas Instruments/ccsv4/tools/compiler/c5500/include" -i"C:/Program Files/Texas Instruments/bios_5_40_03_23/packages/ti/rtdx/lib/c5500" -i"C:/Program Files/Texas Instruments/bios_5_40_03_23/packages/ti/bios/lib" --reread_libs --rom_model -o "hellobias5.out" -l"./hellobias5cfg.cmd" "./hellobias5cfg_c.obj" "./hellobias5cfg.obj" "./hello.obj" -l"rts55h.lib"

    <Linking>

    fatal error: file "C:/Program Files/Texas

    Instruments/bios_5_40_03_23/packages/ti/bios/lib/bios.a55L<fxn.o55L>"

    specifies large memory model, which is not compatible with huge memory model

    specified in a previous file or on the command line

     

    >> Compilation failure

    C:\Program Files\Texas Instruments\ccsv4\utils\gmake\gmake: *** [hellobias5.out] Error 1

    C:\Program Files\Texas Instruments\ccsv4\utils\gmake\gmake: Target `all' not remade because of errors.

    Build complete for project hellobias5

  • Hi Lee,

    It looks like you are using incompatible memory models:
    The DSPBIOS was built for the LARGE memory model, but your project seems to be using the HUGE memory model. The fastest solution is to configure your project to use the LARGE memory model:

    Build Properties --> Tool Settings --> C5500 Compiler --> Runtime Model Options --> Specify memory model (small/large/huge): Select “large” from the drop down menu.

    Build Properties --> Tool Settings --> C5500 Linker --> File Search Path: --> Double Click on ‘rts55h.lib’ in the box titled “Include library file or command file as input” --> Replace “rts55h.lib” with “rts55x.lib” to use the LARGE memory model.

    Here is the distinction between memory models:

    Small Memory Model: (rts55.lib) 16 bit data address is used for data access.

    Large Memory Model: (rts55x.lib) 23-bit data address is used, but there is memory boundary limitation. The offset address should be within 64K. If offset address goes over 64K, it will be wrapped around.

    Huge Memory Model: (rts55h.lib) 23-bit data address without the 64K boundary limit.


    Hope this helps,

    Mark

  • Hi Mark,

    I made the memory model change to Large for the project as suggested. The project compiled and linked properly after the third build.

    The first two builds complained about the project specifying a future date.

    Thanks

    Lee