Table of Contents

Early Samples Migration Guide

Introduction

IMPORTANT: This guide is only applicable to customer who received early samples of MSPM0 and will migrate their existing application to production samples.

The purpose of this document is to highlight:

Customers using early samples are highly encouraged to migrate their applications to a MSPM0 SDK version supporting production samples. MSPM0 SDK support for experimental samples will not be supported long-term.

The section below describes the recommended tool versions which support production samples and provides migration guidelines for applications using DriverLib and SysConfig configuration files.

The guide assumes users are working in a Windows environment. However, the concepts discussed in this guide are also applicable to Linux and MacOS.

Which samples are supported by my current MSPM0 SDK?

How to determine MSPM0 sample versions

You have production samples if:

You have early samples if:

Customers can also determine sample version by reading the VERSION bit fields (31-28) in the DEVICEID Register which is part of Device Factory Constant memory region (Located in address 0x41C40000). If VERSION bit fields is:

Important Documents

Tools Considerations

The table below lists the MSPM0 production compatible versions for use with production sample

Product Version
MSPM0 SDK 1.00 or later
SysConfig 1.15.0_2826 or later
CCS Eclipse 12.2.0 or later
CCS Theia 1.0 or later
IAR Embedded workbench for ARM 9.32.1 or later
Keil MDK-Arm with uVision 5.38a or later

Code Composer Studio (CCS)

The following Code Composer Studio versions support production samples for MSPM0 devices:

IMPORTANT: For customers planning to work with early samples and production samples, it is highly recommended to have dedicated CCS installation under a different install path than the default installation path. For example, the CCS installation for production samples can be C:\ti\production.

IAR Embedded workbench for ARM

IAR Embedded workbench for ARM 9.32 or later supports production samples for MSPM0 devices.

IMPORTANT: For customers planning to work with early samples and production samples, it is highly recommended to have dedicated IAR installation under a different install path than the default installation path. For example, the IAR installation for production samples can be C:\Program Files\IAR Systems\production. For instructions to select a SysConfig in IAR please refer to Enabling SysConfig in IAR in the SysConfig guide.

Keil MDK-Arm with uVision

For production sample development, Keil MDK-Arm with uVision v5.38a or later, with ARM Clang compiler v6.16 or later is still recommended and users are required to install the latest TexasInstruments.MSPM0L_DFP pack or TexasInstruments.MSPM0G_DFP pack as described in MSPM0 SDK KEIL Quick Start Guide

IMPORTANT: For customers planning to work with early samples and production samples, it is highly recommended to have dedicated Keil installation under a different install path than the default installation path. For example, the Keil installation for production samples can be C:\Keil_v5\production. For instructions to select a SysConfig version in Keil please refer to Enabling SysConfig in Keil in the SysConfig guide.

DriverLib Changes

This sections summarized the APIs, defines, and enums which have been updated or removed in Driverlib. Customers can reference this section to determine the appropriate action needed to resolve compilation errors during the migration.

Each subsection name below makes reference to the header and/or source file name which are located under <MSP_SDK_REPO_INSTALL_DIR>\source\ti\driverlib or <MSP_SDK_REPO_INSTALL_DIR>\source\ti\driverlib\m0p\sysctl\mspm0g.

The following scheme has been used to in the Driverlib sections:

dl_sysctl_mspm0g

Defines

Define Group Removed Added Update related to
DL_SYSCTL_INTERRUPTDL_SYSCTL_INTERRUPT_BOR_LEVELDL_SYSCTL_INTERRUPT_SRAM_SECPMCU_ENH_02
DL_SYSCTL_INTERRUPT_FLASH_DED
DL_SYSCTL_INTERRUPT_LFCLK_FAIL

Enums

Enum Name Removed Added Update related to
DL_SYSCTL_IIDXDL_SYSCTL_IIDX_BOR_LEVELDL_SYSCTL_IIDX_SRAM_SECPMCU_ENH_02
DL_SYSCTL_IIDX_FLASH_DED
DL_SYSCTL_IIDX_LFCLK_FAIL

APIs

Removed

Updated

dl_sysctl_mspm0l

Defines

Define Group Removed Added Update related to
DL_SYSCTL_INTERRUPTDL_SYSCTL_INTERRUPT_BOR_LEVELPMCU_ENH_02

NOTE: This interrupt is the only “Power Interrupt” for the M0L, so the entire section has been removed. You can no longer powerSysInterrupts or pmcuInterruptPriority for the MSPM0L device

Enums

Enum Name Removed Added Update related to
DL_SYSCTL_IIDXDL_SYSCTL_IIDX_BOR_LEVELPMCU_ENH_02

APIs

Removed

dl_crc

Enums

APIs

Removed

Updated

dl_dma

Enums

