Release Notes
Table of Contents
Introduction
This is a GA release of the Core SDK 3.40.01.02 for the CC26xx and CC13xx devices.
Documentation
Open the documentation overview web page file in the SDK’s Doc folder for a full list of documentation.
For further information on the drivers included in this product, see the Drivers Release Notes
What’s New
- This release updates to the newest code gen tools. See the Validation Information section for details on what versions of each code gen tools was used to test this release.
New Features
ID | Summary |
---|---|
TIRTOS-1355 | Sync CC1352 smartrf settings with SmartRF Studio 2.8.0 |
TIRTOS-1348 | Update RF examples to share common code for TIRTOS and NORTOS |
TIRTOS-1312 | Update POSIX pthread support to show ‘fxn’ in UIA execution graph |
TIRTOS-1285 | Enable FreeRTOS re-entrancy support for GNU targets (use newlib-nano) |
TIRTOS-1212 | Add examples for CC1312R1 launchpad |
TIDRIVERS-1279 | Revise Crypto APIs |
TIDRIVERS-1278 | Remove internal key generation from Agama crypto driver implementations |
TIDRIVERS-1257 | Add board and linker files for CC1312R LaunchPad |
TIDRIVERS-1214 | LaunchPad Board files should disable external flash memory during initialization |
TIDRIVERS-1183 | Improve RAM footprint of No-RTOS HwiP dispatch table |
TIDRIVERS-1174 | Provide IOCTL command for FIFO interrupt depth in CC26xx UART driver |
TIDRIVERS-1159 | Enable UART1 in CC26XX driver |
TIDRIVERS-1132 | Implement generic ECDSA driver for CC13X2/CC26X2 devices |
TIDRIVERS-1105 | Implement generic EC J-PAKE driver for CC13X2/CC26X2 devices |
TIDRIVERS-956 | Implement generic SHA2 driver for CC13X2/CC26X2 devices |
TIDRIVERS-952 | Implement generic AES_ECB driver for CC13X2/CC26X2 devices |
TIDRIVERS-736 | Remove CSN wakeup functionality from SPICC26XXDMA |
TIDRIVERS-476 | Provide convenience macros to convert time into RAT ticks in the RF driver |
Bugs Resolved
ID | Summary |
---|---|
TIRTOS-1282 | FreeRTOS POSIX clock should support CLOCK_REALTIME |
TIRTOS-1214 | GPIO callbacks cannot be disabled in GPIO Interrupt example |
TIRTOS-1199 | Example gcc makefiles are missing rts include path |
TIRTOS-906 | Add support for POSIX errno |
TIDRIVERS-1286 | RF driver scheduling issue for high priority client scheduling in the future |
TIDRIVERS-1284 | NoRTOS SemaphoreP_post can permanently disable power policy |
TIDRIVERS-1270 | Provide more SPI CS management options for NVSSPI25X |
TIDRIVERS-1269 | ADC driver does not clear IRQ flags |
TIDRIVERS-1265 | CC26xx ADC driver configures IO incorrectly |
TIDRIVERS-1260 | NVS post verify always fails |
TIDRIVERS-1256 | Correct the RAT sync criterion in single-mode |
TIDRIVERS-1249 | NoRTOS HwiPCC26XX dispatch table does not cover all possible CC13X2/CC26X2 interrupts |
TIDRIVERS-1243 | RAT Compare prevents BLE5-posted command from starting |
TIDRIVERS-1225 | NVS drivers pre-erase 2 sectors when write is equal to sector size |
TIDRIVERS-1217 | RF Driver: fsmSetupState is changing the rate word in the setup command in proprietary mode |
TIDRIVERS-1208 | NoRTOS HwiPCC26XX_construct not setting the correct priority when called from UARTCC26XX_Open |
TIDRIVERS-1178 | Introduce automatic power management for the RAT APIs |
TIDRIVERS-1172 | SPICC26XXDMA should require transfer buffers to be aligned to data size |
TIDRIVERS-1022 | Remove AUX power down code from Power_init() for CC13X2/CC26X2 devices |
TIDRIVERS-724 | SPI drivers should set transaction status |
Upgrade and Compatibility Information
This release breaks compatibility with previous releases of the Core SDK in the following ways:
The Crypto driver APIs have been updated. The previous generic crypto APIs took all parameters in as function arguments, which often necessitated temporary storage in the object. It also increases stack requirements, since the objects needed to be copied and put on the stack during the call.
The gpioPinConfig[] tables in the board files (e.g., CC1310_LAUNCHXL.c, CC2650_LAUNCHXL.c) have been updated to not configure the pins at init time. This was done to allow the GPIO APIs and PIN APIs to work together in a single application. You must call GPIO_setConfig() at runtime before using a GPIO_read() or GPIO_write() API call. See the ‘gpiointerrupt’ example for example use of the GPIO_setConfig() API.
The POSIX headers have been reworked to support TIRTOS and FreeRTOS in a single set of .h files. This will allow middleware libraries that depend on the POSIX APIs to be compiled once for use in either the TIRTOS or FreeRTOS environment. These changes will require you to make some simple modifications when moving to Core SDK 3.40. The two areas affected by this change are described below.
(1) TI-RTOS kernel configuration file (.cfg)
The POSIX package name has changed, and the one configuration parameter name has been modified. The semantics remain the same.
Old Values
Package Name: ti.sysbios.posix
Config Param: Settings.supportsMutexPriority
New Values
Package Name: ti.posix.tirtos
Config Param: Settings.enableMutexPriority
These changes must be made in your kernel configuration script. The following is a typical setting using the old values:
var Settings = xdc.useModule('ti.sysbios.posix.Settings');
Settings.supportsMutexPriority = true;
You will need to change these statements as follows:
var Settings = xdc.useModule('ti.posix.tirtos.Settings');
Settings.enableMutexPriority = true;
(2) The compiler include path
When compiling, you will need to modify your include path to the new location of the POSIX header files. The include path now depends on the toolchain being used.
Old Values
TIRTOS: <SDK_INSTALL_DIR>/kernel/tirtos/packages/ti/sysbios/posix
FreeRTOS: <SDK_INSTALL_DIR>/kernel/freertos/posix
New Values
CCS Compiler: <SDK_INSTALL_DIR>/source/ti/posix/ccs
GCC Compiler: <SDK_INSTALL_DIR>/source/ti/posix/gcc
IAR Compiler: <SDK_INSTALL_DIR>/source/ti/posix/iar
Host Support
See the SDK release notes for a description of which host operating systems are supported in this release.
Dependencies
See the SDK release notes for a description of which components and tools are required to work with this product.
Device Support
See the SDK release notes for a list of TI devices that are supported in this product.
Validation Information
The Core SDK was validated with the following components:
- Code Composer Studio 7.4.0
- ARM 16.9.6.LTS
- GNU Code Generation Tools
- gcc-arm-none-eabi-6-2017-q1-update
- IAR Code Generation Tools
- ARM 8.11.4
- XDCTools 3.50.04
Known Issues
ID | Summary |
---|---|
TIRTOS-476 | POSIX threads render as single task in execution graph |
TIDRIVERS-858 | Stack Underflow in SHA256 finish |
TIDRIVERS-723 | UARTCC26XX.c accepts invalid open parameters |
TIDRIVERS-439 | RF_ratCompare works intermittently in single mode code when future commands are posted |
TIDRIVERS-406 | Warning in sensorI2C.c when building BLE CCS projects using I2C |
TIDRIVERS-386 | Timing difference from SYSRESET as compared to a hard reset |
TIDRIVERS-206 | Display driver does not support float |
TIDRIVERS-204 | LCDDogm128 writes outside buffer |
TIDRIVERS-188 | SPICC26XXDMA / UDMACC26XX - Bus faults not handled |
TIDRIVERS-146 | Possible bug in LCD driver (DOGM 128-6) for drawing/clearing vertical lines |
TIDRIVERS-92 | Incorrect thread safety in LCD_open |
Versioning
This product’s version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.
Prior Release Changes
Core SDK 3.30.00 (Aug 23 2017)
New Features
ID | Summary |
---|---|
TIRTOS-1285 | Enable FreeRTOS re-entrancy support for GNU targets (use newlib-nano) |
Bugs Resolved
ID | Summary |
---|---|
TIRTOS-1282 | FreeRTOS POSIX clock should support CLOCK_REALTIME |
TIRTOS-1199 | Example gcc makefiles are missing rts include path |
TIRTOS-906 | Add support for POSIX errno |
TIDRIVERS-1260 | NVS post verify always fails |
TIDRIVERS-724 | SPI drivers should set transaction status |
Core SDK 3.20.02 (Jul 10 2017)
New Features
None
Bugs Resolved
ID | Summary |
---|---|
TIRTOS-1195 | Add a new board for CC1350 Launchpad in 433MHz band |
TIDRIVERS-1155 | NVS sections in GCC linker files should only set alignment |
TIDRIVERS-1110 | Provide an NVS driver for RAM (NVSRAM) |
TIDRIVERS-1109 | RF_cancelCmd() and RF_flushCmd() shall return RF_StatCmdEnded after command has finished |
TIDRIVERS-1075 | Make Power_idleFunc() the default idleCallback in NoRTOS module |
TIDRIVERS-972 | For better Flash utilization in the ROM build flow with TI tools, use linker's ‘>>’ to place .text, .const,.sections. |
TIDRIVERS-957 | Implement generic ECDH driver for CC26X2 |
TIDRIVERS-954 | Implement generic AES_CCM driver for CC26X2 |
TIDRIVERS-75 | Update CC26XX SPI driver to have a polling mechanism for small transfers |
Core SDK 3.20.00 (May 25 2017)
New Features
ID | Summary |
---|---|
TIRTOS-1193 | No-RTOS Display_printf “%%” problem in SystemP_nortos.c |
TIRTOS-1163 | Display_print3 does not print out % in FreeRTOS based examples |
TIRTOS-1160 | NoRTOS SwiP_destruct() gets stuck if the SWI is never posted after construct |
TIDRIVERS-1182 | Race condition in No-RTOS HwiP_dispatch for CC3220, CC13xx and CC26xx |
TIDRIVERS-1178 | Introduce automatic power management for the RAT APIs |
TIDRIVERS-1170 | NVSSPI25X0 driver fails to read more than 1024 bytes at a time properly. |
TIDRIVERS-1169 | LPRF board files do not enable UART ring buffer |
TIDRIVERS-1157 | RF_runCmd() and RF_pendCmd() should not return RF_EventCmdError |
TIDRIVERS-1147 | SPI drivers should support transfer timeout |
TIDRIVERS-1136 | NoRTOS SemaphoreP_pend should use local ClockP structure |
TIDRIVERS-1106 | POSIX clock_gettime() for FreeRTOS needs to be more accurate |
TIDRIVERS-1089 | RF driver – flush command does not remove the commands from the queue |
TIDRIVERS-1083 | RF driver has a problem in handling background command |
TIDRIVERS-1058 | Race condition in UARTCC26XX_read() implementation |
TIDRIVERS-1020 | RF command with absolute start trigger failed with ‘Error past start’ when many clocks are active |
TIDRIVERS-983 | RF driver hangs in RF_pendCmd in RFCC26XX_multiMode.c |
Bugs Resolved
ID | Summary |
---|---|
TIDRIVERS-1136 | NoRTOS SemaphoreP_pend should use local ClockP structure |
Core SDK 3.10.03 (Mar 23 2017)
New Features
None
Bugs Resolved
ID | Summary |
---|---|
TIRTOS-1069 | NoRTOS RF examples should be provided for all boards |
TIRTOS-1066 | Set configUSE_TIME_SLICING to ‘0’ in all FreeRTOSConfig.h files |
TIRTOS-1036 | Supply Portable example with native RTOS APIs |
TIRTOS-1022 | Support NoRTOS build for CC13xx/CC26xx |
TIRTOS-1019 | Update CC13xx/CC26xx builds to use -DDeviceFamily_CC13X0, etc |
TIRTOS-1009 | Add examples for NVS for internal and external SPI FLASH when available |
TIRTOS-991 | Optimize DPL for size |
TIRTOS-988 | Provide all single-task driver examples also for Non-RTOS |
TIRTOS-948 | pthread_cond_timedwait should support CLOCK_MONOTONIC |
TIRTOS-644 | Redundant FreeRTOS C stack definitions |
TIRTOS-615 | Create example for UARTMon module |
TIDRIVERS-1021 | ti/mw/lcd should be updated to use DPL to allow use with nortos |
TIDRIVERS-1008 | Need Posix sleep and usleep for NoRTOS |
TIDRIVERS-987 | RF driver - Only accept RF mode in single mode which is compatible with the device family |
TIDRIVERS-986 | RF driver - RF_open/RF_close threading issue |
TIDRIVERS-975 | Replace variable type unsigned int to uint32_t in single-mode RF driver |
TIDRIVERS-971 | Provide NVS driver for SPI FLASH |
TIDRIVERS-958 | Follow up on BLE stack RF_Object issue (RF.h) |
TIDRIVERS-938 | Add examples to doxygen how to use the RF driver in case of synth lock error |
TIDRIVERS-926 | [RF driver] - Enable override trimming required on CC26x0R2 BLE5 coded PHY |
TIDRIVERS-925 | Replace turning off extFlash in PIN examples with bit-banged SPI PIN macro |
TIDRIVERS-922 | Update PDM doxygen about which SCLK_HF I2S can run off of |
TIDRIVERS-916 | Board.html should specify pin functions for communication buses |
TIDRIVERS-900 | Various driver pin encodings need to be explained better |
TIDRIVERS-895 | Do not specify HWI/SWI priorities in the board files, but rather in the application code |
TIDRIVERS-891 | Rename ADC_convertRawToMicroVolts to ADC_convertToMicroVolts |
TIDRIVERS-887 | Capture Driver top level implementation review and fix |
TIDRIVERS-881 | Construct and destruct APIs for DPL |
TIDRIVERS-865 | Add support for resetting the device if JTAG_PD is turned on due to noise on TCK (CC2640_R2) |
TIDRIVERS-853 | Move I2S dependency on uDMA from PDM driver to power driver |
TIDRIVERS-781 | CC13xx/26xx drivers should use DPL for OS independence (or use without RTOS) |
TIDRIVERS-780 | DPL for non-RTOS support for CC13xx/CC26xx |
TIDRIVERS-488 | Review TI-RTOS SemaphoreP implementation with goal to reduce stack usage |
Core SDK 3.10.02 (Mar 1 2017)
New Features
None
Bugs Resolved
ID | Summary |
---|---|
TIRTOS-1031 | FreeRTOS mq_getattr() should not disable scheduler |
TIRTOS-954 | Update ADC examples to show microvolt values |
TIDRIVERS-1054 | Correct the IEEE RX command definition |
TIDRIVERS-1029 | Executing RF_yield while the RAT is OFF causes the RF driver hang |
TIDRIVERS-1027 | SemaphoreP_pend for FreeRTOS does not work with tick rate less than 1 msec |
TIDRIVERS-1024 | Remove unnecessary fxn param in PDMCC26XX_utils.c driverlib call |
TIDRIVERS-1023 | Inproper handling of shared interrupts of IEEE foreground/background commands |
TIDRIVERS-1015 | Fix Chameleon 5x5 AUXIO-DIO mapping |
TIDRIVERS-1013 | FreeRTOS posix mqueue.h mode_t needs to be uint32_t |
TIDRIVERS-1011 | Fix vulnerability in CryptoCC26XX.h CCM example |
TIDRIVERS-1005 | SemaphoreP_Params_init() should set mode to COUNTING |
TIDRIVERS-1001 | Refactor interrupt handling in the RF driver |
TIDRIVERS-984 | Expand the common RF_RadioSetup union with the BLE5 definition |
TIDRIVERS-934 | Timeouts for Posix FreeRTOS need to handle wrapping |
TIDRIVERS-931 | NVS cannot use block larger than flash page size |
TIDRIVERS-928 | NVSCC26XX driver does not lock interrupts while accessing the flash |
TIDRIVERS-549 | NVSCC26XX driver does not disable line buffers |
Core SDK 3.10.00 (Feb 15 2017)
New Features
ID | Summary |
---|---|
TIRTOS-1021 | Update CC13xx/CC26x driverlib (with RF patch for cc26x0r2) |
TIDRIVERS-992 | ti/mw/remotecontrol/buzzer.c references driverLib (should be driverlib) |
Bugs Resolved
ID | Summary |
---|---|
TIRTOS-992 | FreeRTOS POSIX mq_send and mq_receive should be callable from ISR context |
Core SDK 3.01.01 (Dec 9 2016)
New Features
ID | Summary |
---|---|
TIRTOS-946 | Release.cfg should use policyMin instead of policySpin |
TIRTOS-925 | IAR Examples.html should reference .eww and not .ipcf files any longer |
TIRTOS-849 | Capture example needs to be replaced by CapturePWM |
TIRTOS-842 | Need Mailbox example in the product |
TIRTOS-750 | The CoreSDK is carrying around unnecessary files/directories |
Bugs Resolved
ID | Summary |
---|---|
TIRTOS-945 | pthread_setschedparam not supported in Freertos POSIX |
TIRTOS-933 | CCS platform warning with TI-RTOS examples |
TIRTOS-903 | Inconsistent declaration for timer_create, TI-RTOS and FreeRTOS |
TIRTOS-900 | Display driver not printing float values |
TIRTOS-897 | Makefile for FreeRTOS kernel has bad error message if FREERTOS_INSTALL_DIR is not set |
TIRTOS-891 | RTOS build in IAR should be an .ewp and preferably a dependent project like in CCS |
TIRTOS-785 | Board_ADCBUFCHANNEL0 should be changed to Board_ADCBUF0CHANNEL0 for consistency |
TIRTOS-776 | Posix usleep() function implemented in millisecond and not in microseconds |
TIRTOS-749 | C++ constructors on FreeRTOS with GCC are not called |
TIRTOS-709 | RTOS config projects are available only in makefile for IAR |
TIRTOS-415 | IAR tools must be installed in non-default location to work with gmake |
TIDRIVERS-890 | exit() support is missing in gcc libraries for FreeRTOS |
TIDRIVERS-837 | FreeRTOS Posix timer APIs need to check if in an ISR |
TIDRIVERS-745 | Change reverse() in source\ti\mw\lcd\SharpGrLib.c to SharpGrLib_reverse() |
Core SDK 3.01.00 (Nov 9 2016)
New Features
ID | Summary |
---|---|
TIRTOS-838 | Update the IAR/Arm compiler tools to version 7.80.x |
TIRTOS-832 | kernel examples should get stack size from linker.cmd files like driver examples |
TIRTOS-821 | remove ‘eclipse’ directory from the product, CCSv7 needs only .metadata folder |
Bugs Resolved
ID | Summary |
---|---|
TIRTOS-814 | Update primary_heap size logic in TI and GCC linker .cmd files |
TIRTOS-606 | Makefiles should support tools directory names that contain spaces |
TIDRIVERS-796 | Display_getType compile error for Display_DISABLE_ALL |