SWRA466D February   2015  – August 2021 CC1310 , CC1310 , CC1352R , CC1352R , CC2538 , CC2538 , CC2620 , CC2620 , CC2630 , CC2630 , CC2640 , CC2640 , CC2640R2F , CC2640R2F , CC2640R2F-Q1 , CC2640R2F-Q1 , CC2642R , CC2642R , CC2642R-Q1 , CC2642R-Q1 , CC2650 , CC2650 , CC2650MODA , CC2650MODA , CC2652R , CC2652R , CC2652R7 , CC2652R7 , CC2652RB , CC2652RB , CC2652RSIP , CC2652RSIP

 

  1.   Trademarks
  2. 1Introduction
  3. 2ROM Bootloader
    1. 2.1 Configuring the Bootloader
      1. 2.1.1 CC2538
      2. 2.1.2 CC26x0
    2. 2.2 CC26x2
    3. 2.3 Communication Protocol
      1. 2.3.1 ACK/NACK
    4. 2.4 Interface Configuration
      1. 2.4.1 Hardware Pins
      2. 2.4.2 UART Configuration
      3. 2.4.3 Establishing Communication
      4. 2.4.4 Status Command
  4. 3Serial Bootloader Library (SBL)
    1. 3.1 SBL Return Values
    2. 3.2 SBL API
      1. 3.2.1 Device-Specific Functions
  5. 4Example Project
    1. 4.1 Hardware Setup
      1. 4.1.1 SmartRF06EB Virtual COM Port
        1. 4.1.1.1 External Serial Interface
      2. 4.1.2 LaunchPad Virtual COM Port
      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
  6. 5References
  7. 6Revision History

Device-Specific Functions

There are a few commands in the ROM bootloader that differ between CC2538, CC26x0, and CC26x2, this means that there are also a few differences in SBL functions for these devices; these differences are presented in Table 3-3.

An SBL function that is not supported for the chosen hardware returns the constant SBL_UNSUPPORTED_FUNCTION without doing anything.

Table 3-3 Device-Specific SBL Functions
SBL Function NameCC2538CC26x0CC26x2Description
cmdDownloadCrcNot supportedNot supportedSupported
(CMD_DOWNLOAD_CRC)
Not implemented in the CC2538 and CC26x0 bootloader.
eraseFlashBank()Not supportedSupported
(CMD_BANK_ERASE)
Supported
(CMD_BANK_ERASE)
This erases all the unprotected flash sectors for CC26x0 and CC26x2; this can be achieved for CC2538 by using eraseFlashRange for the whole Flash memory size.
setCCFGNot supportedSupported
(CMD_SET_CCFG)
Supported
(CMD_SET_CCFG)
Not implemented in the CC2538 bootloader.
setXoscSupported
(CMD_SET_XOSC)
Not supportedNot supportedNot implemented in the CC26x0 and CC26x2 bootloader.
runSupported
(CMD_RUN)
Not supportedNot supportedNot implemented in the CC26x0 and CC26x2 bootloader.