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.

LAUNCHXL-CC26X2R1: ZStack project based on gcc

Part Number: LAUNCHXL-CC26X2R1
Other Parts Discussed in Thread: SYSCONFIG, Z-STACK

Hello,

Is there any possibility to migrate with ZStack project from TI's compiler to GCC?
I'm using CCS and have project based on zr_sampleapp example.

What i want to do is to use gcc instead of TI's compiler. I see in project properites -> general, possibility to choose compiler version.

I can select one of three options: GNU v7.2.1; GNU v9.2.1 and TI v20.2.1 LTS.
But as i can see when i changed to GNU v9.2.1 i've to reconfigure whole project, to be able to compile it again.
To be honest i'm not really familiar with all of those settings, that have to be set. So my question is if is there any manual (or even better example project) how to do this?

I'm trying to follow configuration from example project named buttonled, which is located in sdk/examples/rtos/CC26X2R1_LAUNCHXL/drivers (this project has provided configuration for gcc), but i got compilation errors listed below.

Building file: "../app.cfg"
Invoking: XDCtools
"C:/ti/sdk/xdctools_3_61_01_25_core/xs" --xdcpath="C:/ti/sdk/simplelink_cc13x2_26x2_sdk_4_30_00_54/source;C:/ti/sdk/simplelink_cc13x2_26x2_sdk_4_30_00_54/kernel/tirtos/packages;" xdc.tools.configuro -o configPkg -t ti.targets.arm.elf.M4F -p ti.platforms.simplelink:CC2652R1F -r release -c "C:/ti/ccs1011/ccs/tools/compiler/gcc-arm-none-eabi-9-2019-q4-major" "../app.cfg"
making package.mak (because of package.bld) ...
making package.mak (because of package.bld) ...
subdir_rules.mk:19: recipe for target 'build-409300143-inproc' failed
js: "C:/ti/sdk/simplelink_cc13x2_26x2_sdk_4_30_00_54/kernel/tirtos/packages/ti/targets/arm/elf/IArm.xs", line 81: Error: template generation of 'compiler.opt' failed: Error: Cannot find compiler in C:/ti/ccs1011/ccs/tools/compiler/gcc-arm-none-eabi-9-2019-q4-major. Please check compiler path.
    "./package.bld", line 54
xdctools_3_61_01_25_core\gmake.exe: *** Deleting file 'package.mak'
js: "C:/ti/sdk/simplelink_cc13x2_26x2_sdk_4_30_00_54/kernel/tirtos/packages/ti/targets/arm/elf/IArm.xs", line 81: Error: template generation of 'compiler.opt' failed: Error: Cannot find compiler in C:/ti/ccs1011/ccs/tools/compiler/gcc-arm-none-eabi-9-2019-q4-major. Please check compiler path.
    "./package.bld", line 54
gmake.exe: *** Deleting file 'package.mak'
gmake.exe: *** No rule to make target '.configuro'.  Stop.
js: "C:/ti/sdk/xdctools_3_61_01_25_core/packages/xdc/tools/Cmdr.xs", line 52: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.
gmake[1]: *** [build-409300143-inproc] Error 1
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/linker.cmd'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: *** No rule to make target 'build-409300143', needed by 'configPkg/compiler.opt'.
gmake: Target 'all' not remade because of errors.

As i said i'm not familiar enough with whole ti's build environment (xdc, syscfg), so if anyone can help me with setup the configuration i'll be thankful.

regards,

