The Texas Instruments Zephyr GitHub repository is the starting point for Zephyr development on supported Texas Instruments devices. TI's Zephyr solution is based on the Zephyr project and utilizes the same familiar environment, tools, and dependencies.
The Zephyr Project is a scalable real-time operating system (RTOS) supporting multiple hardware architectures, optimized for resource constrained devices, and built with security in mind.
The Zephyr OS is based on a small-footprint kernel designed for use on resource-constrained systems: from simple embedded environmental sensors and LED wearables to sophisticated smart watches and IoT wireless gateways.
This release in the downstream repository of TI Zephyr is based on a tagged release from the Zephyr upstream. TI has built on top of that Zephyr version to add support for specific SimpleLink Wireless MCUs. Please see the Release Notes for information about which upstream Zephyr release this TI release is based on. Other dependency info is included there as well.
This release only contains
support for the CC2340R5
device. The CC32xx
and CC13xx_CC26xx
devices are
not supported in this release. However, the Zephyr community continues to
support them in the upstream repositories.
Supported by this release:
- CC2340R52
- CC2340R53
- Tested only on the following examples:
- samples/bluetooth/mesh_demo/
- samples/bluetooth/mesh/
- Tested only on the following examples:
Supported by the Zephyr community:
- CC1352R
- CC2652P
- CC2652R
- CC1352P7
- CC1352R7
- CC2652P7
- CC2652R7
- CC3220SF
- CC3235SF
Supported by this release:
- lp_em_cc2340r5
- lp_em_cc2340r53
Supported by the Zephyr community:
- cc1352p1_launchxl
- cc1352p7_launchpad
- cc1352r1_launchxl
- cc26x2r1_launchxl
- cc3220sf_launchxl
- cc3235sf_launchxl
For getting started, please refer to the Zephyr Getting Started Guide for the Zephyr project and follow the same getting-started guide for setting up the environment and building your first application.
NOTE: When running
west init
in the getting-started guide it's important to instead runwest init -m https://github.com/TexasInstruments/simplelink-zephyr --mr {tag-name} zephyrproject
in order to use the TI Zephyr repository. The{tag-name}
changes with each release from TI.You can look up the latest tag from the following link: https://github.com/TexasInstruments/simplelink-zephyr/tags
TI supports BLE FOTA for Bluetooth Peripheral samples. To enable, add the following
configurations to your project's prj.conf
.
# Enable BLE DFU FOTA MCUMGR MCUBOOT
CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_TI_MCUMGR_BT_OTA_DFU=y
The following configurations should also be applied to your project's prj.conf
to reduce flash and RAM consumption.
CONFIG_LOG=n
CONFIG_BT_RECV_WORKQ_SYS=y
CONFIG_MCUMGR_TRANSPORT_NETBUF_COUNT=2
CONFIG_MCUMGR_TRANSPORT_WORKQUEUE_STACK_SIZE=1100
You can then build MCUboot and the Bluetooth Peripheral sample using the following commands
west build -p=always -b lp_em_cc2340r5 -d build_mcuboot_f3 bootloader/mcuboot/boot/zephyr
west build -p=always -b lp_em_cc2340r5 -d build_peripheral_fota_f3 zephyr/samples/bluetooth/peripheral_fota/
By default, BLE FOTA uses the internal flash as the secondary slot for MCUboot.
For applications that require more flash, the external flash on the lp_em_cc2340r5x
can be used as the secondary slot instead. To enable this, TI provides Snippets
that can be applied at build time to enable offchip BLE FOTA. Use the commands below
as reference
west build -p=always -b lp_em_cc2340r5 -d build_mcuboot_offchip_f3 bootloader/mcuboot/boot/zephyr -S ti-spi-nor-secondary-bl
west build -p=always -b lp_em_cc2340r5 -d build_peripheral_offchip_fota_f3 zephyr/samples/bluetooth/peripheral_fota/ -S ti-spi-nor-secondary-app
Currently the XDS110 debugger supplied with TI Launchpads is not natively
supported in the west
Zephyr tool for all devices. In order to flash/debug the
CC2340R5
device with west
, only JLink
is available. The recommended version to use is V7.94f which has been used for
validation. Note that it is also possible to build an application in Zephyr
targeting CC2340R5
, and to use Code Composer Studio
to both flash and debug the application using the XDS110 debugger.
TI will tag each release with the following format: {upstream-tag}-ti-M.mm.pp(_optional-qualifier)
This tag can be broken down into 4 components:
- upstream-tag: This is the tag or commit of the Zephyr repo that the TI release is based on
- -ti-: Separator
- TI release version: This is TI's version on top of the upstream Zephyr version. The version scheme is explained below.
- Qualifier. The qualifier keyword is described below.
The TI version follows a version format, M.mm.pp, where:
- M is a 1 digit major number,
- mm is a 2 digit minor number,
- pp is a 2 digit patch number.
M.mm will follow TI's SimpleLink SDK version and is an indicator that the TI added content is based on the SimpleLink SDK with matching M.mm.
Tags that are appended with _ea are for demo only and are beta quality, while tags without the _ea keyword should be treated as production worthy releases.
All releases will be tagged using the version format above. Release notes are provided in the form of GitHub's release notices. Read the release notes for your selected version here:
https://github.com/TexasInstruments/simplelink-zephyr/releases/
This release is provided as-is and should be considered Beta quality. This product is meant for demonstration purposes only. Please refer to the Release Notes for details on specific limitations and known issues.
- For technical support with TI Zephyr, including bugs and feature requests -
submit a ticket to TI's Wireless Connectivity E2E forum
NOTE: Please do not use the Github issue tracker for this project.
Additionally, we welcome any feedback that you can give to improve the documentation!