Release Notes
Table of Contents
Introduction
This is a GA release of the Core SDK 3.40.01.02 for MSP432P4 devices.
Documentation
Open the documentation overview web page file in the SDK’s Doc folder for a full list of documentation.
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-1318 | Update Power Management User's Guide describing enhancements for MSP432P4 |
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-1281 | Include FatFS examples for NoRTOS |
TIRTOS-1032 | POSIX header files should be binary compatibile for TIRTOS and FreeRTOS |
TIDRIVERS-1280 | UART drivers should have error function in HwAttrs |
TIDRIVERS-1183 | Improve RAM footprint of No-RTOS HwiP dispatch table |
TIDRIVERS-1100 | Add support in MSP432P4 ADCBuf Driver for ULTRA LOW POWER MODE using the ADCBuf_control API |
TIDRIVERS-1073 | Add support for Differential Mode to MSP432P4 ADCBuf driver (see adcInputMode in ADCBufMSP432_HWAttrs for more details) |
TIDRIVERS-1071 | MSP432P4 ADCBuf Driver defaults to only first sample triggered by Timer Trigger |
TIDRIVERS-1061 | Add DMA option to MSP432P4 ADCBuf driver (see useDMA in ADCBufMSP432_HWAttrs for more details) |
TIDRIVERS-1059 | Add crystal and alternate clock source support to PowerMSP432 driver |
TIDRIVERS-856 | Add support in MSP432P4 ADCBuf Driver for Internal Sources - Battery Monitor and Temperature Sensor (see adcInternalSource in ADCBufMSP432_HWAttrs for more details) |
TIDRIVERS-704 | Convert SDSPI implementations to use SDFatFS interface |
Bugs Resolved
ID | Summary |
---|---|
TIRTOS-1345 | Timed functions expecting abstime on CLOCK_REALTIME are broken |
TIRTOS-1282 | FreeRTOS POSIX clock should support CLOCK_REALTIME |
TIRTOS-1280 | POSIX barrier broken on FreeRTOS |
TIRTOS-1199 | Example gcc makefiles are missing rts include path |
TIRTOS-906 | Add support for POSIX errno |
TIDRIVERS-1314 | DPL nortos MSP432P4 Timer overflow issue |
TIDRIVERS-1309 | PWMTimerMSP432 clobbers shared port pins |
TIDRIVERS-1284 | NoRTOS SemaphoreP_post can permanently disable power policy |
TIDRIVERS-1272 | Update MSP432P4 SPI driver phase and polarity settings to align with other SimpleLink device drivers (see Upgrade/compatibility section for more details) |
TIDRIVERS-1260 | NVS post verify always fails |
TIDRIVERS-1225 | NVS drivers pre-erase 2 sectors when write is equal to sector size |
TIDRIVERS-1090 | Add support for all valid input clockSources to MSP432P4 ADCBuf driver (see clockSource in ADCBufMSP432_HWAttrs for more details) |
TIDRIVERS-724 | SPI drivers should set transaction status |
Upgrade and Compatibility Information
Phase & Polarity settings for the MSP432P4 SPI Driver have been updated to align with other SimpleLink devices driver implementations. This change may impact existing SPI Phase/Polarity in your application from previous SDK releases.
In the previous revision of the ADC driver, the initial trigger of an ADC conversion would comply with the configurations defined in the HW attributes and parameters but all subsequent conversions would occur automatically upon completion of the previous conversion. The resulting sampling rate would be a function of the ADC sample timer, the sample-hold time defined in the samplingDuration of ADCBUFMSP432_ParamsExtension, resolution, and the ADC Clock source:
ADC SampleTimer -> 2
Sample-Hold -> 4 (default)
Resolution -> 16 (default of 14-bit)
ADC Clock source-> 25Mhz (default of ADC_OSC)
Resulting Maximum Sample Rate = 25Mhz/22 = 1.14Msps
In the new ADC driver, the ADC sample timer is only used when:
ADCBufMSP432_HWAttrs.adcTriggerSource == ADCBufMSP432_SOFTWARE_AUTOMATIC_TRIGGER
This enables the ADC to run without the timer and as quickly as possible, making possible the previously mentioned resulting maximum sample rate of 1.14Msps. When the trigger source is selected from one of the timer trigger sources, the ADC uses pulse sample mode and the sample-hold time as well as the sample rate defined by the timer trigger duty cycle. The parameter timerDutyCycle of ADCBufMSP432_HWAttrs defines the duty cycle and consequently the sample-hold. This mode supports resulting sampling rates up to 1Msps and sample and hold times as low as 208.3ns.
The MSP432-specific “PowerMSP432_PerfLevel” structure definition (in PowerMSP432.h) has many new fields for supporting new clock source and divider selections. This structure change only affects users who may have previously defined their own custom performance levels, by defining their own PowerMSP432_PerfLevel structures in their board file. To take advantage of the new clock source and divider options, these users will need to update their PowerMSP432_PerfLevel structure definitions. The new fields as well as instructions for defining custom performance levels is described for PowerMSP432.h in the “Drivers Runtime API (doxygen)” (linked from the Core SDK Documentation Overview).
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
- FreeRTOS 9.0.0
- XDCTools 3.50.04
Known Issues
ID | Summary |
---|---|
TIRTOS-476 | POSIX threads render as single task in execution graph |
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) |
TIRTOS-1281 | Include FatFS examples for NoRTOS |
TIRTOS-1032 | POSIX header files should be binary compatibile for TIRTOS and FreeRTOS |
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 |
---|---|
TIDRIVERS-1155 | NVS sections in GCC linker files should only set alignment |
TIDRIVERS-1111 | Enhance SPI MSP432 driver implementation to handle DMA transfers > 1024 |
TIDRIVERS-1110 | Provide an NVS driver for RAM (NVSRAM) |
TIDRIVERS-1075 | Make Power_idleFunc() the default idleCallback in NoRTOS module |
TIDRIVERS-74 | Update MSP432 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 |
TIDRIVERS-1177 | Remove usage of shutdown disallow constraints by drivers |
TIDRIVERS-1147 | SPI drivers should support transfer timeout |
TIDRIVERS-1136 | NoRTOS SemaphoreP_pend should use local ClockP structure |
TIDRIVERS-1122 | ADCBufMSP432 causing bus fault |
TIDRIVERS-1106 | POSIX clock_gettime() for FreeRTOS needs to be more accurate |
TIDRIVERS-1087 | Drive Strength is available only for 4 pins. P2.0 to P2.3 - GPIOMSP432 |
TIDRIVERS-1086 | GPIO_setConfig in GPIOMSP432.c should exit gracefully if invalid port is selected for Hwi creation |
TIDRIVERS-1067 | MSP432 I2C error condition not handled safely, resulting in bus error |
TIDRIVERS-893 | TimerMSP432 driver has multiple bugs |
Bugs Resolved
ID | Summary |
---|---|
TIDRIVERS-1136 | NoRTOS SemaphoreP_pend should use local ClockP structure |
Core SDK 3.10.02 (Mar 1 2017)
New Features
None
Bugs Resolved
ID | Summary |
---|---|
TIRTOS-1066 | Set configUSE_TIME_SLICING to ‘0’ in all FreeRTOSConfig.h files |
TIRTOS-1056 | Remove spiloopback4wiremode example |
TIRTOS-1036 | Supply Portable example with native RTOS APIs |
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-952 | MSP432 GCC startup files require define from GCC standard libraries |
TIRTOS-948 | pthread_cond_timedwait should support CLOCK_MONOTONIC |
TIRTOS-644 | Redundant FreeRTOS C stack definitions |
TIRTOS-615 | Create example for UARTMon module |
TIDRIVERS-1008 | Need Posix sleep and usleep for NoRTOS |
TIDRIVERS-971 | Provide NVS driver for SPI FLASH |
TIDRIVERS-916 | Board.html should specify pin functions for communication buses |
TIDRIVERS-900 | Various driver pin encodings need to be explained better |
TIDRIVERS-891 | Rename ADC_convertRawToMicroVolts to ADC_convertToMicroVolts |
TIDRIVERS-887 | Capture Driver top level implementation review and fix |
TIDRIVERS-884 | MSP432 TI Driver SPI 4 wire example update |
TIDRIVERS-881 | Construct and destruct APIs for DPL |
TIDRIVERS-488 | Review TI-RTOS SemaphoreP implementation with goal to reduce stack usage |
Core SDK 3.10.01 (Feb 24 2017)
New Features
None
Bugs Resolved
ID | Summary |
---|---|
TIRTOS-1031 | FreeRTOS mq_getattr() should not disable scheduler |
TIRTOS-1027 | i2cmsp432 does not work if write/read on same transaction |
TIRTOS-1012 | MSP432 linker files must ALIAS SRAM_CODE & SRAM_DATA |
TIRTOS-954 | Update ADC examples to show microvolt values |
TIRTOS-936 | TI-RTOS examples suppress ULP warnings |
TIDRIVERS-1077 | TimerMSP432 bug fixes (update Timer_getCount() and Timer_start()) |
TIDRIVERS-1062 | MSP432 Timer_open should check registers to see if timer is already in use |
TIDRIVERS-1054 | Correct the IEEE RX command definition |
TIDRIVERS-1027 | SemaphoreP_pend for FreeRTOS does not work with tick rate less than 1 msec |
TIDRIVERS-1014 | PWMMSP432 setPeriod() bug |
TIDRIVERS-1013 | FreeRTOS posix mqueue.h mode_t needs to be uint32_t |
TIDRIVERS-1005 | SemaphoreP_Params_init() should set mode to COUNTING |
TIDRIVERS-960 | ADC14 single driver, ADCMSP432.c only supports performance levels 0 and 1 |
TIDRIVERS-934 | Timeouts for Posix FreeRTOS need to handle wrapping |
TIDRIVERS-929 | PowerMSP432.c has non-MAP_ function calls |
Core SDK 3.10.00 (Feb 15 2017)
New Features
ID | Summary |
---|---|
TIRTOS-992 | FreeRTOS POSIX mq_send and mq_receive should be callable from ISR context |
Bugs Resolved
ID | Summary |
---|---|
None | None |
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 |
---|---|
None | None |
Core SDK 3.01.00 (Nov 9 2016)
New Features
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() |
Bugs Resolved
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 |