SWRA466E February   2015  – August 2024 CC1310 , CC1310 , CC1311P3 , CC1311P3 , CC1311R3 , CC1311R3 , CC1312PSIP , CC1312PSIP , CC1312R7 , CC1312R7 , CC1314R10 , CC1314R10 , CC1352P , CC1352P , CC1352P7 , CC1352P7 , CC1352R , CC1352R , CC1354P10 , CC1354P10 , CC1354R10 , CC1354R10 , CC2538 , CC2538 , CC2620 , CC2620 , CC2630 , CC2630 , CC2640 , CC2640 , CC2640R2F , CC2640R2F , CC2640R2F-Q1 , CC2640R2F-Q1 , CC2642R , CC2642R , CC2642R-Q1 , CC2642R-Q1 , CC2650 , CC2650 , CC2650MODA , CC2650MODA , CC2651P3 , CC2651P3 , CC2651R3 , CC2651R3 , CC2651R3SIPA , CC2651R3SIPA , CC2652P , CC2652P , CC2652P7 , CC2652P7 , CC2652PSIP , CC2652PSIP , CC2652R , CC2652R , CC2652R7 , CC2652R7 , CC2652RB , CC2652RB , CC2652RSIP , CC2652RSIP , CC2674R10 , CC2674R10

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
  5. 2ROM Bootloader
    1. 2.1 Configuring the Bootloader
      1. 2.1.1 CC2538
      2. 2.1.2 CC13x0, CC26x0
      3. 2.1.3 CC13x1x3, CC26x1x3
      4. 2.1.4 CC13x2, CC26x2
      5. 2.1.5 CC13x4, CC26x4
    2. 2.2 Communication Protocol
      1. 2.2.1 ACK or NACK
    3. 2.3 Interface Configuration
      1. 2.3.1 Hardware Pins
      2. 2.3.2 UART Configuration
      3. 2.3.3 Establishing Communication
      4. 2.3.4 Status Command
  6. 3Serial Bootloader Library (SBL)
    1. 3.1 SBL Return Values
    2. 3.2 SBL API
  7. 4Example Project
    1. 4.1 Hardware Setup
      1. 4.1.1 LaunchPad™ Development Kit Virtual COM Port
      2. 4.1.2 SmartRF06EB Virtual COM Port
        1. 4.1.2.1 External Serial Interface
      3. 4.1.3 Bootloader Backdoor
    2. 4.2 Software Setup
      1. 4.2.1 Device Type
      2. 4.2.2 Baud Rate
    3. 4.3 Program Flow
      1. 4.3.1 Enumerate COM Ports
      2. 4.3.2 Create Device
      3. 4.3.3 Connect
      4. 4.3.4 Erase Flash Range
      5. 4.3.5 Write Flash Range
      6. 4.3.6 Calculate CRC32
      7. 4.3.7 Reset
  8. 5References
  9. 6Revision History

SBL API

Table 3-2 shows an overview of the SBL API. API functions that directly map to a bootloader command are marked with an X. There are a few differences in the bootloader commands between some of the device families, which also means there are differences in the API functions between some device families. If a function is not supported, this is explained in the Description field of Table 3-2. If called, an SBL function that is not supported for the chosen hardware returns the constant SBL_UNSUPPORTED_FUNCTION without doing anything.

Table 3-2 SBL Functions
SBL FUNCTION NAME BOOTLOADER CMD DESCRIPTION
CC2538 CC13xx, CC26xx
Create N/A N/A Static function for creating an SBL device object.
calculateCrc32 X X Calculate CRC32 over the specified range.
connect Initialize connection with ROM bootloader
cmdDownloadCrc X Prepares flash programming with the specified CRC32 value. Not implemented in the CC2538, CC13x0, or CC26x0 bootloader.
enumerate N/A N/A Static function for enumerating COM ports on PC.
eraseFlashBank X Erases the entire flash. Not supported by CC2538, but the same functionality can be achieved by using eraseFlashRange.
eraseFlashRange X X Erase the sectors in the specified range. Uses CMD_SECTOR_ERASE.
ping X X Sends ping command.
readDeviceId Uses CMD_MEMORY_READ to read device ID.
readFlashSize Uses CMD_MEMORY_READ to read flash size.
readMemory32 X X Reads32 bit word from device memory device memory.
readMemory8 Uses CMD_MEMORY_READ to read 8 bit from device memory.
readRamSize Uses CMD_MEMORY_READ to read RAM size.
readStatus X X Reads bootloader status.
reset X X Resets device using CMD_RESET.
run X Runs the device CPU from the specified address. Not supported by CC13xx or CC26xx.
setCCFG X Set CC13xx and CC26xx CCFG. Not supported by CC2538.
setXosc X Switch to external oscillator. Not supported by CC13xx or CC26xx.
writeFlashRange X X Writes FLASH using CMD_DOWNLOAD and CMD_DATA_SEND.
writeMemory32 X X Writes32-bit word to device memory using CMD_MEMORY_WRITE.
writeMemory8 Implements 8-bit write to device memory using CMD_MEMORY_READ and CMD_MEMORY_WRITE.