Enum name From To Update related to
DL_DMA_TRANSFER_MODE DL_DMA_REPEAT_SINGLE_TRANSFER_MODE DL_DMA_FULL_CH_REPEAT_SINGLE_TRANSFER_MODE DMA_ENH_01 and DMA_ENH_02
DL_DMA_REPEAT_BLOCK_TRANSFER_MODEDL_DMA_FULL_CH_REPEAT_BLOCK_TRANSFER_MODE
DL_DMA_EXTENDED_MODEDL_DMA_FILL_MODEDL_DMA_FULL_CH_FILL_MODE
DL_DMA_TABLE_MODEDL_DMA_FULL_CH_TABLE_MODE

Struct

The following struct members were added:

Struct name Added Update related to
DL_DMA_ConfigDL_DMA_TRIGGER_TYPE triggerTypeConfigure whether the DMA selects an internal or external channel as the DMA trigger.
DMA_ENH_06

APIs

Updated

dl_i2c

Enums

Enum Name Removed Added Update related to
DL_I2C_IIDXDL_I2C_IIDX_CONTROLLER_CLOCK_TIMEOUTDL_I2C_IIDX_TIMEOUT_AI2C_ENH_05
DL_I2C_IIDX_TIMEOUT_B

Defines

Define Group Removed Added Update related to
DL_I2C_INTERRUPTDL_I2C_INTERRUPT_CONTROLLER_CLOCK_TIMEOUTDL_I2C_INTERRUPT_TIMEOUT_AI2C_ENH_05
DL_I2C_INTERRUPT_TIMEOUT_B

APIs

Removed

dl_mathacl

Enum Name Removed Recommendation
DL_MATHACL_OP_TYPEDL_MATHACL_OP_TYPE_ARCTANUse DL_MATHACL_OP_TYPE_ARCTAN2
DL_MATHACL_OP_TYPE_MPYUse DL_MATHACL_OP_TYPE_MPY32

dl_opa

APIs

Removed

dl_rtc

APIs

Updated

dl_spi

Struct

The following struct members were added:

Struct name Added Purpose
DL_SPI_ConfigDL_SPI_DATA_SIZE dataSizeSpecify the size of the data transfer
DL_SPI_CHIP_SELECT chipSelectPinSpecify the pin to use for chip select. Used in Controller or Peripheral modes with Motorola formats.

Enums

Enum Name Removed Added Update related to
DL_SPI_PARITYDL_SPI_PARITY_BIT0_EVENDL_SPI_PARITY_EVEN
DL_SPI_PARITY_BIT0_ODDDL_SPI_PARITY_ODD
DL_SPI_PARITY_BIT1_EVEN
DL_SPI_PARITY_BIT1_ODD

APIs

Removed

Updated

dl_timera

APIs

Removed

dl_timerg

Defines

Updated

APIs

Updated

Removed

dl_timerh

All DL_TimerH APIs have been removed. Since all TimerH instances in the devices were removed and some TIMG instances were updated to be 32-bit timers with no prescale support. Please refer to the MSPM0G and MSPM0L Families: Functional Differences With Early Samples document for additional updates regarding this device level change.

SysConfig Code Generation/GUI Changes

This section shows the differences in the early sample and production sample versions of SysConfig as it relates to the GUI itself and the resulting code generation. Each row shows a code change that reflects an update to the SDK or a change to SysConfig.

Each section’s changes are described in the DriverLib section of the Migration guide and are linked in the title of the section for reference.

System Modules

DMA

Early SysConfig Settings Production SysConfig Settings

SYSCTL

Early SysConfig Settings Production SysConfig Settings
Interrupts Removed
Interrupts Removed

Communications

I2C

Early SysConfig Settings Production SysConfig Settings


SPI

Early SysConfig Settings Production SysConfig Settings

Data Integrity

CRC

Early SysConfig Settings Production SysConfig Settings
CRC Init Changes
CRC Init Changes

<Application_File>.syscfg comparison

This section highlights the differences between early sample and production sample .syscfg files and how to modify old .syscfg files to be compatible with production samples. Every project contains a .syscfg file that contains all the SysConfig configuration settings that are set via the GUI, and migrating to the latest SDK and SysConfig resulted in changes to certain parameters and functions. Each row reflects a change in the SysConfig GUI/SDK that resulted in a change to parameters. Rather than going through the GUI to make these changes, a user can directly modify this file via text editor to migrate the configuration settings to the latest version.

System Modules

DMA

Early SysConfig Settings Production SysConfig Settings

SysCtl

Early SysConfig Settings Production SysConfig Settings
G Device Defines
Settings Deleted
L Device Defines
Settings Deleted

Communications

I2C

Early SysConfig Settings Production SysConfig Settings

Data Integrity

CRC

Early SysConfig Settings Production SysConfig Settings
N/A
Optional. if not wanted, just remove line