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 in Section 5 of the Migration Guide below.
Note
The two devices are API compatible, a project for CC2340R21 developed on DEVICE_LOW_PLUS| 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:
Import the project into Code Composer Studio or you IDE of preference.
Open SysConfig, go to
Device View
and click onSWITCH
.
Once the
Switch Board or Device
window is opened, select the CC2340R21 board, or CC2340R21 device and click onCONFIRM
. Make sure to save the project changes so that the migration takes place.
Right click on the imported project folder and select
Properties
. Validate that the CC2340R21 name shows up at theVariant and core
field.
Open the Linker command file
.cmd
and modify the Flash size and RAM size to 256 kB and 28 kB respectively.1#define FLASH_SIZE 0x40000 2#define RAM_SIZE 0x7000
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:basic_ble / basic_ble_profiles: 0x00003F50
host_test / data_stream: 0x00003000
Warning
Depending on the RAM size consumed by your application, this new value may require a modification.
Open SysConfig and reduce the interval NVS size, under NVS →
Internal Flash
. For an out-of-the-box implementation of the examples, consider using 0x3C000 as the region base value.
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.
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.
Inside the Off-Chip OAD project, open SysConfig and update NVS External Configuration as seen below:
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.
Import MCUBoot project, modify the
flash_map_backend.h
replacing the following lines of code. In addition, addDeviceFamily_CC23X0R2
as part of thePredefined Symbols
of the project (right click on Properties → Predefined Symbols).1 #elif defined DeviceFamily_CC23X0R2 2 #define BOOTLOADER_BASE_ADDRESS 0x00000000 3 #define BOOT_BOOTLOADER_SIZE 0x00006000 4 5 #define BOOT_PRIMARY_1_BASE_ADDRESS 0x00006000 6 #define BOOT_PRIMARY_1_SIZE 0x00036000 7 8 #define BOOT_SECONDARY_1_BASE_ADDRESS 0x00023000 9 #define BOOT_SECONDARY_1_SIZE 0x00036000
To finish with the MCUBoot project, go inside
mcuboot_config
and do the following:- Uncomment the following two lines:
1 #define TI_BOOT_USE_EXTERNAL_FLASH 2 #define MCUBOOT_OVERWRITE_ONLY
- Comment out the following line:
1 //#define MCUBOOT_DIRECT_XIP
Build both projects.
Note
For implementing Off-Chip OAD example project, follow the same process specified
for the CC2340R5 device. The mcuboot .hex
file and the basic_ble_oad_offchip
.bin
file can be found inside the Release
folder of the project. Make sure to flash the
.bin
file at 0x00006000 address.