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.

SIMPLELINK-CC13X2-26X2-SDK: TI-RTOS/OAD/APP Question on updating the application only?

Part Number: SIMPLELINK-CC13X2-26X2-SDK
Other Parts Discussed in Thread: UNIFLASH, CC2652R

I have an application on this processor where the client wishes to update the application firmware while

leaving the RTOS and BLE firmware versions unchanged.  Is there an method to OAD just the application

firmware or is it only possible to do the entire binary image including the RTOS/BLE components?

A side question, I am using Launchpad CC26x2R1.  On my actual product board which is running now

and the BLE works to connect to a smart phone.  On my board I did not include the extra memory part

which is connected to the CPU via. SPI and appears to be a location where a 'factory image' is stored

and maybe reloaded based on the buttons at boot time.  Use of this external memory part for image

loading or re flashing, is it needed for OAD as I wish to do?  I hope not as the SPI pins are used

for I2S in my application as well as no other pins available to move SPI to for that memory use.

Any links to additional documentation to do what I need and/or video training would be great!

TI's web site is huge and I've been stumbling around reading to get up on this issue, some of the

docs are old and you don't find that out until reading almost the whole thing, I wish to use the latest

SDK and RTOS components as well as your latest libraries to build this product.  I think I remember

having seen some app. note or other PDF which talked about loading just application firmware vs.

the entire image.  Today now that my board is running and I need to finish this function I can't find

the reference that led me to select the TI part and RTOS over a year ago.

Thanks in advance, Marc Y./MySoftworks Co.

  • Hi Marc,

    TI-RTOS, drivers, bootloader, and Bluetooth® 5.2 low energy controller are located in ROM for optimized application size (located in Flash memory).  ROM is not updated during OAD, only Flash which consists of the BIM, persistent image (for on-chip OAD), and application.  If you do not have external flash memory on your board design then the factory image feature is not available and the on-chip OAD configuration is required. Here are the most useful resources for BLE OAD updates from TIREx:

    OAD section of the BLE5-Stack User's Guide
    BLE Enhanced OAD SimpleLink Academy Lab
    simple_peripheral_oad_onchip example project
    bim_onchip example project


  • Thanks Ryan for getting back quickly.

    To make it clear for me to understand your reply, when you say ROM we are still in the same FLASH space in the CPU as well

    as the FLASH space that my application resides, correct?  Just different regions?

    When I build and debug with CCS what has been loading is my application code only if the RTOS/BLE were not changed or built?

    I'll dig into those examples now that you pointed out they are what I want to do (on-chip) as I didn't know that's what I needed to do.

    Being the RTOS/drivers/bootloader/BLE are in ROM, does this mean there is a separate build binary somewhere in my CCS tree that

    has the binary which is put in ROM vs. the folder tree where my actual project source/debug files are at?

    An additional thing I don't really see how TI does it is how/when does the firmware for the radio M0 CPU get loaded for it to run

    the radio as such?  Does it have a separate binary, and how do I load that in my production run products? (UniFlash?)

    Maybe, well sure, it must, CCS does all of this for you based on the project setup I am guessing and this is what I need to break

    down a bit more for my understanding of these components which you said is in ROM vs. my application in general FLASH area

    but known about by the ROM part to boot as well as an API so the ROM functions are available to my application.

  • Please see the CC2652R Datasheet and Technical Reference Manual to further understand the differences in ROM (Read Only Memory) and Flash memory.  CCS loads application code into flash, the RTOS/BLE resources in ROM are unchanged and cannot be modified by developers.  The CCFG contains customer configurations that can alter some aspects of how the device operates its ROM (like bootloader enable/disable).  The CFG file allows the option to store TI-RTOS BIOS operations in ROM (default) or Flash for debug purposes.  There are pre-built libraries for the TI-RTOS/DriverLib/BLE linking, as seen from Project Properties -> CCS Build -> Arm Linker -> File Search Path.  All APIs available to your application are covered inside the SDK Documentation.