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.

Creating the build system(makefile based) using Eclipse IDE for simplelink BLE stack platform ( BLE v2.0 on CC26xx).

Other Parts Discussed in Thread: SYSBIOS

Hi,

Currently I'm planning to have a separate build system which should be build everything from Makefile ( which is manually written). I will be using Eclipse IDE environment. Can anyone please suggest how to proceed in writing a makefile to be invoked from eclipse IDE for the mentioned platform.

In Brief: The tool chain will be used as it is provided by TI ( TI ARM compiler, XDC tools, TI RTOS, XDS debugger ), but the ultimate goal is to create the build system which consists of makefile which should be run by make which is invoked from eclipse IDE.

And also:

1. Can we use the mingw make to execute the makefile for mentioned platform or gmake  is mandatory which comes along with CCS installation.

2. I have observed like when I start build process of the sample Application project, the library is being generated by building the appBLE.cfg. please also suggest the way to achieve the same from makefile.

thanks,

Anil.

  • Hi Anil,
    Note that CCS projects also use makefiles under the hood. So you could take the CCS generated makefiles to use as a starting point to create your own makefiles.

    You can also use a different make utility if you wish.

    I suggest looking at the below wiki article for more details:
    processors.wiki.ti.com/.../Projects_and_Build_Handbook_for_CCS

    The cfg file is a TI-RTOS kernel (SYS/BIOS) configuration file which is called by the xdc tools. You can call this from your makefile.

    For more details on SYS/BIOS:
    processors.wiki.ti.com/.../Category:SYSBIOS

    Thanks
    ki
  • Hi,

    thanks for your reply.
    I would like to clarify some points related to build system. please clarify below points:
    1. I have observed at the initial step of build process is like the library is being build by invoking xdc tools, the following displays in console output. so how can we achieve the same execution from makefile, because i could not see any references to building the cfg file from makefile in CCS. please guide.

    "C:\\ti\\ccsv6\\utils\\bin\\gmake" -k all
    'Building file: C:/ti/IdefixInt/Idefix/CC26xx/CCS/Config/appBLE.cfg'
    'Invoking: XDCtools'
    "C:/ti/xdctools_3_31_00_24_core/xs" --xdcpath="C:/ti/IdefixInt/tirtos_simplelink_2_11_01_09/packages;C:/ti/IdefixInt/tirtos_simplelink_2_11_01_09/products/bios_6_41_02_41/packages;C:/ti/IdefixInt/tirtos_simplelink_2_11_01_09/products/uia_2_00_02_39/packages;C:/ti/ccsv6/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.arm.elf.M3 -p ti.platforms.simplelink:CC2650F128 -r release -c "C:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.2" --compileOptions "-mv7M3 --code_state=16 --abi=eabi -me -O4 --opt_for_speed=0 --include_path=\"C:/ti/IdefixInt/Tools/compiler/ti-cgt-arm_5.2.2/include\" --include_path=\"C:/ti/IdefixInt/Idefix/CC26xx/Source/Application\" --include_path=\"C:/ti/IdefixInt/Idefix/CC26xx/Source/Boards/CC2650EM_7ID\" --include_path=\"C:/ti/IdefixInt/Idefix/CC26xx/Source/IdefixProfile\" --include_path=\"C:/ti/IdefixInt/Idefix/CC26xx/Source/Util\" --include_path=\"C:/ti/IdefixInt/simplelink/ble_cc26xx_2_00_00_42893/Projects/ble/include\" --include_path=\"C:/ti/IdefixInt/simplelink/ble_cc26xx_2_00_00_42893/Projects/ble/ICall/Include\" --include_path=\"C:/ti/IdefixInt/simplelink/ble_cc26xx_2_00_00_42893/Projects/ble/Profiles/Roles/CC26xx\" --include_path=\"C:/ti/IdefixInt/simplelink/ble_cc26xx_2_00_00_42893/Projects/ble/Profiles/Roles\" --include_path=\"C:/ti/IdefixInt/simplelink/ble_cc26xx_2_00_00_42893/Projects/ble/Profiles/DevInfo\" --include_path=\"C:/ti/IdefixInt/simplelink/ble_cc26xx_2_00_00_42893/Components/applib/heap\" --include_path=\"C:/ti/IdefixInt/simplelink/ble_cc26xx_2_00_00_42893/Components/ble/hci\" --include_path=\"C:/ti/IdefixInt/simplelink/ble_cc26xx_2_00_00_42893/Components/ble/controller/CC26xx/include\" --include_path=\"C:/ti/IdefixInt/simplelink/ble_cc26xx_2_00_00_42893/Components/ble/host\" --include_path=\"C:/ti/IdefixInt/simplelink/ble_cc26xx_2_00_00_42893/Components/hal/target/CC2650TIRTOS\" --include_path=\"C:/ti/IdefixInt/simplelink/ble_cc26xx_2_00_00_42893/Components/hal/target/_common/cc26xx\" --include_path=\"C:/ti/IdefixInt/simplelink/ble_cc26xx_2_00_00_42893/Components/hal/include\" --include_path=\"C:/ti/IdefixInt/simplelink/ble_cc26xx_2_00_00_42893/Components/osal/include\" --include_path=\"C:/ti/IdefixInt/simplelink/ble_cc26xx_2_00_00_42893/Components/services/sdata\" --include_path=\"C:/ti/IdefixInt/simplelink/ble_cc26xx_2_00_00_42893/Components/services/saddr\" --include_path=\"C:/ti/IdefixInt/simplelink/ble_cc26xx_2_00_00_42893/Components/icall/include\" --include_path=\"C:/ti/IdefixInt/simplelink/ble_cc26xx_2_00_00_42893/Components/ble/include\" --include_path=\"C:/ti/IdefixInt/tirtos_simplelink_2_11_01_09/products/cc26xxware_2_00_06_14829\" -g --gcc --define=USE_ICALL --define=POWER_SAVING --define=SBP_TASK_STACK_SIZE=700 --define=GAPROLE_TASK_STACK_SIZE=520 --define=HEAPMGR_SIZE=2672 --define=xTI_DRIVERS_SPI_DMA_INCLUDED --define=xTI_DRIVERS_LCD_INCLUDED --define=ICALL_MAX_NUM_TASKS=3 --define=ICALL_MAX_NUM_ENTITIES=6 --define=xdc_runtime_Assert_DISABLE_ALL --define=xdc_runtime_Log_DISABLE_ALL --define=MAX_NUM_BLE_CONNS=1 --define=CC26XXWARE --define=CC26XX --define=ccs --define=__TI_COMPILER_VERSION=1 --define=DEBUG --define=CC2650F128RGZ_R21 --define=HW_REV_R1 --define=CC2650F128RGZ --display_error_number --diag_suppress=48 --diag_warning=225 --diag_wrap=off --gen_func_subsections=on " "C:/ti/IdefixInt/Idefix/CC26xx/CCS/Config/appBLE.cfg"
    making package.mak (because of package.bld) ...
    configuring appBLE.xem3 from package/cfg/appBLE_pem3.cfg ...
    generating custom ROM library makefile ...
    Starting build of library sources ...
    making C:/ti/IdefixInt/Idefix/CC26xx/CCS/Config/src/sysbios/sysbios.aem3 ...
    gmake[1]: Entering directory `C:/ti/IdefixInt/Idefix/CC26xx/CCS/Config/src/sysbios'
    Preprocessing library source files ...
    Library build complete.
    gmake[1]: Leaving directory `C:/ti/IdefixInt/Idefix/CC26xx/CCS/Config/src/sysbios'
    Build of libraries done.
    clem3 package/cfg/appBLE_pem3.c ...
    'Finished building: C:/ti/IdefixInt/Idefix/CC26xx/CCS/Config/appBLE.cfg'


    2. And then, next the application sources are getting compiled and at the end the linker is getting invoked and I have observed that two libraries are getting invoked(-l"libc.a" -l"C:/ti/IdefixInt/tirtos_simplelink_2_11_01_09/products/cc26xxware_2_00_06_14829/driverlib/bin/ccs/driverlib.lib" ), whether these two mentioned libraries are being generated while building appBLE.cfg file? or they are independent.

    3. Can you please clear me on what are libraries are being built as part of building appBLE.cfg file.

    thanks,
    Anil
  • Anil Kumar Yadav Busanaboina said:
    1. I have observed at the initial step of build process is like the library is being build by invoking xdc tools, the following displays in console output. so how can we achieve the same execution from makefile, because i could not see any references to building the cfg file from makefile in CCS. please guide.

    Check subdir_rules.mk. That has the command to build the cfg file.

    Anil Kumar Yadav Busanaboina said:
    2. And then, next the application sources are getting compiled and at the end the linker is getting invoked and I have observed that two libraries are getting invoked(-l"libc.a" -l"C:/ti/IdefixInt/tirtos_simplelink_2_11_01_09/products/cc26xxware_2_00_06_14829/driverlib/bin/ccs/driverlib.lib" ), whether these two mentioned libraries are be

    Those are independent libraries. libc.a is the default runtime support library that comes with the compiler and driverlib.lib comes with BLE SDK

    Anil Kumar Yadav Busanaboina said:
    3. Can you please clear me on what are libraries are being built as part of building appBLE.cfg file.

    the cgf file is for configuring the SYS/BIOS kernel. This wiki page has more information on the kernel;

    http://processors.wiki.ti.com/index.php/Category:SYSBIOS

    Thanks

    ki