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

连接

正确的函数采用以下两个参数:COM 端口号(参见Topic Link Label4.3.1)和波特率(参见Topic Link Label2.4.2)。

CC2538 ROM 引导加载程序支持从器件的内部振荡器切换到外部振荡器(如果可用)。切换到外部振荡器会增加 CC2538 ROM 引导加载程序支持的最大波特率。如果要使用外部振荡器,则可将第三个参数(布尔值 TRUE)传递给连接函数,第三个参数是可选的,默认情况下为 FALSE。

为了检查连接是否已经初始化,SBL 的 initCommunication 函数会发送一个虚拟命令并等待引导加载程序以 ACK 进行响应。如果不存在连接,initCommunication 函数会发送自动波特率例程(如Topic Link Label2.4.2所述),预期会收到 ROM 引导加载程序发出的 ACK。该序列的示例如图 4-4 所示。

GUID-5F4300A6-7E60-4655-B194-ADD37D01537F-low.gif图 4-4 带有未初始化引导加载程序的 initCommunication 函数的序列图表

建立连接后,连接函数使用串行引导加载程序命令 CMD_GET_CHIP_ID 检索器件 ID,使用命令 CMD_MEMORY_READ 从存储闪存大小和 RAM 大小的位置读取这些值。