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.

Converting fom syslink/test.bld to configuro

Hello

(again: I found no better forum. Please forgive me if I'm wrong here....)

When I started my dsp project (on an omap3, now its a davinci), it was quite hard to get things running. Lee Hovela helped me very much by suggesting to use syslinks buildScripts/test.bld to compile my code.

Now, my project is up and running and I see a few deficits in test.bld. I read the XDC Getting Started Guide and want to convert the project to use configuro, but It is not as easy as it seems:

 % xs --xdcpath="/opt/ti/ipc_1_23_03_31/packages;/opt/ti/bios_6_32_01_38/packages;/opt/ti/syslink_2_00_02_80/packages;/opt/ti/edma3_lld_02_11_02_04/packages;/home/gru/projects/damian/trunk/DSP/pt/msgq" xdc.tools.configuro -c /opt/ti/C6000CGT7.3.0 -t ti.targets.C674 -p  platforms.ti814x.dsp -b config.bld Damian_ti81xx_dsp.cfg
making package.mak (because of package.bld) ...
configuring Damian_ti81xx_dsp.p674 from package/cfg/Damian_ti81xx_dsp_p674.cfg ...
js: "/opt/ti/syslink_2_00_02_80/packages/ti/syslink/ipc/rtos/package.xs", line 95: Error: Library not found: ti.syslink.ipc.rtos.anull
gmake: *** [package/cfg/Damian_ti81xx_dsp_p674.xdl] Error 1
gmake: *** Deleting file `package/cfg/Damian_ti81xx_dsp_p674.xdl'
gmake: *** [package/cfg/Damian_ti81xx_dsp_p674.xdl] Deleting file `package/cfg/Damian_ti81xx_dsp_p674.h'
gmake: *** [package/cfg/Damian_ti81xx_dsp_p674.xdl] Deleting file `package/cfg/Damian_ti81xx_dsp_p674.c'
js: "/opt/ti/xdctools_3_22_01_21/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.

strace tells me, that configuro is searching for ti.syslink.ipc.rtos.anull in /opt/ti/syslink_2_00_02_80/packages/ti/syslink/ipc/rtos/lib/whole_program_debug, but there are only these files:

% ll /opt/ti/syslink_2_00_02_80/packages/ti/syslink/ipc/rtos/lib/whole_program_debug
total 14192
-rwxrwxrwx 1 root staff 1838184 Aug  8  2011 ti.syslink.ipc.rtos.a64P*
-rwxrwxrwx 1 root staff 1839960 Aug  8  2011 ti.syslink.ipc.rtos.a674*
-rwxrwxrwx 1 root staff 3865436 Aug  8  2011 ti.syslink.ipc.rtos.ae64P*
-rw-rw-r-- 1 gru  gru   3701958 Sep 28  2011 ti.syslink.ipc.rtos.ae674
-rw-rw-r-- 1 gru  gru     33281 Sep 28  2011 ti.syslink.ipc.rtos.ae674.mak
-rwxrwxrwx 1 root staff 3243110 Aug  8  2011 ti.syslink.ipc.rtos.aem3*

I have no idea what "anull" means, but I think something like "ae674" would match my platform better....

when compiling by calling xdc, all is fine, so I have some error in configuring configuro... where should I look?

Thanks,

Markus

  • What compiler are you using?

    What target are you building for?

    It seems like it doesn't know which target you are building for, thus it couldn't find an extension for it and you see the "anull".

    Judah

  • Markus,

    I've attached a SysLink example which builds with configuro. It is a much better approach from using the test.bld script. Unpack the archive file and then edit the ex02_messageq/products.mak file. Set the make variables to the location of your installed products and then simply run make.

    Look in the dsp/makefile if you want to study how configuro is invoked. I hope this example will show you how to convert your project over to using configuro.

    You are using an old release of SysLink. You can get a current release from the following link. The latest release includes the new examples.

    http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/

    ~Ramsey

    ex02_messageq.zip
  • Hello Judah,

    My compiler is

    % cl6x -version
    TMS320C6x C/C++ Compiler                v7.3.0

    I'm building for the C6747 on a  Davinci processor. I used the target switch:  -t ti.targets.C674 (see above).

    I suspected that something went wrong with the target, but what else (besides the -t switch) can/should I do to set the correct target?

    Thanks,

    Markus

  • Hello Ramsey,

    thank you very much for your example! I'll try it today and come back to you :)

    cu

    Markus

  • Hello Judah,

    well, if this isn't teamwork :) You were right, the target was wrong − and by using Ramseys example, I was able to find the correct one: -t  ti.targets.elf.C674

    Thanks to both of you. Now I'll see if I try to create my own Makefile or adjust Ramseys :)

    cu

    Markus

  • Hello Ramsey,

    I'm currently adapting your example to my existing sources (and vice versa ;) ). I'm not sure, but could there be an error in the xdc.tools.configuro rule?

    configuro/linker.cmd: D_ti81xx_dsp.cfg ./config.bld
        @$(ECHO) "#"
        @$(ECHO) "# Making $@ ..."
        $(XDC_INSTALL_DIR)/xs --xdcpath="$(subst +,;,$(PKGPATH))" \
                xdc.tools.configuro -o configuro \
                -t ti.targets.elf.C674 -c $(CGT_C674_ELF_INSTALL_DIR) \
                -p ti.platforms.evmTI816X:dsp -b ./config.bld \
                -r release D_ti81xx_dsp.cfg

    Shouldn't the "-r release" be "-r $(PROFILE)" ?

    The "profile" parameter of configuro might lack some good documentation...

    Thanks,

    Markus

  • Oh, I see: PROFILE is not yet defined when this rule is called. Unfortunately, I do not understand what -r <profile> really means. Does it make a difference to use "release" in a "debug" build or is it all the same?

    cu

    Markus

  • Markus,

    The -r option specifies the build profile to be used by configuro when compiling the generated source files. The profile captures the compiler and linker options, such as debug level, optimization, etc. I chose to hard code the configuro command to use "release" profile because I wanted to illustrate a typical case. When you build for debug, most of the time you are interested in debugging your own application sources, not SYS/BIOS or IPC sources. Also, building SYS/BIOS and IPC for debug would significantly increase the executable size; on some devices you might not have enough memory for this.

    Also, adding multiple profiles to the configuro command would slightly complicate the makefile, I would need to create a configuro directory for each profile and modify the link line.

    Here is a link to the C674 target documentation. Search for the profile array to see the exact options used.

    http://rtsc.eclipse.org/cdoc-tip/index.html#ti/targets/elf/C674.html

    ~Ramsey