ZHCUC78A August   2024  – September 2024 AWRL1432 , AWRL6432 , IWRL1432 , IWRL6432 , IWRL6432AOP

 

  1.   1
  2.   商标
  3. 1引言
  4. 2基本引导加载程序流程
    1. 2.1 通过 UART 编程串行数据闪存(引导加载程序服务)
    2. 2.2 二进制文件格式
    3. 2.3 闪存编程序列
    4. 2.4 支持的 UART 命令/响应及其格式
    5. 2.5 刷写序列
    6. 2.6 ROM 辅助映像下载序列
    7. 2.7 引导应用程序映像
      1. 2.7.1 从串行闪存引导
      2. 2.7.2 引导模式 – SPI
      3. 2.7.3 引导模式 - UART
  5. 3辅助引导加载程序
    1. 3.1 SBL 执行流程
      1. 3.1.1 用于 SBL 执行的闪存存储器分区
      2. 3.1.2 SBL 特性修改
      3. 3.1.3 SBL 开发注意事项
  6. 4热复位
    1. 4.1 完整性验证
    2. 4.2 LSTC/PBIST
    3. 4.3 看门狗计时器
    4. 4.4 复位触发的应用程序闪存重新加载
      1. 4.4.1 硬件解决方案
        1. 4.4.1.1 PMIC I2C 消息传递
        2. 4.4.1.2 外部看门狗计时器
        3. 4.4.1.3 外部电压监控或电压监控器
      2. 4.4.2 软件解决方案
        1. 4.4.2.1 将引导向量设置为 0x0
  7. 5相关寄存器
    1. 5.1 复位寄存器
    2. 5.2 PC 寄存器
      1. 5.2.1 地址
  8. 6修订历史记录

辅助引导加载程序

从 SFLASH 引导应用程序通常由 ROM 引导加载程序 (RBL) 完成。RBL 将查看 SFLASH,在读取到有效的映像标头后,将该映像加载到 RAM 中并启动应用程序。但是,RBL 的局限性在于它只能引导一个应用程序,不能灵活更改该应用程序,因为如果不修改板上的 SOP 设置,它是无法配置的。如需对应用程序进行更改,需要将器件设置为刷写模式,将新的应用程序加载到 SFLASH,然后返回到功能模式,重新启动引导过程。本节讨论的辅助引导加载程序具有更高的灵活性,可以更为轻松地实现二进制更新,让用户能够更灵活地控制加载内容和加载方式。

辅助引导加载程序 (SBL) 是一种允许通过串行接口对 SFLASH 进行“无线”二进制更新并随后执行新应用程序的工具。该程序允许在 SFLASH 中修改二进制,而无需切换 SOP 模式。它还允许用户刷写多个映像:一个主应用程序映像和一个备份映像,以防无法加载主映像。主映像由 SBL 应用程序通过 UART 直接加载到 SFLASH 中,然后引导应用程序。但是,可以修改 SBL 以使用 SPI、CAN 和 LIN 等其他接口。

与 RBL 不同的是,SBL 只专注于使用应用程序代码引导器件,而不会同时初始化器件。它还可以在 SFLASH 的多个分区中加载映像,而 RBL 只在具有有效映像的第一个分区加载映像。SBL 也是可配置的,因为它是由 RBL 从闪存加载的应用程序,而不像 RBL 那样在器件上进行 ROM。SDK 中 SBL 示例的一些限制包括不支持映像验证,并为没有主机控制的系统增加了复杂性。不过,SDK 中提供了 SBL 源代码,用户可以对其进行修改以解决这些限制,同时还可添加加密等功能,从而满足用例要求。