mf

  • Sorry i couldn't edit.

    I move forward a bit. I had wrong target set for XDC tools. I've changed it to 'gnu.targets.arm.M4F' and now xdc tools works well.
    But i occured next problem. Namely i've problem that syscfg is not invoked during build and not all necessary files are generated. I also noticed, that in project properties SysConfig tool options are missing.

    How can i add it to my project?

    EDIT 01.06.21

    So i had move forward again. I did workaround for syscfg generation and just run the sysConfig_cli.bat as pre build step.

    Now my compilation fails at linking stage. As i can see TI's linker supports some keywords, that GNU linker doesn't (for example GROUP or LOAD_START()/LOAD_END() ).

    I was looking but couldn't find any suitable keywords for GNU linker. I belive there must be a way to rewrite the linker script to work with gnu linker, but i'm not really familiar with this kind of low level stuff. So any tips will be much helpfull.

    Second thing is that, when i looked into some examples that supports gcc, i saw in linker script special entries due to the DMA.

     /*
         * UDMACC26XX_CONFIG_BASE below must match UDMACC26XX_CONFIG_BASE defined
         * by ti/drivers/dma/UDMACC26XX.h
         * The user is allowed to change UDMACC26XX_CONFIG_BASE to move it away from
         * the default address 0x2000_1800, but remember it must be 1024 bytes aligned.
         */
        UDMACC26XX_CONFIG_BASE = 0x20001800;
    
        /*
         * Define absolute addresses for the DMA channels.
         * DMA channels must always be allocated at a fixed offset from the DMA base address.
         * --------- DO NOT MODIFY -----------
         */
        DMA_UART0_RX_CONTROL_TABLE_ENTRY_ADDRESS  = (UDMACC26XX_CONFIG_BASE + 0x10);
        DMA_UART0_TX_CONTROL_TABLE_ENTRY_ADDRESS  = (UDMACC26XX_CONFIG_BASE + 0x20);
        DMA_SPI0_RX_CONTROL_TABLE_ENTRY_ADDRESS   = (UDMACC26XX_CONFIG_BASE + 0x30);
        DMA_SPI0_TX_CONTROL_TABLE_ENTRY_ADDRESS   = (UDMACC26XX_CONFIG_BASE + 0x40);
        DMA_UART1_RX_CONTROL_TABLE_ENTRY_ADDRESS  = (UDMACC26XX_CONFIG_BASE + 0x50);
        DMA_UART1_TX_CONTROL_TABLE_ENTRY_ADDRESS  = (UDMACC26XX_CONFIG_BASE + 0x60);
        DMA_ADC_PRI_CONTROL_TABLE_ENTRY_ADDRESS   = (UDMACC26XX_CONFIG_BASE + 0x70);
        DMA_GPT0A_PRI_CONTROL_TABLE_ENTRY_ADDRESS = (UDMACC26XX_CONFIG_BASE + 0x90);
        DMA_SPI1_RX_CONTROL_TABLE_ENTRY_ADDRESS   = (UDMACC26XX_CONFIG_BASE + 0x100);
        DMA_SPI1_TX_CONTROL_TABLE_ENTRY_ADDRESS   = (UDMACC26XX_CONFIG_BASE + 0x110);
    
        DMA_UART0_RX_ALT_CONTROL_TABLE_ENTRY_ADDRESS = (UDMACC26XX_CONFIG_BASE + 0x210);
        DMA_UART0_TX_ALT_CONTROL_TABLE_ENTRY_ADDRESS = (UDMACC26XX_CONFIG_BASE + 0x220);
        DMA_SPI0_RX_ALT_CONTROL_TABLE_ENTRY_ADDRESS = (UDMACC26XX_CONFIG_BASE + 0x230);
        DMA_SPI0_TX_ALT_CONTROL_TABLE_ENTRY_ADDRESS = (UDMACC26XX_CONFIG_BASE + 0x240);
        DMA_UART1_RX_ALT_CONTROL_TABLE_ENTRY_ADDRESS = (UDMACC26XX_CONFIG_BASE + 0x250);
        DMA_UART1_TX_ALT_CONTROL_TABLE_ENTRY_ADDRESS = (UDMACC26XX_CONFIG_BASE + 0x260);
        DMA_ADC_ALT_CONTROL_TABLE_ENTRY_ADDRESS     = (UDMACC26XX_CONFIG_BASE + 0x270);
        DMA_GPT0A_ALT_CONTROL_TABLE_ENTRY_ADDRESS   = (UDMACC26XX_CONFIG_BASE + 0x290);
        DMA_SPI1_RX_ALT_CONTROL_TABLE_ENTRY_ADDRESS = (UDMACC26XX_CONFIG_BASE + 0x300);
        DMA_SPI1_TX_ALT_CONTROL_TABLE_ENTRY_ADDRESS = (UDMACC26XX_CONFIG_BASE + 0x310);
    
        /*
         * Allocate UART0, UART1, SPI0, SPI1, ADC, and GPTimer0 DMA descriptors at absolute addresses.
         * --------- DO NOT MODIFY -----------
         */
        UDMACC26XX_uart0RxControlTableEntry_is_placed = 0;
        .dmaUart0RxControlTableEntry DMA_UART0_RX_CONTROL_TABLE_ENTRY_ADDRESS (NOLOAD) : AT (DMA_UART0_RX_CONTROL_TABLE_ENTRY_ADDRESS) {*(.dmaUart0RxControlTableEntry)} > REGION_DATA
    
        UDMACC26XX_uart0TxControlTableEntry_is_placed = 0;
        .dmaUart0TxControlTableEntry DMA_UART0_TX_CONTROL_TABLE_ENTRY_ADDRESS (NOLOAD) : AT (DMA_UART0_TX_CONTROL_TABLE_ENTRY_ADDRESS) {*(.dmaUart0TxControlTableEntry)} > REGION_DATA
    
        UDMACC26XX_dmaSpi0RxControlTableEntry_is_placed = 0;
        .dmaSpi0RxControlTableEntry DMA_SPI0_RX_CONTROL_TABLE_ENTRY_ADDRESS (NOLOAD) : AT (DMA_SPI0_RX_CONTROL_TABLE_ENTRY_ADDRESS) {*(.dmaSpi0RxControlTableEntry)} > REGION_DATA
    
        UDMACC26XX_dmaSpi0TxControlTableEntry_is_placed = 0;
        .dmaSpi0TxControlTableEntry DMA_SPI0_TX_CONTROL_TABLE_ENTRY_ADDRESS (NOLOAD) : AT (DMA_SPI0_TX_CONTROL_TABLE_ENTRY_ADDRESS) {*(.dmaSpi0TxControlTableEntry)} > REGION_DATA


    Could you please explain to me, why this has to be done explicit when we are using GNU GCC compiler, and doesn't have to do this, when TI's compiler is used?

    I stuck at this stage, so as i said i'll be really thankful for any help.

    regards,

    mf

  • Hello mf,

    Thank you for providing constant updates and walking through your development process.  Although TI's libraries are AEABI compliant, Z-Stack was not built for use with GCC.  As it has not been tested I recommend that you consider evaluating TI Clang: ARM-CGT

    Regards,
    Ryan

  • Hi Ryan,
    Sorry for late answer, i was on holidays.

    Thank you for response. It's not good information for us.

    Could you please answer for my other questions? I mean this about how to enable SysCfg options in css and this about DMA records in linker script?
    I just want to have this knowledge for future.

    regards,

    mf

  • Does your project properties not have SysConfig Build settings included?  Please see the following for more information: http://software-dl.ti.com/ccs/esd/documents/ccs_sysconfig_projects.html

    What example are you referencing for the GCC linker scripts which include the DMA entries?  I don't know precisely why these are explicitly used.

    Regards,
    Ryan