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.

TMS320VC5502: C5500 Linker Error #10104

Part Number: TMS320VC5502

In my auto-generated maincfg.cmd linker command file, I have the following memory definition on line 190:

MEMORY {
PAGE 0: DARAM: origin = 0x400, len = 0xcc00
PAGE 0: VECT: origin = 0x200, len = 0x100
PAGE 0: ExtPgm: origin = 0x10000, len = 0x80000

...

}

With the following directives on lines 13-16

-u DARAM
MEM_SEGZERO = DARAM;
-u ExtPgm
MEM_MALLOCSEG = ExtPgm;

error #10234-D: unresolved symbols remain
"C:/MyProducts/atsii/tracking/src/maincfg.cmd", line 14: error #10104:
undefined symbol "DARAM" used in expression
"C:/MyProducts/atsii/tracking/src/maincfg.cmd", line 16: error #10104:
undefined symbol "ExtPgm" used in expression

Does the MEMORY definition on line 190 need to appear before the directives on lines 13-16?  If so, how would I instruct the code generation tools to do that since this is an auto-generated file?

maincfg.cmd lines 1-6:

/* Do *not* directly modify this file. It was */
/* generated by the Configuration Tool; any */
/* changes risk being overwritten. */

/* INPUT main.cdb */

I'm using C5500 Code Generation Tools 4.4.1 with CCS v12.6

Thanks again for your help as I come up to speed on these tools.

  • Note: the problem is likely deeper than what I perceived on first glance.  It's likely related to the following error:

    error #10258-D: section ".const" (0x75d4c) spans page boundary: not allowed
    before CPU revision 3.0
    warning #10254-D: section ".ExtPgm$heap" (0x10000) spans page boundary: not
    allowed before CPU revision 3.0

    undefined first referenced
    symbol in file
    --------- ----------------
    BIOS_init C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<autoinit.o55L>
    BIOS_start C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<boot.o55L>
    CLK_COUNTSPMS C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>
    CLK_HTIMEDIV C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>
    CLK_HTIMEMULT C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>
    CLK_INTID C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<clk_run.o55L>
    CLK_LTIMEDIV C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>
    CLK_LTIMEMULT C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>
    CLK_PRD C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>
    CLK_TDDR C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>
    DARAM
    ExtPgm
    GBL_CLKIN C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>
    GBL_FREQ C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>
    GBL_PROCID C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>
    GBL_TRCMASKVALUE C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<trc.o55L>
    LOG_system C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>
    MEM_gNumHeap C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>
    PRD_SCALAR C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>
    PRD_SWIHANDLE C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>
    SYS$config C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>
    TSK_idle$stkptr C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>
    TSK_idle$sysstkptr C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>
    _MEM_memtab C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>

    error #10234-D: unresolved symbols remain
    "C:/MyProducts/atsii/tracking/src/maincfg.cmd", line 14: error #10104:
    undefined symbol "DARAM" used in expression
    "C:/MyProducts/atsii/tracking/src/maincfg.cmd", line 16: error #10104:
    undefined symbol "ExtPgm" used in expression

    The undefined BIOS symbols are likely due to my adding the BIOS to the original v2.0 project, which didn't have a BIOS component to the best of my knowledge.

    I added the BIOS to satisfy a compiler error when it couldn't find #include <std.h>

    I'll back that out and try to find another std.h

    -dean

  • Hi Dean,

    There is something wrong with the auto generated linker command file. According to the datasheet of the C5502, there are only 64KB on chip DARAM, so the ExtPgm must be external memory. Also I think the C5502 is using CPU rev 2.2, so CPU rev 3.0 is strange. Are you sure you have selected the C5502 in your project?

    Best regards,

    Ming

  • Hi Ming, Here's my General project configuration.

    I noticed my maincfg.cmd was updated by CCS (xdctools?) when I opened my v2.0 main.cdb file.  It saved my main.cdb to main.cdb.Tue_Feb_06_16.45.29_2024 and created the following files:

    • main.tcf
    • main.cfg
    • maincfg.h55
    • maincfg.s55
    • maincfg_c.c

  • Hi Dean,

    Do you have the following screen in you CCS project?

    If yes, what is the Device and memory model in your CCS project?

    Best regards,

    Ming

  • Hi Ming,

    Device is 5502; Memory model is large

  • Hi Dean,

    Can you change the memory model from large to small?

    Best regards,

    Ming

  • Changed memory model to small, --ptrdiff_size to 16, and changed my libraries to the form without 'x' in the name.

    But getting the following fatal error:

    fatal error #16019: file
    "C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55L<biosdata.o55L>"
    specifies large memory model, which is not compatible with small memory

    Not sure where to go to fix this.

  • Hi Dean,

    You may have to re-build the whole project including re-generate the following files:

    • main.tcf
    • main.cfg
    • maincfg.h55
    • maincfg.s55
    • maincfg_c.c

    "C:/ti/bios_5_42_02_10/packages/ti/bios/lib/bios.a55<biosdata.o55>" should have been used.

    Best regards,

    Ming

  • Thanks. I get the following error from xdctools? when I open main.tcf with CCS (after answering the prompt for the xdctools directory as C:\ti\xdctools_3_24_05_48)

    Note: I have a C:/ti/bios_5_42_02_10/packages/ti/bios/config/cdb/c55xx.cdb and c5505.cdb file but not a c5502.cdb file

    =================

    js: "C:/ti/bios_5_42_02_10/packages/ti/bios/config/bios_5502.tci", line 65: Error: Can't find configuration seed: ti/bios/config/cdb/c5502.cdb


    Correct any script errors in C:/Tools/ccs/workspace_v12/.metadata/.plugins/org.eclipse.rtsc.xdctools.buildDefinitions.DSPBIOS/.gconf/main/main/main.tcf
    using the Configuration Tool or a text editor, if necessary.


    TConf initialization arguments:
    -e environment['config.importPath']='C:/MyProducts/atsii/tracking/src/main;C:/ti/bios_5_42_02_10/packages;' -e environment['config.scriptName']='main.tcf'

  • Hi Dean,

    I do not know the dependency for the C55XCSL-SPRC133 i.e. the DSP/BIOS version and CGT tool version etc. I will forward this thread to SDTO team for further help!

    Best regareds,

    Ming