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.

Compiler/TMS320VC5510A: Linker error within cmd file - auto-generated from associated .tcf file

Part Number: TMS320VC5510A
Other Parts Discussed in Thread: TLV5630

Tool/software: TI C/C++ Compiler

Hello there,

 

I have an issue when using the following tools

CCS V5.3.0.00090 with C/C++ compiler 4.4.1 and DSP/BIOS 5.42.0.07.

I have recently needed to modify a project undertaken under CCS V1.0 and DSP/BIOS 4.90.???

After manually creating the .tcf file using the original .cdb file, i.e. not using a conversion utility, I am now able to compile the source files. Unfortunately, the linking stage fails with the following error –

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

Building target: lme.out'

'Invoking: C5500 Linker'

"C:/ti/ccsv5/tools/compiler/c5500_4.4.1/bin/cl55" -v5510A

--memory_model=large -g

--define=vc5510a --display_error_number --diag_warning=225

--ptrdiff_size=32 -z -m"lme.map" --stack_size=0x200

--heap_size=0x400 -i"C:/ti/ccsv5/tools/compiler/c5500_4.4.1/lib"

-i"C:/ti/ccsv5/tools/compiler/c5500_4.4.1/include"

-i"C:/ti/bios_5_42_00_07/packages/ti/rtdx/lib/c5500"

-i"C:/ti/bios_5_42_00_07/packages/ti/bios/lib" -i"C:/ti/C55xxCSL/lib"

-i"C:/Users/dpowell/workspace_v5_3/lme/Debug"

-i"C:/Users/dpowell/workspace_v5_3/lme/Debug/source/application"

-i"C:/Users/dpowell/workspace_v5_3/lme/Debug/source/drivers"

--diag_suppress=10190 --warn_sections --ram_model

--sys_stacksize=0x200

--fill_value=0xFFFF -o "lme.out" -l"./lme-supy-dsp-bioscfg.cmd" "./source/application/thrSupyProc.obj" "./source/application/thrRxLEDControl.obj" "./source/application/thrPassiveSupyProc.obj" "./source/application/thrControl.obj" "./source/application/nco.obj" "./source/application/appXteraSupy.obj" "./source/application/appThreads.obj" "./source/application/appSupyRxFilters.obj" "./source/application/appStcSupy.obj" "./source/application/appResources.obj" "./source/application/appPassiveSupy.obj" "./source/application/appMain.obj" "./source/application/appIO.obj" "./source/application/appAlcatelSupy.obj" "./source/drivers/tlv5630.obj" "./source/drivers/pio.obj" "./source/drivers/dma_tlv5630.obj" "./source/drivers/dma_ad7663.obj" "./source/drivers/devParams.obj" "./source/drivers/csl_config.obj" "./source/drivers/c55xx_dma_mcbsp.obj" "./source/drivers/ad7663.obj" "./lme-supy-dsp-bioscfg_c.obj" "./lme-supy-dsp-bioscfg.obj"

-l"C:\ti\C55xxCSL\lib\csl5510PG2_2x.lib"

-l"C:\ti\dsplib_2.40.00\55xdspx.lib"

-l"C:\ti\ccsv5\tools\compiler\c5500_4.4.1\lib\rts55x.lib"

-l"rts55x.lib"

<Linking>

"C:/Users/dpowell/workspace_v5_3/lme/Debug/./lme-supy-dsp-bioscfg.cmd", line 402: error:

>> Compilation failure

   filename or assignment expected instead of "("

"C:/Users/dpowell/workspace_v5_3/lme/Debug/./lme-supy-dsp-bioscfg.cmd", line 402: error: cannot find file ".hwi_vec"

"C:/Users/dpowell/workspace_v5_3/lme/Debug/./lme-supy-dsp-bioscfg.cmd", line 402: warning #10068-D: no matching section

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

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

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

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

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

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

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

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

 

**** Build Finished ****

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

 

I have realised that the error is due to a syntax error in the linker command file, i.e. the lines

.hwi_vec: align = 0x100 {

     (.hwi_vec)

} RUN_START(HWI_A_VECS), …

 

Should be

.hwi_vec: align = 0x100 {

     *(.hwi_vec)

} RUN_START(HWI_A_VECS), …

 

My question is – is there any way of controlling/modifying the automatic generation of this linker command file (from the .tcf file) to correct this error rather than me having to modify the command file manually each time a new one is needed to be created? I am also hoping to add the missing SECTIONS lines to deal with the other warnings.

I am aware that CCS V5 is not currently supported but the thought of jumping straight from CCS V1 to CCS V7 was too daunting and I am hoping to at least rebuild the project with CCS V5 before then steeling myself to tackling the jump from CCS V5 to CCS V7.

 

