ZHCUAO3 February   2023

 

  1.   摘要
  2.   商标
  3. 1BSL 特性概览
  4. 2术语
  5. 3BSL 架构
    1. 3.1 设计
      1. 3.1.1 超时特性
        1. 3.1.1.1 接口自动检测
        2. 3.1.1.2 命令接收
    2. 3.2 调用 BSL
      1. 3.2.1 空白器件
      2. 3.2.2 应用程序请求
      3. 3.2.3 基于 GPIO 的调用
      4. 3.2.4 调试邮箱命令
      5. 3.2.5 其他
        1. 3.2.5.1 启动前应用程序验证
    3. 3.3 存储器
      1. 3.3.1 SRAM 存储器使用情况
    4. 3.4 BSL 配置
    5. 3.5 BSL 状态
  6. 4引导加载程序协议
    1. 4.1 数据包格式
    2. 4.2 UART 和 I2C BSL 协议
      1. 4.2.1 BSL 确认
      2. 4.2.2 外设配置
        1. 4.2.2.1 UART
        2. 4.2.2.2 I2C
        3. 4.2.2.3 CRC
    3. 4.3 引导加载程序内核命令
      1. 4.3.1  连接
      2. 4.3.2  获取器件信息
      3. 4.3.3  解锁引导加载程序
      4. 4.3.4  编程数据
      5. 4.3.5  快速编程数据
      6. 4.3.6  回读数据
      7. 4.3.7  闪存范围擦除
      8. 4.3.8  批量擦除
      9. 4.3.9  恢复出厂设置
      10. 4.3.10 独立验证
      11. 4.3.11 启动应用程序
      12. 4.3.12 更改波特率
    4. 4.4 BSL 内核响应
      1. 4.4.1 BSL 内核消息
      2. 4.4.2 详细错误
      3. 4.4.3 存储器回读
      4. 4.4.4 器件信息
      5. 4.4.5 独立验证
    5. 4.5 引导加载程序安全性
      1. 4.5.1 受密码保护的命令
        1. 4.5.1.1 安全警报
      2. 4.5.2 进入 BSL
  7. 5使用引导加载程序的示例程序流程
  8. 6次级引导加载程序
    1. 6.1 次级引导加载程序示例
  9. 7接口插件
    1. 7.1 实现
      1. 7.1.1 Init
      2. 7.1.2 接收
      3. 7.1.3 发送
      4. 7.1.4 Deinit
      5. 7.1.5 重要注意事项
    2. 7.2 闪存插件类型
    3. 7.3 覆盖现有接口
      1. 7.3.1 UART 接口闪存插件示例
  10. 8参考文献
  11. 9修订历史记录

BSL 内核消息

结构

标头长度RSP数据CRC32
0x080x020x000x3BMSGC1C2C3C4

描述

对于某些命令,BSL 会将消息响应发送到主机,以指示已处理命令的状态。该表列出了来自 BSL 的所有可能消息。

MSG 含义 可能的原因(1)
0x00 成功运行
0x01 BSL 锁定错误 尚未使用引导加载程序解锁密码命令解锁 BSL,或者在 BSL 解锁之后,命令接收阶段会发生超时
0x02 BSL 密码错误 发送了错误的密码来解锁引导加载程序。
0x03 多个 BSL 密码错误。已采取安全警报措施。 为解锁引导加载程序已发送错误的密码 3 次。
0x04 未知指令 提供给 BSL 的命令未被识别为有效命令
0x05 存储器范围无效 给定的存储器范围无效。
0x06 命令无效 指定给 BSL 的命令是已知命令,但在该时刻无效,无法处理。

0x07

已禁用恢复出厂设置 BCR 配置中禁用了恢复出厂设置

0x08

恢复出厂设置密码错误 当 BCR 配置的 factory reset 为“Enabled with password”时,使用 factory reset 命令发送的密码不正确或没有密码

0x09

读出错误 在 BCR 配置中禁用存储器读出

0x0A

地址或长度对齐无效 闪存编程的起始地址或数据长度不是 8 字节对齐的

0x0B

独立验证的长度无效 发送用于独立验证的数据大小小于 1KB
此处列出的可能原因不是出现状态或错误的唯一原因。它仅列出了导致出现错误(可由主机纠正)的可能软件原因。