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.

RTOS/TMS320C5534: Adding a custom link (.cmd) file in DSP/BIOS

Part Number: TMS320C5534

Tool/software: TI-RTOS

Hello,

My app is using a C55x and the development envSV7, Linux, DSP/BIOS 5.42. As am Linux, the graphical gconf utility is not available :( so i am editing manually

my .tcf file. The problem is, there are quite a lot of things that are available as "checkbox options" in gconf and juts unvailable in Linux, for example

the CLK manager (i discovered it the hard way ...).  So, is there a file which i could manually alter and would replace what gconf is doing ?RAM is too small

and I have to manually edit the generated .cmd each time I am re-building from scratch the project.

Is there a way to specify (like in the gconf config panel) that the C secitions should go to SARAM instead ?

Thanks

Jacques

  • Hi Jacques,

    I've notified the sw team. They will post their feedback directly here.

    Best Regards,
    Yordan
  • Jacques,
    I don't recall anything that can be done in gconf, and can't be done in a script.
    What problem specifically have you had with CLK?

    As for C sections, look into the documentation for C55, the file is named spru404.pdf. Find Section "MEM Module", and there is a subsection Compiler Sections Tab.
    You'll see there that you can allocate .text with a statement like this one:
    bios.MEM.TEXTSEG = prog.get("SARAM");

    The same goes for other C sections.

  • Hi,
    thanks for this, but i have problems to get it working.
    So, in my .tcf file I have added
    bios.MEM.USERCOMMANDFILE = true;

    Then I created a .cmd file which contains:

    micome-dspcfg.cmd

    SECTIONS {

    .text: {} > SARAM PAGE 0
    .switch: {} > SARAM PAGE 0
    .bss: block(0x20000) {} > SARAM PAGE 0
    .cinit: block(0x20000) {} > SARAM PAGE 0
    .pinit: block(0x20000) {} > SARAM PAGE 0

    GROUP {
    .const: {}
    .printf (COPY): {}
    } > SARAM PAGE 0

    .data: block(0x20000) {} > SARAM PAGE 0
    .cio: {} > SARAM PAGE 0

    audio_algos: {} > SARAM PAGE 0
    }

    I also set the linker search path to include the build directory (to find <projectname>cfg.cmd file
    And in the project settings, I set the .cmd file to be mine.

    Unfortuenatly, the <projname>cfg.cmd file just cannot be found

    Am i missing something ?
    Thaks,
    Jacques
  • An update: I managed to fixed this path problem by enclosing the file name by " ". As it was containing a "-" i guess the linker was fooled.
    But now, i get a tone of errors saying :

    "./micome-dspcfg.cmd", line 137: warning: absolute symbol "_error" being
    redefined
    "./micome-dspcfg.cmd", line 138: warning: absolute symbol "_clockLog" being
    redefined
    "./micome-dspcfg.cmd", line 139: warning: absolute symbol "_GO_Sema" being
    redefined
    "./micome-dspcfg.cmd", line 140: warning: absolute symbol "_HK_Sema" being
    redefined
    "./micome-dspcfg.cmd", line 141: warning: absolute symbol "_IDL_busyObj" being
    redefined
    "./micome-dspcfg.cmd", line 181: warning: absolute symbol "_CLK_PRD" being
    redefined

    baiscally all the symbols defined the the tconf generated .cmd files as if they were re-defined.

    Note that, i also verified that the now generated .cmd file does not define sections for the compiler objects, so
    thats a great improvement

    Any idea ?
    Jacques
  • Hi,
    i solved the issue !!!
    The key is really to exclude the custom.cmd from the build (rihgt click / exclude from build) + do not include the generated file as first line of the custom.cmd.
    Instead, add the ../custom.cmd in the linker file settings (before or after libc.a)

    So, the custom.cmd only contains now :

    SECTIONS {

    .text: {} > SARAM PAGE 0
    .switch: {} > SARAM PAGE 0
    .bss: block(0x20000) {} > SARAM PAGE 0
    .cinit: block(0x20000) {} > SARAM PAGE 0
    .pinit: block(0x20000) {} > SARAM PAGE 0

    GROUP {
    .const: {}
    .printf (COPY): {}
    } > SARAM PAGE 0

    .data: block(0x20000) {} > SARAM PAGE 0
    .cio: {} > SARAM PAGE 0

    audio_algos: {} > SARAM PAGE 0
    }


    and the linker command line shows up (only the end of the linker command line is shwon:

    -l"./micome-dspcfg.cmd" -l"../smartdialer.cmd" -llibc.a

    (smartdialer.cmd is my user linke cmd file :)

    Thanks,
    Jacques