CC26xx/CC13xx common
Common code for TI cc26xx/cc13xx family
This module contains code common to all cc26xx/cc13xx cpus supported by RIOT: TI CC26x0/CC13x0, TI CC26x2, CC13x2
Overview
Section titled “Overview”The CC26xx/C13xx is a family of micro controllers fabricated by Texas Instruments for low-power communications, using protocols such as BLE, IEEE 802.15.4g-2012, and proprietary radio protocols.
These family of MCUs is divided in two generations, the cc26x0/cc13x0, and the cc26x2/cc13x2 family. The difference is that the later provides more ROM and RAM and improvements on various peripherals.
| MCU family | RAM | Flash |
|---|---|---|
| CC26x0/CC13x0 | 20 K | 128 K |
| CC26x2/CC13x2 | 80 K | 352 K |
Flashing the CCFG
Section titled “Flashing the CCFG”RIOT provides built-in support to flash the Customer Configuration on the
CC26xx/CC13xx MCUs. It can be done through Kconfig using make menuconfig.
For example:
make -C examples/basic/hello-world menuconfig BOARD=cc1350-launchpadIt will open the Kconfig terminal configuration utility, you may see the
Update CCFG option, selecting it will include the default configuration that
Texas Instruments provides from their own SDK. You may change any further
options available through Kconfig.
Once configuration is saved you may compile a new binary and flash it onto the device.
For example:
make -C examples/basic/hello-world flash BOARD=cc1350-launchpadDebugging
Section titled “Debugging”Development kits from Texas Instruments come with an XDS110 on-board debug probe that provides programming, flashing and debugging capabilities.
It can either use proprietary Texas Instruments tools for programming, or OpenOCD.
Using Upstream OpenOCD
Section titled “Using Upstream OpenOCD”OpenOCD is the default programmer and debugger. Hence, flashing can be done by navigating to the application directory and running:
make flash BOARD=<CC26xx-or-CC13xx-based-board>Using TI’s OpenOCD Fork
Section titled “Using TI’s OpenOCD Fork”TI maintains an outdated fork of OpenOCD that contains patches and special handling that have not upstreamed yet. It can be build using:
# Clone into the openocd-ti foldergit clone https://git.ti.com/cgit/sdo-emu/openocd openocd-ti
# Change directory to the openocd source codecd openocd-ti/openocd
# Configure, build, install./configuremakesudo make installOtherwise, usage is identical with the upstream version of OpenOCD.
using J-Link
Section titled “using J-Link”By passing (or exporting) PROGRAMMER=jlink J-Link can be used to flash the
board. This requires a J-Link compatible programmer / debugger. Since the
XDS110 that TI’s development boards use is not compatible, an external
programmer has to be used. The upside is that flashing appears to be reliable
with that.
Using Uniflash
Section titled “Using Uniflash”The TI’s Code Composer Studio provides the necessary tools to use the debug features of the XDS110; Uniflash provides flashing tools. Both programs can be found here:
- Code Composer Studio (CCS) Integrated Development Environment (IDE).
- Uniflash Standalone Flash Tool for TI Microcontrollers (MCU), Sitara Processors & SimpleLink devices.
Before using the XDS110 with the latest CCS/Uniflash versions the firmware for it needs to be updated. Texas Instruments has a guide to correctly update it here.
Setting up the environment
Section titled “Setting up the environment”In order to make use of the programming and debugging capabilities of the XDS110 some environment variable needs to be set:
export CCS_PATH=<path to ti install folder>/ti/ccs930export UNIFLASH_PATH<path to ti install folder>/ti/uniflash_5.2.0That assumes you have CCS 9.3.0 (for the path name) and Uniflash 5.2.0, adjust accordingly.
After that you can flash using the RIOT make flash command on your application
or to debug you first start the debug server:
make debug-serverAnd then on another terminal you can run:
make debugIt will open GDB and connect to the debug server automatically.
CC26xx/CC13xx common
Section titled “CC26xx/CC13xx common”Common definitions for TI cc26xx/cc13xx family
This module contains definitions common to all cc26xx/cc13xx cpus supported by RIOT: TI CC26x0/CC13x0, TI CC26x2, CC13x2