SysConfig Migration

If you have an existing CC13x2 or CC26x2 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 CC13x2 or CC26x2 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 CC13x2 or CC26x2 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 CC13x2 / 26x2 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 EasyLink 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 (EasyLink). 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_CC13X2_26X2_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_CC13X2_26X2_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_CC13X2_26X2_SDK_INSTALL_DIR} /examples/rtos/CC26X2R1_LAUNCHXL.

4. Migrate smartrf_settings

All radio settings are controlled by SysConfig. You can see how to set them in Adding RF Settings.

Delete the smartrf_settings folder in your project, including the smartrf_settings files.

When you have finished doing all the changes, you can compare your old smartrf_settings files to the SysConfig generated files found in the output folder of the example (ti_radio_config.c/h).

Reference

Parameters that no longer have to be set at run-time and can be configured statically in SysConfig. These settings take affect when EasyLink_init is called:

  • Address Filtering
  • Address Size
  • Radio Inactivity timeout
  • Multi-client mode
  • Asynchronous Rx Timeout

Map of defines in ti_easylink_config.h to configurables in the EasyLink module:

EASYLINK_DEFAULT_ADDR TX Settings → Transmit Address
EASYLINK_USE_DEFAULT_ADDR Automatically set when TX Settings → Transmit Address is changed
EASYLINK_MAX_DATA_LENGTH Max Data Length (bytes)
EASYLINK_ADDRESS_SIZE Address Size (bytes)
EASYLINK_ENABLE_ADDR_FILTERING RX Settings → Enable Address Filtering
EASYLINK_ADDR_FILTER_TABLE RX Settings → Addresses to Filter On (comma separated)
EASYLINK_NUM_ADDR_FILTER Automatically updated to the number of addresses in RX Settings → Addresses to Filter On (comma separated)
EASYLINK_IDLE_TIMEOUT Radio Inactivity Timeout (ms)
EASYLINK_ENABLE_MULTI_CLIENT Advanced Settings → Enable Multi-Client Mode
EASYLINK_ASYNC_RX_TIMEOUT RX Settings → Asynchronous Rx Timeout (ms)
EASYLINK_MIN_CCA_BACKOFF_WINDOW TX Settings → CCA Settings → Minimum Backoff Window Multiplier. (Note that the value generated in easylink_config.h is the log base 2 of the value found in the TX Settings → CCA Settings → Minimum Backoff Window Multiplier drop-down)
EASYLINK_MAX_CCA_BACKOFF_WINDOW TX Settings → CCA Settings → Maximum Backoff Window Multiplier. (Note that the value generated in easylink_config.h is the log base 2 of the value found in the TX Settings → CCA Settings → Maximum Backoff Window Multiplier drop-down)
EASYLINK_CCA_BACKOFF_TIMEUNITS TX Settings → CCA Settings → Backoff Time Units (us)
EASYLINK_CS_RSSI_THRESHOLD_DBM TX Settings → CCA Settings → RSSI Threshold (dBm)
EASYLINK_CHANNEL_IDLE_TIME_US TX Settings → CCA Settings → Channel Idle Time (us)
EASYLINK_PARAM_CONFIG .ui32ModType: Radio Settings → Default PHY
.pClientEventCb: Advanced Settings → Client Event Callback Function
.nClientEventMask: Advanced Settings → Client Event Mask
.pGrnFxn: TX Settings → CCA Settings → Random Number Generation Function