ZHCU802B August   2020  – March 2026 TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1

 

  1.   1
  2.   C2000 MCU 在有器件复位时的实时固件更新
  3.   商标
  4. 1简介
  5. 2LFU 所需资源
  6. 3存储器布局
  7. 4LFU 中的静态代码
  8. 5LED 示例应用和 LFU 流程
  9. 6运行 LED 示例
    1. 6.1 串行闪存编程器更新
    2. 6.2 静态代码编程 – 通过 Code Composer Studio (CCS) 加载
    3. 6.3 应用的实时固件更新
    4. 6.4 限制和疑难解答
  10. 7扩展实现方案
    1. 7.1 F28P65x MCU 上带复位的实时固件更新
      1. 7.1.1 F28P65x LFU 硬件要求
      2. 7.1.2 闪存组织
      3. 7.1.3 FWU 引导模式
      4. 7.1.4 LED 示例应用
        1. 7.1.4.1 LFU 命令处理
      5. 7.1.5 运行示例
        1. 7.1.5.1 加载示例
        2. 7.1.5.2 组合 CPU1 和 CPU2 固件映像
        3. 7.1.5.3 LFU over MCAN 主机编程器
          1. 7.1.5.3.1 编译主机编程器
          2. 7.1.5.3.2 使用主机编程器
      6. 7.1.6 限制
  11. 8修订历史记录

加载示例

主机和客户端都期望以 TI ASCII 十六进制格式读取/接收映像,可通过在工程中添加以下构建后步骤来生成该格式的映像:

"${CG_TOOL_HEX}" "${BuildArtifactFileName}" -boot -sci8 -a -o "${BuildArtifactFileBaseName}.txt"

为执行闪存 A/B 交换,采用了两个链接器文件版本,通过 CCS 构建配置来进行切换,每种配置将应用程序置于不同的闪存组中。此示例使用了以下方案:

表 7-2 闪存组组织
应用 闪存存储体 入口点 FWU 引导选项
CPU1 FW 版本 A 2 0x000C 0000 0x0B
CPU1 FW 版本 B 3 0x000E 0000 0x0B
CPU2 FW 版本 A 0 0x0009 0000 0x4B
CPU2 FW 版本 B 1 0x000B 0000 0x4B
注:

CPU1 和 CPU2 必须使用不同的 FWU 引导选项,以避免器件复位后在引导 CPU1 与 CPU2 固件之间发生冲突。

生成应用程序映像后,需要按照以下步骤将初始版本加载到器件上:

  1. 将 CPU1 配置为 FWU 引导模式 0 (BOOTDEF = 0x0B)。用户可通过在存储器浏览器中配置地址 0xD00-0xD01 和 0xD04 处的仿真引导寄存器,在仿真引导模式下完成此配置。
    1. 用户还可以对 DCSM OTP 中的引导寄存器进行编程,以将器件配置为独立 FWU 引导。有关更多详细信息,请参阅 C2000 微控制器上的 C2000 引导加载入门。

       使用 CCS 存储器浏览器仿真 FWU 引导
      图 7-3 使用 CCS 存储器浏览器仿真 FWU 引导
  2. 配置 CPU1 的 CCS 闪存设置,以便将闪存组分配给正确的 CPU 来加载映像。在此示例中,为 CPU2 分配了闪存组 0 和 1。

     CCS CPU1 闪存设置中的闪存组映射
    图 7-4 CCS CPU1 闪存设置中的闪存组映射
  3. 使用“Selected Banks Only”设置来配置 CPU1 的 CCS 闪存设置,使其不会擦除 CPU2 的闪存组。

     CPU1 闪存组擦除设置
    图 7-5 CPU1 闪存组擦除设置
  4. 加载 CPU1 应用程序映像。
  5. 运行 CPU1。
    1. CPU1 将 GS4RAM 和闪存组 0 + 1 分配给 CPU2。因此,可以在 CPU2 应用程序加载时正确初始化 CPU2 变量。
  6. 配置 CPU2 的 CCS 闪存设置,使其不会擦除 CPU1 的闪存组。

     CPU2 闪存组擦除设置
    图 7-6 CPU2 闪存组擦除设置
  7. 加载 CPU2 应用程序映像。
  8. 运行 CPU2。