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修订历史记录

SBL API

表 3-2 展示了 SBL API 的概况。直接映射到引导加载程序命令的 API 函数用 X 进行标记。一些器件系列之间的引导加载程序命令存在一些差异,这也意味着一些器件系列之间的 API 函数存在差异。如果某个函数不受支持,表 3-2Description 字段中会对此进行说明。如果调用了所选硬件不支持的 SBL 函数,则会返回常量 SBL_UNSUPPORTED_FUNCTION,而不执行任何操作。

表 3-2 SBL 函数
SBL 函数名称 引导加载程序命令 说明
CC2538 CC13xx、CC26xx
Create 不适用 不适用 用于创建 SBL 器件对象的静态函数。
calculateCrc32 X X 计算额定条件范围下的 CRC32。
connect 使用 ROM 引导加载程序初始化连接
cmdDownloadCrc X 使用指定的 CRC32 值准备闪存编程。CC2538、CC13x0 或 CC26x0 引导加载程序中未实现。
enumerate 不适用 不适用 用于在 PC 上枚举 COM 端口的静态函数。
eraseFlashBank X 擦除整个闪存。CC2538 不支持,但可以通过使用 eraseFlashRange 实现同样的功能。
eraseFlashRange X X 擦除指定范围内的扇区。使用 CMD_SECTOR_ERASE。
ping X X 发送 ping 命令。
readDeviceId 使用 CMD_MEMORY_READ 读取器件 ID。
readFlashSize 使用 CMD_MEMORY_READ 读取闪存大小。
readMemory32 X X 从器件存储器中读取 32 位字。
readMemory8 使用 CMD_MEMORY_READ 从器件存储器中读取 8 位字。
readRamSize 使用 CMD_MEMORY_READ 读取 RAM 大小。
readStatus X X 读取引导加载程序状态。
reset X X 使用 CMD_RESET 复位器件。
run X 从指定地址运行器件 CPU。CC13xx 或 CC26xx 不支持。
setCCFG X 设置 CC13xx 和 CC26xx CCFG。CC2538 不支持。
setXosc X 切换到外部振荡器。CC13xx 或 CC26xx 不支持。
writeFlashRange X X 使用 CMD_DOWNLOAD 和 CMD_DATA_SEND 写入闪存。
writeMemory32 X X 使用 CMD_MEMORY_WRITE 向器件存储器写入 32 位字。
writeMemory8 使用 CMD_MEMORY_READCMD_MEMORY_WRITE 向器件存储器执行 8 位写入操作。