• Answer Suggested

Configure clacc from CCS (OpenMP Accelerator, AM57xx)

I'm making CodeComposerStudio (6.1.3)  projects for OpenMP Accelerator Model. I'm currently planning to use my makefiles that contain all the Flags required for the OAM compile. One thing I'm stumbling is the fact that clacc requires the TARGET_ROOTDIR environment variable.

It would be nice to set that from CCS as the compiler (GCC 5.3.1 Linaro from TI Processor SDK Linux Version 3.0.0.4 or 3.1.0.6) toolchain is set up and usable in the CCS (there are other normal ARM Projects using it without problems). However, I can't find a preset value that would point to the arm side sysroot ,e.g. for 3.1.0.6:

~/ti-processor-sdk-linux-am57xx-evm-03.01.00.06/linux-devkit/sysroots/armv7ahf-neon-linux-gnueabi

If someone would use the 3.0.0.4 SDK with the project, the last component of the path (except for the version number) would have to be cortexa15hf-neon-linux-gnueabi. I would like to setup the CCS project so that this value would automatically be set correctly into TARGET_ROOTDIR. Obviously a workaround would be to let all users set this path in their own environment outside of CCS to their matching location, but that I'd like to avoid.

Is there any way to achieve this? Or is there a way to let CCS build a makefile automatically that contains this settings for OAM/clacc?

  • This question obviously is wrong here, reposting it to the CCS forum. Sorry!
  • Hi,


    You can set build environment variables in CCS.  Look at the Window->Preferences->Environment dialog.


    It's not preset, but you can use this dialog box to set the TARGET_ROOTDIR env variable for your current SDK.

    Best Regards,

    Eric

  • In reply to EricStotzer:

    Thanks Eric! I knew that, but the question points to "is there an ccs-variable that I can use to identify the sysroots/armxxx directory of the sdk"? So that users of different sdk versions or different sdk installation directories don't have to fill it themselves...
    Thanks & best regards
    Stefan
  • In reply to Stefan Hegny:

    HI Stefan,

    Unfortunately, there is no auto-set env variable in CCS for the sysroots/armxxx directory (or at least not that I'm aware of).  If I come up with (or across) a workaround I'll post it.


    Eric

  • In reply to EricStotzer:

    What I'm currently using is a shell script

    -- snip --

    #!/bin/bash

    # where is cl6x?
    cl6xexe=$( which cl6x )
    test -z "$cl6xexe" && echo "cl6x not found, PATH not correct" && exit 1

    cd $( dirname "$cl6xexe" )

    # find sysroots
    lastcur=$( basename $( pwd ) )
    cur=$( basename $( pwd ) )

    while [ "$cur" != sysroots ]
    do
     test "$cur" == "/" && echo "No sysroots found above $cl6xexe" && exit 1
     lastcur="$cur"
     cd ..
     cur=$( basename $( pwd ) )
    done

    # now we are in sysroots, lastcur is where we came from ( the x86 subdir )
    armroot=$( ls -d */|grep -v "$lastcur" |cut -d/ -f 1|grep -i abi)

    cd $armroot && pwd

    -- snip --

    called in makefile like

    export SDK_PATH_TARGET=$(shell ../where/this/script/is.lsh)

    It will use the PATH to the cl6x that is set by CCS according to the selected compiler toolchain.