SysConfig Migration

If you have an existing CC13xx or CC26xx software project and you want to start developing with SysConfig, follow the steps below. This guide assumes you have a stack project from the SimpleLink CC13xx or CC26xx 2.40 SDK or newer. If this is not the case, please look at the Stack Porting Guides to see how to update to SimpleLink CC13xx or CC26xx 2.40 SDK.

Note

If you are starting development with a fresh project, you don’t need to migrate from non-SysConfig to SysConfig-enabled project. In SimpleLink CC13xx/CC26xx SDK v. 2.40 and later, SysConfig-enabled projects are found in the syscfg_preview folder.

1. Add a .syscfg File to Your Project

In this guide, we will start with a Z-Stack project, then apply necessary changes to start using SysConfig.

You can use the standalone SysConfig tool to make this file. Please see the SysConfig Standalone Installer Download Page.

  • Choose the “Start a new Design” option. Choose your device, part and package. For the product path, add the following for your SDK: {SDK_INSTALL_DIR}\.metadata\product.json.

  • Add an RF stack according to your existing project (Z-Stack). Add any TI Drivers configuration that your project requires. If applicable, add one or more Radio Configuration. You can find guidelines for configuring each of these in the Get started with SysConfig chapter.

  • Save the file and add it to your project.

If you are using CCS, you can add the file by dragging it into your CCS workspace. When you add the file, the following dialog box will appear and allow you to add SysConfig to your project:

../_images/enable_dialog.png

If you are using IAR, follow the steps in Using SysConfig with IAR Workbench before you add the .syscfg file. The steps for adding the file are as follows:

  • Include the .syscfg file you want to use in the project (right click on the project → Add Files → Navigate to the .syscfg file and add it).

  • Create a custom build step: Right click on project → Options → Custom Build → Populate the following:

Option

Populate with the following:

File Name Extensions

.syscfg

Command Line

$SYSCONFIG_ROOT$/nw/nw.exe $SYSCONFIG_ROOT$/dist/cli.js -o $PROJ_DIR$ -s “$ COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR$/.metadata/product.json” –compiler iar $FILE_PATH$

Output files (one per line)

SysConfig_Generated_Files.ipcf

Run this tool before all other tools

Checked

2. Add SysConfig Options

