ZHCUAO3 February   2023 MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1

 

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

设计

当检测到有效的引导加载程序调用条件时,引导代码将调用引导加载程序。仅当在 BCR 配置的 BSL 模式字段中启用了引导加载程序时,才会调用它。

引导加载程序启动后,它首先执行“Init”阶段,在该阶段完成 BSL 配置的初始检查,并将器件配置为运行引导加载程序。

接下来,引导加载程序进入“接口自动检测”阶段。在此阶段,BSL 会配置所有可用的 BSL ROM 接口和闪存插件接口(如果已注册)。然后,BSL 逐个轮询所有接口的数据。当在其中一个接口中接收到有效的连接数据包时,该接口将被视为用于进一步通信的有源接口,所有其他接口都将被禁用。接口搜索将持续 10 秒,如果未检测到接口,则器件将进入待机模式。

接下来,BSL 进入“命令接收”阶段。在此阶段,BSL 将无限循环等待来自主机的命令。接收到有效命令后,将处理该命令,并将来自 BSL 内核的响应发送回主机。然后,它返回到循环并等待下一条命令,依此类推。如果接收到“Start Application”命令,引导加载程序将触发系统复位,然后执行引导代码并调用应用程序。该阶段的超时也为 10 秒。如果未接收到有效命令,引导加载程序将被锁定并进入睡眠模式。

GUID-20221116-SS0I-QZM3-MFTH-L23MRZJCT8W7-low.png图 3-1 BSL 架构