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

Bootloader Backdoor

The SblAppEx example is written for CC2538 and CC2650 (7×7) Evaluation Modules (EVMs) and CC13xx and CC26xx LaunchPad Development Kits. The application example image, called blinky_backdoor_select_btn26x*.bin, programmed onto the device triggers the SmartRF06EB or the LaunchPad to blink the LEDs. The example image enables the bootloader backdoor so that the bootloader can be triggered using an I/O pin.

Table 4-1 and Table 4-2 show the I/O pin used by the application image for opening the bootloader backdoor. For the SmartRF06EB, this I/O pin is connected to the SELECT button. To enter the bootloader backdoor, hold down the SELECT button (corresponds to logic ‘0’) while pressing the EM reset button on the SmartRF06EB. For the LaunchPad, the bootloader backdoor enable pin is connected to the BTN-1 button. The BTN-1 must be pressed when the LaunchPad reset button is pressed to enter the bootloader backdoor.

Table 4-1 Application Example Bootloader Backdoor Enable I/O Pin: Evaluation Module Kits
CC2538 CC2650 EM Pin
QFN48 (7×7) QFN32 (5×5) QFN32 (4×4)
PA3 DIO11 DIO9 DIO7 1.14
Table 4-2 Application Example Bootloader Backdoor Enable I/O Pin: LaunchPad™
CC13x0, CC26x0 CC13x1x3, CC26x1x3 CC13x2, CC26x2 CC13x2x7, CC26x2x7 CC2652RB CC13x4, CC26x4
DIO13 DIO15 DIO15 DIO13 DIO13 DIO15
Note: The application also allows for programming a custom flash image besides the example image. When programming a custom flash image, the bootloader backdoor enable I/O pin assignments, as shown in Table 4-1 and Table 4-2, no longer applies. The designer must make sure that the bootloader is enabled in the CCA, CCFG of the flash image to be programmed; otherwise, the ROM bootloader is disabled and programming over UART and SPI is no longer possible.