ZHCAEV6 December   2024 F29H850TU , F29H859TU-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1编程基础知识
  5. 2引言
    1. 2.1 硬件安全模块
    2. 2.2 ROM 引导加载程序
    3. 2.3 带有 X.509 证书的合并映像
  6. 3闪存内核实现
    1. 3.1 CPU1 固件升级 (HS-FS)
    2. 3.2 密钥预置(HS-FS 至 HS-KP)
    3. 3.3 CPU1 安全固件升级(HS-KP/SE 至 HS-SE)
    4. 3.4 HSM 固件升级(HS-KP/SE 至 HS-SE)
    5. 3.5 SECCFG 代码预置(HS-KP/SE 至 HS-SE)
  7. 4主机应用程序:UART 闪存编程器
    1. 4.1 概述
    2. 4.2 使用 Visual Studio 构建 UART 闪存编程器
    3. 4.3 使用 CMake 构建 UART 闪存编程器
    4. 4.4 数据包格式
    5. 4.5 内核命令
  8. 5示例用法
    1. 5.1 将闪存内核加载到器件中
      1. 5.1.1 硬件设置
      2. 5.1.2 运行 UART 闪存编程器
    2. 5.2 CPU1 器件固件升级(仅限 HS-FS)
    3. 5.3 将 HS-FS 转换为 HS-SE
    4. 5.4 加载基于 RAM 的 HSMRt 映像
    5. 5.5 密钥预置(HS-FS 至 HS-KP)
    6. 5.6 代码预置(HS-KP/SE 至 HS-SE)
  9. 6故障排除
    1. 6.1 一般信息
    2. 6.2 UART 引导
    3. 6.3 应用程序加载
  10. 7总结
  11. 8参考资料

CPU1 固件升级 (HS-FS)

要对 HS-FS 器件的 CPU1 执行固件升级,请编译工程的 CPU1_APP 构建配置。可以通过右键点击工程,将鼠标悬停在 Build Configurations 上并选择 CPU1_APP 来完成此操作。

对于器件固件升级 (DFU) 命令,将执行以下步骤:

  1. CPU1 中的内核接收执行 DFU 的命令数据包。
  2. 为准备新的应用程序,在编程前擦除整个闪存。
  3. 内核准备从主机接收 X.509 证书。
  4. 内核确认传入证书具有适当的大小和格式,并得出传入映像的大小。证书暂时存储在 RAM 中。
    1. 而在此过程中,不会对证书或传入映像进行身份验证。由于内核根据证书推导映像大小并在独立的闪存启动过程中进行身份验证,因此仍需要正确生成证书。
  5. 如果接受证书大小和格式,则内核准备接收新应用程序并将其编程到闪存中
  6. 内核以 1024 位的块对传入的应用程序进行编程。在对每个块编程之后,内核会验证数据和 ECC 是否正确编程到闪存中。
  7. 成功对整个映像进行编程后,内核会将关联的证书编程到 FLC1 B0/B1 的前 0x1000 个地址。将证书编程到闪存的这个区域后,器件能够在独立闪存启动模式下启动至现有应用程序。

要生成可由内核加载的应用程序映像,请参阅节 2.3的编译后步骤。有关用法的更多详细信息,请参阅节 5.1