If you are using CCS, open the Project Properties and do the following:

  • In System Configuration Tool → Basic Options → Name of the board file (-b, –board), set it to /ti/boards/.meta/<BOARD_NAME>. (E.g., if you are using a CC1312R LaunchPad, set the name to /ti/boards/.meta/CC1312R1_LAUNCHXL). It is not necessary to set the name of the device.

  • In System Configuration Tool → Basic Options → Root system config meta data file in a product or SDK (-s, –product), add ${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/.metadata/product.json.

3. Remove Board Files From Your Project

These are not needed as the board configuration is done in SysConfig. E.g. if you are using a CC1352R LaunchPad, delete the Board.h, CC1352R1_LAUNCHXL.h, and CC1352R1_LAUNCHXL.c from the project. If your project contains board files ending with *_fxns.c or *.cmd, don’t delete them.

You can see how to configure your board files and TI driver instances with SysConfig in Configure The Board Files with SysConfig. If you’re not exactly sure what peripherals are on your board and you have a TI development board, you can check the .syscfg file from an existing syscfg project for your board. E.g. if you’re using a CC26X2R LaunchPad board, you can check the .syscfg file in one of the projects in ${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR} /examples/rtos/CC26X2R1_LAUNCHXL.

4. Migrate Configuration Header File

ti_zstack_config.h contains build configuration settings. The values of these defines depend on the saved SysConfig GUI settings. Note that GPD examples have a completely separate set of configurables compared to all other examples, but they are still generated to default/sysconfig/ti_zstack_config.h. Below is a list of the correspondence between SysConfig configurable name and ti_zstack_config.h define names.

Non-GPD examples:

Submodule

Configuration

Definition

Touchlink Commissioning Endpoint

Touchlink Enabled

N/A

Touchlink Commissioning Endpoint

Touchlink Commissioning Mode

BDB_TL_[INITIATOR/TARGET]

Power Management

Power Mode of Operation

RFD_RCVC_ALWAYS_ON

Power Management

Minimal Poll Period (ms)

MINIMUM_APP_POLL_RATE

Power Management

Poll Period (ms)

POLL_RATE

Power Management

Queued Message Poll Period (ms)

QUEUED_POLL_RATE

Power Management

Data Response Poll Period (ms)

RESPONSE_POLL_RATE

Power Management

Rejoin Message Poll Period

REJOIN_POLL_RATE

Radio

Primary Channels

DEFAULT_CHANLIST

Radio

Secondary Channels

SECONDARY_CHANLIST

Radio

Transmit Power

TXPOWER

Network

PAN ID

ZDAPP_CONFIG_PAN_ID

Network

Extended PAN ID to Extended Address

SET_EPID_AS_EXT_ADDR

Network

Extended PAN ID

ZDAPP_CONFIG_EPID

Network

Default Network Key

DEFAULT_KEY

Network

Distributed Global Link Key

DISTRIBUTED_GLOBAL_LINK_KEY

Network

TC Link Key

DEFAULT_TC_LINK_KEY

Network

Network Maximum Device List

NWK_MAX_DEVICE_LIST

Network

ZDSECMGR_TC_DEVICE_MAX

ZDSECMGR_TC_DEVICE_MAX

Network

End Device Timeout

END_DEV_TIMEOUT_VALUE

Advanced/Routing

Route Expiry Time (s)

ROUTE_EXPIRY_TIME

Advanced/Routing

Network Indirect Message Timeout(s)

NWK_INDIRECT_MSG_TIMEOUT

Advanced/Routing

Max Route Request Entires

MAX_RREQ_ENTRIES

Advanced/Packet Sending

MAC Frame Retries

ZMAC_MAX_FRAME_RETRIES

Advanced/Packet Sending

NWK Data Retries

NWK_MAX_DATA_RETRIES

Advanced/Packet Sending

APS Retries

APSC_MAX_FRAME_RETRIES

Advanced/Packet Sending

APS ACK Wait Duration (ms)

APSC_ACK_WAIT_DURATION_POLLED

Advanced/Packet Sending

MAC Data Poll Retries

MAC_DATA_POLL_RETRIES

Advanced/Max Table Sizes

Group Table Size

APS_MAX_GROUPS

Advanced/Max Table Sizes

Routing Table Size

MAX_RTG_ENTRIES

Advanced/Max Table Sizes

Binding Table Size

NWK_MAX_BINDING_ENTRIES

GPD examples:

Submodule

Configuration

Definition

Radio

Channel

GPD_CHANNEL

Radio

TX Power

TXPOWER

Network

Green Power Device Type

DEVICE_ID

Network

Green Power Device ID Type

GPD_APP_ID

Network

Green Power Device ID

GPD_ID

Security

Data Frame Security Level

GP_SECURITY_LEVEL

Security

Data Frame Security Key Type

EXT_OPT_KEY_TYPE

Security

Data Frame Security Key

GP_SECURITY_KEY

Advanced

Data Frame Retries

GPDF_FRAME_DUPLICATES

Advanced

Auto-commissioning

AUTO_COMMISSIONING

Advanced

Radio Receive After Transmit

RX_AFTER_TX

Advanced

Sequence Number Capability

SEQUENCE_NUMBER_CAP

SysConfig should already come with the standard defaults for both TI-Driver and Z-Stack configurations. Once all values have been defined inside of SysConfig, building the project will generate the ti_zstack_config.h file. When you have eventually built the project with SysConfig enabled, you will find the SysConfig-built version of ti_zstack_config.h in the output default/sysconfig folder of the project.

Note

Currently, manually changing the CCS/IAR project creation files (projectspec/ewp, etc.) could have unseen side effects. An easier path may be to import one of the Z-Stack SysConfig examples and migrate your application accordingly.