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.

Build SysLink 2.2x examples in CCSv5

Other Parts Discussed in Thread: OMAP3530, SYSBIOS

Hi,

thanks to your help I can run SysLink 2.2x examples on OMAP3530, builded in command line. Now I'd like to use CCSv5 for SysLink project, I supose it could be easier to understand it.

So I have to ask again for your help.Informations presented here  http://processors.wiki.ti.com/index.php/Creating_CCS_Project_for_SysLink_samples are not enough for me, because SysLink 2.2x examples are different from samples in 2.1x and I have not enough advanced to deal with it.

I started with slave DSP side, as it is in mentioned tutorial:

  • I created new CCS Project named Hello_world_DSP,
  • Output type: Executable,
  • Device: Family: C6000; Variant: Generic devices, Generic C64x+
  • Advanced settings: I choosed compiler from filesystem, which I used in command line building (TI v7.2.2) and Output format: eabi(ELF),
  • Project templates: SYS/BIOS > Typical

In the next window I should add RTSC products, but CCS doesn't recognize them. I read in some thread that directory names have to be default. So I added earlier in preferences to discovery path my main directory with installed tools in directories: bios_6_34_03_19, ipc_1_25_01_09, xdctools_3_24_03_33. It doesn't work. I tried also add to discovery path each directory of tools, but it also didn't helped. Selecting tool from filesystem during project creation shows e.g. for XDCtools: No tools selected! Please select a directory that contains the XDCtools installation. Adding SysBios and IPC show in Other Repositories category branch.There was no such a problem with adding CGT in Advanced settings, CCS detected new TI v7.2.2.

Could you help with this step?

  • Hi Valdez,

    Can you tell us what version of CCSv5 you are using?

    Murat

  • Sure, sorry that I forgot before. My CCSv5 is 5.3.0.00090.

  • I have installed RTSC products with 'sudo' into directory where CCS keeps default installed tools. Now CCS discovered them.

    Now in the "Rebuilding the slave DSP executable" section I should do --> Right click your project in the C/C++ Projects tab, select "Add files...".

    Which files I should add for ex01_helloworld example of SysLink 2.21.00.03 ? Because that new examples are differently created.

  • I tried more. Here is what I did when my CCSv5 recognized that products:

    - add files from ex01_helloworld/dsp/ directory: main_dsp.c, Server.c, Server.h, Dsp.cfg;

    - add file from ex01_helloworld/shared/ directory: SystemCfg.h;

    - in Server.c file change from:

    #include "../shared/SystemCfg.h"

    to:

    #include "SystemCfg.h";

    - added SysLink packages directory to XDCPATH;

    - add file config.bld from ex01_helloworld/shared/ directory to "Build configuration file (-b)" in XDCtools advanced options.

    Then I had one error: Cannot read property "base" from undefined Dsp.cfg. It was necessary to change project platform name to "ti.platforms.evm3530:dsp" (or it is possible to edit config.bld file for appropriate name).

    Finally I builded it and got project.out file.

    My last question about DSP side building: how to get output file with .xe64P extension instead of .out?

  • Hi Valdez,

    In order to change the output file's extension you need to go to project explorer in CCS and right click. Select "Show Build Settings..." option. The window shown in the screenshot below will open. You need to modify output file name in ARM Linker basic options. I have highlighted the field that needs to be modified.


    Note: After changing the extension, the executable will no longer go to a Binaries/ folder. It is placed in Debug/ or Release/ folder based on your build profile/configuration.

    Best,

    Ashish

  • Hi Valdez,

    Since you are building a C64x application the Build Settings window will look a little different (I used a ARM target screenshot in my previous post). Here's a screenshot for C64x:

    Everything else remains the same.

    Best,

    Ashish

  • Thank you Ashish :)

    Now I get stuck in cross-compiler options. Here is what I get from standalone building in debug configuration:

    /home/valdez/workspace/cross-compiler/bin/arm-none-linux-gnueabi-gcc -c -MD -MF bin/debug/obj/main_host.ov5T.dep -march=armv5t -D_REENTRANT -Dxdc_target_name__=GCArmv5T -Dxdc_target_types__=gnu/targets/arm/std.h -Wall -ffloat-store  -fPIC -Wunused -Dfar= -ggdb -D DEBUG -I. -I/home/valdez/workspace/dspv1/syslink_2_21_01_05/packages -I/home/valdez/CCS/bios_6_34_03_19/packages -I/home/valdez/CCS/ipc_1_25_01_09/packages -o bin/debug/obj/main_host.ov5T main_host.c

    Red are the settings which I don't know where to set. I ask you for help with them.

    All -D I set in Cross GCC Compiler -> Symbols.

    -Wall I set in Cross GCC Compiler -> Warnings.

    -c -ffloat-store and -fPIC I set in Cross GCC Compiler -> Miscellaneous.

    -ggdb I set in Cross GCC Compiler -> Debugging.

    And all -I in Cross GCC Compiler -> Includes.

    ------ EDIT:

    Just realized that I can set -march=armv5t also in Cross GCC Compiler -> Miscellaneous -> Other flags.

  • Hi Valdez,

    I did not quite get your question. Are you trying to build a BIOS ARM9 application using gcc tool chain in CCS ?

    Best,

    Ashish

  • Hi Ashish,

    sorry I didn't mention it in my last post. I have builded DSP executable. Now I'm trying to build Cortex-A8 Linux executable (host side of SysLink application). Here is what I'm trying to follow http://processors.wiki.ti.com/index.php/Creating_CCS_Project_for_SysLink_samples

    Regards,

    Valdez

  • Hi Valdez,

    You can add the compiler flags that dont show up in the settings by editing the ToolSettings->Cross GCC Compiler->Miscellaneous->Other flags text box. Similarly, if there are any linker flags that you want to add and are not present in settings, you can edit the ToolSettings->Cross GCC Linker->Miscellaneous->Linker flags text box to add them.

    Best,

    Ashish

  • Thank you Ashish again,

    if you could only tell me something about that -MD -MF bin/debug/obj/main_host.ov5T.dep. I can't find what does it mean, so don't know if I need this and if I should add it always like this (of course with changed file name).

    -march is obvious. -Wunused is turned on also by -Wall so I think I don't have to use both. With -o bin/debug/obj/main_host.ov5T I'm not sure, but hope that this file will be found in further building.

    Regards,

    Valdez

  • Hi Valdez,

    A "-MD" option is used to capture all source file dependencies into an output file when the source is compiled (The dependencies are listed in the output file in the form of make rules). I am not sure if you need this option in the CCS project. The wiki link you had posted earlier does not mention this option. Are you referring another wiki ?

    The "-MF filename" option specifies the file to which the dependency rules are to be written. Typically, "-MD" is enough and based on the output filename will create a dependency file with a ".d" suffix. However, in your case it looks like it is desired that the dependency file have a ".ov5T.dep" suffix and hence the "-MF" option is used.

    The "-o bin/debug/obj/main_host.ov5T" is used to specify the output object file's path and name. This is the object file that will be generated at the end of the compile phase.

    Best,

    Ashish

  • Hi Ashish,

    thank you for that clarification. I'm referring to that posted wiki site. I'm asking for these options because there is a point in wiki guide: "Observe compiler invocations to find out build flags." My command-line building with Verbose building option gives me that what I posted previously here in 8. post. It is different than on the wiki site, but I suppose I should use that if it works in command-line. Maybe it is different because of another SysLink version.

    Regards,

    Valdez