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参考资料

引言

ROM 引导加载程序(也被称为主引导加载程序或简称为加载程序)是一小段代码,位于目标器件的引导 ROM 存储器中,允许从外部主机加载和执行代码。大多数情况下,使用通用异步接收器/发送器 (UART) 或控制器局域网 (CAN) 等通信外设将代码加载到器件中,而不是使用 JTAG,后者需要用到昂贵的专用工具,不建议在商业环境中使用。

通过引导引脚,可以使用确定调用哪个 ROM 加载程序的各种外设来配置不同的引导模式。在本应用手册中,使用的外设是 UART。与引导引脚关联的引导模式指的是外设的第一个实例。对于 UART,引导模式与 UARTA 关联。

C2000 器件通过在 ROM 中添加一些基本的加载实用程序来部分解决固件更新问题。根据器件和存在的通信外设,可以使用 UART、串行外设接口 (SPI)、内部集成电路 (I2C) 和 CAN 将代码加载到片上 RAM 中。这些加载程序的一部分存在于每个 C2000 器件中,但加载程序只能将代码加载到 RAM 中。如何弥合这一差距并将应用程序代码编程到非易失性存储器中?

概括来说,对闪存等非易失性存储器的应用程序编程需要两个步骤:

  1. 使用 ROM 引导加载程序将辅助引导加载程序下载到 RAM。
  2. 在 RAM 中运行辅助引导加载程序以将应用程序下载到闪存。
 闪存内核流程图 2-1 闪存内核流程

尽管基于 C28 器件实现的闪存内核与本文中说明的内核在总体概念上相似,但请注意,它们之间存在一些主要区别。