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

 

  1.   商标
  2. 1引言
  3. 2ROM 引导加载程序
    1. 2.1 配置引导加载程序
      1. 2.1.1 CC2538
      2. 2.1.2 CC26x0
    2. 2.2 CC26x2
    3. 2.3 通信协议
      1. 2.3.1 ACK/NACK
    4. 2.4 接口配置
      1. 2.4.1 硬件引脚
      2. 2.4.2 UART 配置
      3. 2.4.3 建立通信
      4. 2.4.4 状态命令
  4. 3Serial Bootloader Library (SBL)
    1. 3.1 SBL 返回值
    2. 3.2 SBL API
      1. 3.2.1 器件特定函数
  5. 4示例项目
    1. 4.1 硬件设置
      1. 4.1.1 SmartRF06EB 虚拟 COM 端口
        1. 4.1.1.1 外部串行接口
      2. 4.1.2 LaunchPad 虚拟 COM 端口
      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 连接
      4. 4.3.4 擦除闪存范围
      5. 4.3.5 写入闪存范围
      6. 4.3.6 计算 CRC32
      7. 4.3.7 复位
  6. 5参考文献
  7. 6修订历史记录

SBL API

SBL API 概览如表 3-2 所示。直接映射到引导加载程序命令的 API 函数用 X 进行标记。

表 3-2 SBL 函数
SBL 函数名称引导加载程序 CMD说明
CC2538CC26x0CC26x2
创建不适用不适用不适用用于创建 SBL 器件对象的静态函数。
calculateCrc32XXX计算额定条件范围下的 CRC32。
连接使用 ROM 引导加载程序初始化连接
枚举不适用不适用不适用用于在 PC 上枚举 COM 端口的静态函数。
eraseFlashBankXX擦除整个闪存。CC2538 不支持。
eraseFlashRangeXXX擦除指定范围内的扇区。使用 CMD_SECTOR_ERASE。
pingXXX发送 ping 命令。
readDeviceId使用 CMD_MEMORY_READ 读取器件 ID。
readFlashSize使用 CMD_MEMORY_READ 读取闪存大小。
readMemory32XXX从器件存储器中读取 32 位字。
readMemory8使用 CMD_MEMORY_READ 从器件存储器中读取 8 位字。
readRamSize使用 CMD_MEMORY_READ 读取 RAM 大小。
readStatusXXX读取引导加载程序状态。
复位XXX使用 CMD_RESET 复位器件。
运行X从指定地址运行器件 CPU。CC26xx 不支持。
setCCFGXX设置 CC26xx CCFG。CC2538 不支持。
setXoscX切换到外部振荡器。CC26xx 不支持。
writeFlashRangeXXX使用 CMD_DOWNLOAD 和 CMD_DATA_SEND 写入闪存。
writeMemory32XXX使用 CMD_MEMORY_WRITE 向器件存储器写入 32 位字。
writeMemory8使用 CMD_MEMORY_READ 和 CMD_MEMORY_WRITE 向器件存储器执行 8 位写入操作。