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

LFU 所需资源

如果器件拥有各种类型的充足资源(CPU 带宽、内存和可用外设),则 LFU 是可行的:

  • CPU 带宽 – 新固件必须使用通信外设传输,并写入闪存存储器,同时应用仍在运行。这意味着 CPU 需要有足够的可用带宽来支持 LFU。
  • 存储器 – 此处使用的非易失性存储器是闪存存储器。闪存读取和写入操作无法在同一闪存组中同时执行。但读取和写入操作可以在不同闪存组中同时执行。因此,对器件而言理想方案是包含两组闪存。如果器件只有一组闪存,实现 LFU 将特别具有挑战性,但仍是可行的,前提条件是:
    • 新固件更新到闪存时,完整的应用代码(或控制用户所关注的输出的那部分代码)和闪存 API 需要从 RAM 存储器运行。这意味着应有大小足够的 RAM 存储器可供利用。
    • 一些器件支持 ROM 中的闪存 API;在这些器件中,应用代码可从 RAM 运行,闪存 API 可从 ROM 存储器运行,从而降低了 RAM 要求。
  • 可用外设 – 使用新映像的备用通信外设可从主机传输到器件。

在包含多组闪存的器件中更易于实现 LFU。在此文档和参考示例中,假设器件都包含两组闪存。考虑使用的器件为具有双组闪存的 TMS320F28004x。它们各自的地址空间都是 64K x 16,地址范围为 0x80000-0x8FFFF 和 0x90000-0x9FFFF。