CC2340R5 to CC2340R21 Porting Guide

This section will describe, in general terms, how to migrate a project developed for the CC2340R5 device to a CC2340R21 device running the SimpleLink Low Power F3 SDK. However, it is important to first assess the differences between both devices to make sure that the project migration is possible (See Platform Devices Comparison).

Evaluate the CC2340R21 device when only having CC2340R5 devices

To evaluate the CC2340R21 when only having a CC2340R5, you can modify the Flash and RAM size as described below.

  • Open the Linker command file .cmd and modify the Flash size to 256 kB.

    Listing 186. lpf3_app_freertos.cmd - Replace FLASH_SIZE and ``RAM_SIZE``values.
    1#define FLASH_SIZE   0x40000
    2#define RAM_SIZE     0x7000
    

Note

The two devices are API compatible, a project for CC2340R21 developed on CC2340R5 can be migrated (via the migration guide below) with very few modifications to be built and flashed on CC2340R21.

Migration Guide

The recommended migration path is to start with a CC2340R5 based example project from the SimpleLink Low Power F3 SDK and follow the next steps:

  1. Import the project into Code Composer Studio or you IDE of preference.

  2. Open SysConfig, go to Device View and click on SWITCH.

../../_images/DeviceView_Switch.png

Figure 228. SysConfig - Switch Device.

  1. Once the Switch Board or Device window is opened, select the CC2340R21 board, or CC2340R21 device and click on CONFIRM. Make sure to save the project changes so that the migration takes place.

../../_images/Select_R2device.png

Figure 229. SysConfig - Select CC2340R21 device.

Warning

If a new linker command file is generated after migration (named cc23x0r2.cmd in the project files) please make sure to exclude it from build (or eliminated it from the project files) so that the original lpf3_app_freertos.cmd file is used during build time.

  1. Open SysConfig and reduce the heap size, under FreeRTOS → Stack and Heap Sizing. For an out-of-the-box implementation of the examples, consider the following heap sizes as a starting point:

    • basic_ble / basic_ble_profiles: 0x00003F50

    • host_test / data_stream: 0x00003000

    • Off-Chip OAD: 0x0003400

../../_images/change_heap_size.png

Figure 230. SysConfig - Modify Heap Size.

Warning

Depending on the RAM size consumed by your application, this new value may require a modification.

  1. Open SysConfig and reduce the internal NVS size, under NVS → Internal Flash. For an out-of-the-box implementation of the examples, consider using 0x3C000 as the region base value.

../../_images/change_NVS_basic_ble.png

Figure 231. SysConfig - Modify NVS base region.

  1. For project examples that require reallocation of pins due to differences in package size between CC2340R5 and CC2340R21 devices. Open SysConfig and modify the GPIO information with the available pins you have depending on your application. You can see below how this is done for the case of the host_test project example.

../../_images/host_test_GPIOchange.png

Figure 232. SysConfig - Modify GPIOs.

  1. Build the project.

Additional Steps for Off-Chip OAD and MCUBoot examples

Note

The CC2340R21 device does not support On-Chip and Dual Image OAD due to reduced Flash size.

  1. Inside the Off-Chip OAD project, open SysConfig and update NVS External Configuration as seen below:

../../_images/offchip_externalNVS_config1.png

Figure 233. SysConfig - Modify size of NVS External Flash to match the size of the External Flash available on the board.

../../_images/offchip_externalNVS_config2.png

Figure 234. SysConfig - Modify SPI pins.

  1. Right click on the project file and select Properties. Modify the post build steps so that the slot sizes match the ones of the CC2340R21 device.

../../_images/modify_post_build_offchip.png

Figure 235. Project Properties - Modify post build steps.

  1. For the MCUBoot project, additionaly to the device migration, modify the MCUBoot configuration inside SysConfig.

    • Enable Overwrite-only code path.

    • Enable External Flash configuration.

    • Modify the Base Address and Image Size depending on your application.

../../_images/flash_backend_size.png

Figure 236. SysConfig - MCUBoot.

  1. Build both projects.