Any assistance would be appreciated.

  • You can try setting
    bios.MEM.USERCOMMANDFILE = true;
    This will allow you to have your own linker command file and the automatically generated SECTIONS directive will not be added to the generated linker command file. But, you have to include the generated linker command file because you need the rest of it for your code to link.
    I am saying all this based on a vague recollection how that all works. I might be wrong, but trying using that parameter and see what happens. Please report back in case the fix doesn't work immediately.
  • Thanks Sasha for the prompt response.

    Having set "bios.MEM.USERCOMMANDFILE = true;" and "bios.MEM.ENABLELOADADDR = false;" then the the following is generated automatically and correctly (?)

    .hwi_vec: align = 0x100 {

         *(.hwi_vec)

    } RUN_START(HWI_A_VECS), …

    All good so far.

    However, I now appear to be unable to #include the auto-generated linker command file. I have unchecked Project-Properties->Build->Builder->Use-default-build-command and entered an alternative build command, i.e.

    ${CCS_UTILS_DIR}/bin/gmake –l”C:\ti\projects\dsp_xsp\dsk5510\lme-supy-dsp-bioscfg-addendum.cmd –k

    This command file then #includes the auto-generated linker command.

    This link process now gives the following errors during linking (I still have not dealt with the missing SECTIONS script but I have assumed that this is not relevant to the #include issue) –

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

    "C:\\ti\\ccsv5\\utils\\bin\\gmake" "-lC:\\ti\\projects\\dsp_xsp\\dsk5510\\lme-supy-dsp-bioscfg-addendum.cmd" -k all

    'Building target: lme.out'

    'Invoking: C5500 Linker'

    "C:/ti/ccsv5/tools/compiler/c5500_4.4.1/bin/cl55" -v5510A --memory_model=large

    -g --define=vc5510a --display_error_number --diag_warning=225 --ptrdiff_size=32 -z -m"lme.map" --stack_size=0x200 --heap_size=0x400 -i"C:/ti/ccsv5/tools/compiler/c5500_4.4.1/lib" -i"C:/ti/ccsv5/tools/compiler/c5500_4.4.1/include" -i"C:/ti/bios_5_42_00_07/packages/ti/rtdx/lib/c5500" -i"C:/ti/bios_5_42_00_07/packages/ti/bios/lib" -i"C:/ti/C55xxCSL/lib" -i"C:/Users/dpowell/workspace_v5_3/lme/Debug" -i"C:/Users/dpowell/workspace_v5_3/lme/Debug/source/application" -i"C:/Users/dpowell/workspace_v5_3/lme/Debug/source/drivers" --diag_suppress=10190

    --warn_sections --ram_model --sys_stacksize=0x200 --fill_value=0xFFFF -o "lme.out"

    -l"./lme-supy-dsp-bioscfg.cmd" "./source/application/thrSupyProc.obj" "./source/application/thrRxLEDControl.obj" "./source/application/thrPassiveSupyProc.obj" "./source/application/thrControl.obj" "./source/application/nco.obj" "./source/application/appXteraSupy.obj" "./source/application/appThreads.obj" "./source/application/appSupyRxFilters.obj" "./source/application/appStcSupy.obj" "./source/application/appResources.obj" "./source/application/appPassiveSupy.obj" "./source/application/appMain.obj" "./source/application/appIO.obj" "./source/application/appAlcatelSupy.obj" "./source/drivers/tlv5630.obj" "./source/drivers/pio.obj" "./source/drivers/dma_tlv5630.obj" "./source/drivers/dma_ad7663.obj" "./source/drivers/devParams.obj" "./source/drivers/csl_config.obj" "./source/drivers/c55xx_dma_mcbsp.obj" "./source/drivers/ad7663.obj" "./lme-supy-dsp-bioscfg_c.obj" "./lme-supy-dsp-bioscfg.obj" -l"C:\ti\C55xxCSL\lib\csl5510PG2_2x.lib" -l"C:\ti\dsplib_2.40.00\55xdspx.lib" -l"C:\ti\ccsv5\tools\compiler\c5500_4.4.1\lib\rts55x.lib" -l"rts55x.lib" "C:/ti/projects/dsp_xsp/dsk5510/lme-supy-dsp-bioscfg-addendum.cmd"

    <Linking>

    "C:/ti/projects/dsp_xsp/dsk5510/lme-supy-dsp-bioscfg-addendum.cmd", line 7: error:

     >> Compilation failure

       can't open file:

       "C:\Users\dpowell\workspace_v5_3\lme\Debug/lme-supy-dsp-bioscfg.cmd"

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

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

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

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

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

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

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

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

     

    **** Build Finished ****

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

    Both linker command files, i.e.

    C:\Users\dpowell\workspace_v5_3\lme\Debug/lme-supy-dsp-bioscfg.cmd

    and

    "./lme-supy-dsp-bioscfg.cmd"

    are visible in Windows explorer and appear to be accessible.

    Again, any assitance would be appreciated.

    Thanks,

    David.

  • David,
    Try using forward slashes C:/Users/dpowell/workspace_v5_3/lme/Debug/lme-supy-dsp-bioscfg.cmd
  • Hello Sasha,

    I have already tried using both forward and back slashes and have the same results.

  • Hello Sasha,

    I'm now using a single linker command file to avoid any #include problems, though I have to modify the permissions to prevent CCS from overwriting this file (even when Generate Make files automatically is unchecked). I'm not sure why I have to do this and it is a little clunky to have to unchange the security permissions each time the linker command file has to change but it seems to work.

    Once I have the build working then I will look at moving to CCS V7 but I am not relishing it!

    Thanks for your assistance.

    Kind regards,
    David.