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.

How to use BLE-Stack v2.2.0 and TI ARM Compiler v5.2.6 with TI-RTOS 2_20_00_06?

Other Parts Discussed in Thread: BLE-STACK, CC2640, CC2650, CC2650STK

So as recommended I am using BLE-Stack v2.2.0 with TI ARM Compiler v5.2.6, as it is not recommended to use v16.6.0.

However, I need to use TI-RTOS 2_20_00_06 in order to take advantage of minimum the ADC driver.

I updated the Linked Resources in my project, based off of SimpleBLEPeripheral project, such that all the COM_TI_RTSC_TIRTOS... variables pointed to the equivalent 2_20 paths; they were previously pointing to 2_18 paths.  Though, each of these variables gets reset back to the 2_18 versions when I build.

I did a little searching and think I have uncovered why my edits didn't stick and get used to build -- there is an auto-generated file in the root project's .config folder called .xdcenv.mak that has overrides set for the XDCPATH and PKGPATH that not surprisingly are the 2_18 paths that replaced all my edits.

Before I took this experiment further, I thought it best to check here for the best solution to what I am trying to do, whether it a continuation of the process I've started, or some other solution.

Thanks!

  • I think I figured it out.  See below image for the checkbox to use 2.20...

    However, after making this change, I get the error:

    No rule to make target 'C:/ti/tirtos_cc13xx_cc26xx_2_20_00_06/products/tidrivers_cc13xx_cc26xx_2_20_00_08/packages/ti/drivers/rf/RF.c'

    I looked for the file RF.c, and low and behold it isn't there.  It does however exist in the equivalent 2_18_... path, however the header file changed enough that I doubt simply copying over the old RF.c to the path of the missing file would be the appropriate fix.

    -Jeff

  • You are almost there. You need to manually change the version for driverlib in the Project Properties->Build->ARM Compiler->Include Options and Project Properties->Build->ARM Linker->File Search Path. I'd take a look at the TI-RTOS Release Notes (v2.20.00.06) for more compatibility changes between 2.18 and 2.20.

    Todd
  • A bit of a catch 22 in the release notes, as one of the 2.20 depencies is TI Code Generation Tools v15.12.1.LTS or later. As we've already established I need to use compiler v5.2.6.

    Please advise.
  • In addition, please refer to the sticky CC2640 FAQ thread in the BLE forum regarding support of different TI-RTOS versions.

    Best wishes
  • This is what my project properties looks like.

    My include options are:

    ${CG_TOOL_ROOT}/include
    ${SRC_EX}/examples/simple_peripheral/cc26xx/app
    ${SRC_EX}/inc
    ${SRC_EX}/icall/inc
    ${SRC_EX}/profiles/roles/cc26xx
    ${SRC_EX}/profiles/roles
    ${SRC_EX}/profiles/dev_info
    ${SRC_EX}/profiles/simple_profile/cc26xx
    ${SRC_EX}/profiles/simple_profile
    ${SRC_EX}/common/cc26xx
    ${SRC_COMMON}/heapmgr
    ${SRC_BLE_CORE}/controller/cc26xx/inc
    ${SRC_COMMON}/hal/src/target/_common
    ${SRC_EX}/target
    ${SRC_COMMON}/hal/src/target/_common/cc26xx
    ${SRC_COMMON}/hal/src/inc
    ${SRC_COMMON}/osal/src/inc
    ${SRC_COMMON}/services/src/sdata
    ${SRC_COMMON}/services/src/saddr
    ${SRC_COMMON}/icall/src/inc
    ${SRC_BLE_CORE}/inc
    ${CC26XXWARE}

    And file search path:

    I don't see how my project properties are different than what you suggested in response to my problem with RF.c missing.

  • So I added to the file search path Include Library file of:

    "${COM_TI_RTSC_TIRTOSCC13XX_CC26XX_INSTALL_DIR}/products/cc26xxware_2_24_02_17202/driverlib/bin/ccs/driverlib.lib"

    But didn't seem to help. Still having the RF.c file missing problem.  In hindsight, I realize that ${CC26XXWARE}/driverlib/bin/ccs/driverlib.lib is the same as the above.

    If I have not addressed your suggestion of:

    You are almost there. You need to manually change the version for driverlib in the Project Properties->Build->ARM Compiler->Include Options and Project Properties->Build->ARM Linker->File Search Path. I'd take a look at the TI-RTOS Release Notes (v2.20.00.06) for more compatibility changes between 2.18 and 2.20.

    then please provide more detail.

    Also, I tried to locate the "sticky CC2640 FAQ thread in the BLE forum regarding support of different TI-RTOS versions", but no luck.  Please provide a link.

    I did look at the 2.20 release notes but everything I read appeared to be things I've done.  I walked through http://processors.wiki.ti.com/index.php/Porting_an_existing_SYS/BIOS_project_to_TI-RTOS_with_TI-RTOS_drivers 

    Heading home for the day.

  • CC2640/CC2650 Getting Started and FAQ [Updated 2016 Jun 30]


    Have you tried just taking the ADC driver and adding it to the 2.18 TI-RTOS?

    Best wishes

  • I have not tried taking the ADC driver and adding it to the 2.18 TI-RTOS.

    Sounds like a simple task, but I fear it's another rabbit hole.

    I'll give it a quick try, but don't have time to go off on goose chases.

  • Should taking the ADC drivers from 2.20 and adding to 2.18 be as simple as copying:

    C:\ti\tirtos_cc13xx_cc26xx_2_20_00_06\products\tidrivers_cc13xx_cc26xx_2_20_00_08\packages\ti\drivers\adc
    C:\ti\tirtos_cc13xx_cc26xx_2_20_00_06\products\tidrivers_cc13xx_cc26xx_2_20_00_08\packages\ti\drivers\adcbuf
    C:\ti\tirtos_cc13xx_cc26xx_2_20_00_06\products\tidrivers_cc13xx_cc26xx_2_20_00_08\packages\ti\drivers\ADC.c
    C:\ti\tirtos_cc13xx_cc26xx_2_20_00_06\products\tidrivers_cc13xx_cc26xx_2_20_00_08\packages\ti\drivers\ADC.h
    C:\ti\tirtos_cc13xx_cc26xx_2_20_00_06\products\tidrivers_cc13xx_cc26xx_2_20_00_08\packages\ti\drivers\ADCBuf.c
    C:\ti\tirtos_cc13xx_cc26xx_2_20_00_06\products\tidrivers_cc13xx_cc26xx_2_20_00_08\packages\ti\drivers\ADCBuf.h

    And pasting it all to:

    C:\ti\tirtos_cc13xx_cc26xx_2_18_00_03\products\tidrivers_cc13xx_cc26xx_2_16_01_13\packages\ti\drivers

    ?
  • Rf.c is missing, the driver folders only contains RF.h, if you click Rf.c in the CCS project tree and you set "Exclude from build" It will Build ok, additionally you can remove this include from the linked resources.

    Buuuuuut even when I've managed it to Build, the sensorTag project stops working with Tirtos 2.20, with 2.18 it works. So I better returned to 2.18.

  • After some offline discussions with TI, the conclusion is:

    "BLE 2.2 + TI-RTOS 2.20 combination is essentially unsupported territory"

    So, the answer is - you can't at this time.
  • Hello Jeff,

    Due to dependencies with the RF driver, the BLE 2.2 + TI-RTOS 2.20 combination is not supported at this time. We are looking at the feasiblity of back-porting the ADC driver but need additional time to analyze this request. Thank you in advance for your patience. We will come back to this thread next week with an update.

    Best wishes
  • So this ended up working, but was only part of the solution.

    Jeff Lia said:
    Should taking the ADC drivers from 2.20 and adding to 2.18 be as simple as copying:

    C:\ti\tirtos_cc13xx_cc26xx_2_20_00_06\products\tidrivers_cc13xx_cc26xx_2_20_00_08\packages\ti\drivers\adc
    C:\ti\tirtos_cc13xx_cc26xx_2_20_00_06\products\tidrivers_cc13xx_cc26xx_2_20_00_08\packages\ti\drivers\adcbuf
    C:\ti\tirtos_cc13xx_cc26xx_2_20_00_06\products\tidrivers_cc13xx_cc26xx_2_20_00_08\packages\ti\drivers\ADC.c
    C:\ti\tirtos_cc13xx_cc26xx_2_20_00_06\products\tidrivers_cc13xx_cc26xx_2_20_00_08\packages\ti\drivers\ADC.h
    C:\ti\tirtos_cc13xx_cc26xx_2_20_00_06\products\tidrivers_cc13xx_cc26xx_2_20_00_08\packages\ti\drivers\ADCBuf.c
    C:\ti\tirtos_cc13xx_cc26xx_2_20_00_06\products\tidrivers_cc13xx_cc26xx_2_20_00_08\packages\ti\drivers\ADCBuf.h

    And pasting it all to:

    C:\ti\tirtos_cc13xx_cc26xx_2_18_00_03\products\tidrivers_cc13xx_cc26xx_2_16_01_13\packages\ti\drivers

    To complete the solution I did the following, though I ended up just doing it all for the ADC driver, not ADC Buf.

    1. Edit src/boards/CC2650STK/CC2650STK.c to include ADC definitions for DATA_SECTION, adcCC26xxObjects, adcCC26xxHWAttrs, ADC_Config, and then to the header file the CC2650STK_ADCName enum (these were modeled, but not identical to, files found in a CC2650 LaunchPad ADC project)
    2. Created a new virtual folder in CCS project (sensortag_cc2650stk_app) existing virtual folder "Drivers" called "ADC" and then created the virtual files ADC.c/h and ADCCC26XX.c/h
    3. Rebuilt everything

    I presume the solution would be similar for ADC Buffer stuff, but I haven't tried as I think the ADC blocking read approach will work for my project.