ZHCU803C August   2020  – October 2025 TMS320F280033 , TMS320F280034 , TMS320F280034-Q1 , TMS320F280036-Q1 , TMS320F280036C-Q1 , TMS320F280037 , TMS320F280037-Q1 , TMS320F280037C , TMS320F280037C-Q1 , TMS320F280038-Q1 , TMS320F280038C-Q1 , TMS320F280039 , TMS320F280039-Q1 , TMS320F280039C , TMS320F280039C-Q1 , TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1 , TMS320F28P550SG , TMS320F28P550SJ , TMS320F28P559SG-Q1 , TMS320F28P559SJ-Q1

 

  1.   1
  2.   C2000 MCU 在无器件复位时的实时固件更新
  3.   商标
  4. 1简介
  5. 2关键创新
  6. 3LFU 的构建块
  7. 4建议解决方案的详细信息
    1. 4.1 闪存组组织
    2. 4.2 影响性能的 LFU 概念和因素
    3. 4.3 LFU 的硬件支持
      1. 4.3.1 独立闪存组
      2. 4.3.2 中断向量表交换
      3. 4.3.3 RAM 块交换
      4. 4.3.4 硬件寄存器标志
    4. 4.4 LFU 编译器支持
    5. 4.5 应用程序 LFU 流程
  8. 5结果和结论
  9. 6实现示例
  10. 7修订历史记录

结果和结论

图 5-1 中,描述了 LFU 切换之前发生的步骤:下载固件和编程闪存组、LFU 编译器初始化例程(函数 __TI_auto_init_warm()),然后在 main() 中执行 LFU 特定初始化(init_lfu() 函数)。

 LFU 切换前的步骤图 5-1 LFU 切换前的步骤

图 5-2 展示了实际的 LFU 切换。最顶部的波形 (00) 表示 LFU 切换,第二个波形 (01) 表示 ISR CPU 负载(旧固件为 80%,新固件为 40%),底部波形 (03) 表示稳定的输出电压。切换在 0.6µs(或 72 个 CPU 时周期)内发生,其中包括函数调用和 GPIO 设置/复位时间。ISR 结束后大约 40 个周期发生切换。退出 ISR 大约需要 20 个周期,然后退出等待正确切换时间的循环大约需要 15 个周期。

 LFU 切换步骤图 5-2 LFU 切换步骤

本应用手册演示了适合于实时控制应用程序的 LFU 的系统实现,尤其是需要在无停机条件下运行的高可用性系统。借助现有的 LFU 构建模块(包括全新的应用层 LFU 软件流程、硬件层 LFU 支持及编译器 LFU 支持),切换至新固件可在 10 秒的 CPU 时钟周期内完成。