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

Erase Flash Range

The eraseFlashRange function uses the bootloader command CMD_ERASE for CC2538 and CMD_SECTOR_ERASE for CC26x0 and CC26x2.

The CC26x0 and CC26x2 CMD_SECTOR_ERASE takes an address parameter and erases the flash sector (4 KB for CC26x0 devices and 8 KB for CC26x2 devices) in which the address is located.

The CC2538 CMD_ERASE command requires a second argument for specifying the erase size. The CC2538 bootloader erases the flash sectors (2 KB) that are covered by the range [address, address + size].

After each bootloader erase command, eraseFlashRange checks the bootloader status using the CMD_GET_STATUS command.

Figure 4-5 shows the sequence chart for a flash erase using the serial bootloader protocol. The last four bytes in the command (datasize) is specific for CC2538. For CC26x0 and CC26x2, the CMD_SECTOR_ERASE command (and consequent CMD_GET_STATUS) must be repeated for each flash sector to erase.

GUID-02076DBE-6F5F-41F6-8DA4-F5C30C696567-low.gifFigure 4-5 Sequence Chart for Flash Sector Erase

If the whole Flash memory is to be erased on CC26x0 and CC26x2, the CMD_BANK_ERASE command should be used. This erases the whole Flash memory in one operation, which is faster than deleting sectors individually.