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

将引导向量设置为 0x0

通过修改热复位流程中使用的跳转地址,可以实现一种从闪存加载映像的软件端解决方法。另外,还必须特别注意确保前端控制器子系统 (FECSS) 处于正确的状态。用户必须对自己的系统进行必要的安全评估,以确定这个软件端解决方法是否满足他们的需求。解决方法顺序如下:

 热复位时从闪存加载软件图 4-2 热复位时从闪存加载软件
  1. 缓慢关闭 FECSS 和 HWASS
  2. 为 FECSS 上电
  3. 将引导矢量写入 TOP_PRCM:PC_REGISTER2[24:0] = 0
  4. 将引导矢量偶校验位写入 TOP_PRCM:PC_REGISTER1[15:12] = 0
  5. 禁用映像完整性检查 - TOP_PRCM:PC_REGISTER1[5:3] = 0
  6. 禁用 STC 测试 - TOP_PRCM:PC_REGISTER1[8:6] = 0
  7. 触发热复位 - TOP_PRCM:RST_SOFT_RESET[0] = 1

在步骤 7 中的热复位发生后,执行重新进入 RBL,开始执行,如图 2-1 所示。由于复位寄存器已被清除,RBL 确定复位原因为无效。因此,它假定为 POR,并且再次从闪存加载应用程序映像。应用程序或 SBL 可以按照设计继续,直到发生另一次复位。

查看 MMWAVE-L-SDK 中的 watchdog_reset 示例,如下所示:<SDK-Install-Directory>/examples/drivers/watchdog/watchdog_reset/,执行从闪存重新加载的完整编码序列。