CC13x2x1 or CC26x2x1 to CC13x1x3 or CC26x1x3 Software Migration

This section will describe how to migrate a project based on the CC13x2x1 or CC26x2x1 devices to a CC13x1x3 or CC26x1x3 project. This guide assumes that the SDK version will stay the same between the CC13x2x1 or CC26x2x1 project and the CC13x1x3 or CC26x1x3 project.

The best way to migrate is to open a new project from the new SDK and transfer your changes and application code over to the new example. An example of what this process looks like will be included in this guide.

Key Differences between CC13x2x1 or CC26x2x1 and CC13x1x3 or CC26x1x3

The CC13x1x3 or CC26x1x3 devices and the CC13x2x1 or CC26x2x1 devices share the same SDK which greatly simplifies the software migration process. However, there are a few key differences that must be kept in mind if one is interested in migrating from the CC13x2x1 or CC26x2x1 devices to the CC13x1x3 or CC26x1x3 devices. The following features have been removed and are not present in the CC13x1x3 or CC26x1x3 devices.

  • IEEE 754-compliant single-precision Floating Point Unit (FPU)

  • Memory Protection Unit (MPU)

  • AES 256-bit crypto accelerator

  • ECC and RSA Public Key Hardware Accelerator

  • SHA2 Accelerator

  • Sensor Controller with 4KB of SRAM

The CC13x1x3 or CC26x1x3 devices are pin compatible with the CC13x2x1 or CC26x2x1 devices but the CC13x1x3 or CC26x1x3 devices only have one UART and SSI, 32KB SRAM and 8KB cache which can be repurposed as general purpose RAM. (with parity removed) and 40 kB of ROM. These differences must be kept in mind during the migration. Before starting the migration process ensure that the CC13x1x3 or CC26x1x3 devices meet the hardware needs of your application. Refer to the datasheet of CC13x1x3 or CC26x1x3 for more information about the device.

Porting Simple Peripheral

For this migration guide, Simple Peripheral from CC2652R will be ported over to CC2651P3. The recommended approach is to start with a CC2651P3 project that contains the same base functionality as the porting target project and merge in any custom functionality.

  1. Choose a CC2651P3 example project that contains your target project’s base functionality.

  2. Transfer all modified application files from CC2652R into the CC2651P3 example project.

    In this example, the following files from CC2652R were moved into Simple Peripheral CC2651P3 example:

    • simple_peripheral.c

    • simple_peripheral.h

  3. Move any profiles and services that the application is using to the CC2651P3 project.

  4. Transfer the SysConfig settings visually through the GUI.

Porting Simple Central

This section of the migration guide will focus on porting Simple Central from CC2652R to the CC2651P3. The recommended approach is to start with a CC2651P3 project that contains the same base functionality as the porting target project and merge in any custom functionality.

  1. Choose a CC2651P3 example project that contains your target project’s base functionality.

  2. Transfer all modified application files from CC2652R into the CC2651P3 example project.

    In this example, the following files from CC2652R were moved into Simple Central CC2651P3 example:

    • simple_central.c

    • simple_central.h

  3. Modify main.c in the CC2651P3 example if additional tasks were added in the CC2652R project.

  4. Move any profiles and services that the application is using to the CC2651P3.

  5. Transfer the SysConfig settings visually through the GUI.

Porting via CCS ProjectSpec Modifications

Porting by modifying the ProjectSpec file should be done when an existing complex project must be migrated and a ProjectSpec file has been updated and maintained throughout the project’s development. All example projects included in the SDK each come with their own ProjectSpec file.

This portion of the migration guide will focus on how to port an existing project from the CC2652R to CC2651P3 by modifying the ProjectSpec file to import the project as a CC2651P3 project. This process can be done for a CC2651R3 device. To learn the specific differences between the CC2651R3 and the CC2651P3 project spec files, please reference a ProjectSpec file for a CC2651R3 SDK example.

To perform the migration, it is necessary to have a working and updated ProjectSpec file. The following steps will detail the changes needed when porting a Simple Peripheral project from the CC2652R to the CC2651P3. The modifications required for a custom project are expected to be very similar.

  1. The deviceId and device fields should be updated from Cortex M.CC2642R1F to Cortex M.CC2651P3.

  2. The CC13x1x3 or CC26x1x3 devices build the BLE5-Stack in flash only, so the BLE5-Stack libraries must be used. All include statements (-I) that include directories within the ble5stack folder should be updated to ble5stack_flash.

    For example, the -I${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/source/ti/ble5stack statement should be changed to -I${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/source/ti/ble5stack_flash.

  3. The DeviceFamily_CC26X2 define (-D) statement should be updated to DeviceFamily_CC26X1.

  4. Replace the -DFLASH_ROM_BUILD statement with -DFLASH_ONLY_BUILD.

  5. The -I${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/source/ti/devices/cc13x2_cc26x2 include statement must be replaced with -I${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/source/ti/devices/cc13x1_cc26x1.

  6. Change -mfloat-abi=hard to -mfloat-abi=soft and -mfpu=fpv4-sp-d16 to -mfpu=none.

  7. Update the -define=FLASH_ROM_BUILD=2 option to -define=FLASH_ONLY_BUILD=2.

  8. To ensure the right DriverLib version is used for the CC13x1/CC26x1, update the reference to the appropriate library. The -lti/devices/cc13x2_cc26x2/driverlib/bin/ticlang/driverlib.lib statement should be replaced with -lti/devices/cc13x1_cc26x1/driverlib/bin/ticlang/driverlib.lib

  9. The cc13x2_cc26x2_app_tirtos7.cmd file that is included with the project should be replaced with the CC2651P3 version. The CC2651P3 version is named cc13x1_cc26x1_app_tirtos7.cmd and can be found in any of the CC2651P3 Bluetooth LE examples. Ensure the include statement is amended to use the new cc13x1_cc26x1_app_tirtos7.cmd file.

  10. A new SysConfig file from a similar CC2651P3 example should be used as a base. The settings from the original SysConfig file should be transfer visually through the GUI or by directly modifying the SysConfig files through a text editor.

  11. Afterwards, the project may be re-imported using the new ProjectSpec file. The newly imported project is now configured to use the CC2651P3 device instead of the CC2652R device.

To learn more information about ProjectSpec files, please reference ProjectSpec Documentation.