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

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2ROM 引导加载程序
    1. 2.1 配置引导加载程序
      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 通信协议
      1. 2.2.1 ACK 或 NACK
    3. 2.3 接口配置
      1. 2.3.1 硬件引脚
      2. 2.3.2 UART 配置
      3. 2.3.3 建立通信
      4. 2.3.4 状态命令
  6. 3Serial Bootloader Library (SBL)
    1. 3.1 SBL 返回值
    2. 3.2 SBL API
  7. 4示例项目
    1. 4.1 硬件设置
      1. 4.1.1 LaunchPad™ 开发套件虚拟 COM 端口
      2. 4.1.2 SmartRF06EB 虚拟 COM 端口
        1. 4.1.2.1 外部串行接口
      3. 4.1.3 引导加载程序后门
    2. 4.2 软件设置
      1. 4.2.1 器件类型
      2. 4.2.2 波特率
    3. 4.3 程序流程
      1. 4.3.1 枚举 COM 端口
      2. 4.3.2 创建器件
      3. 4.3.3 Connect
      4. 4.3.4 擦除闪存范围
      5. 4.3.5 写入闪存范围
      6. 4.3.6 计算 CRC32
      7. 4.3.7 复位
  8. 5参考资料
  9. 6修订历史记录

擦除闪存范围

eraseFlashRange 函数对 CC2538 使用引导加载程序命令 CMD_ERASE,对 CC13xx 和 CC26xx 使用 CMD_SECTOR_ERASE

CC13xx 或 CC26xx CMD_SECTOR_ERASE 采用地址参数并擦除该地址所在的闪存扇区。

CC2538 CMD_ERASE 命令需要另一个用于擦除大小的参数。CC2538 引导加载程序会擦除 [地址, 地址 + 大小] 范围覆盖的闪存扇区 (2KB)。

在每个引导加载程序擦除命令之后,eraseFlashRange 使用 CMD_GET_STATUS 命令来检查引导加载程序状态。

图 4-6 所示为使用串行引导加载程序协议进行闪存擦除的序列图表。命令中的最后四个字节 (datasize) 特定于 CC2538。对于 CC13xx 或 CC26xx,必须为要擦除的每个闪存扇区重复使用 CMD_SECTOR_ERASE 命令(以及随后的 CMD_GET_STATUS)。

 闪存扇区擦除的序列图表图 4-6 闪存扇区擦除的序列图表

如果要擦除 CC13xx 或 CC26xx 上的整个闪存存储器,请使用 CMD_BANK_ERASE 命令。这将在一次操作中擦除整个闪存存储器,比单独删除各个扇区要快。