ZHCU803B August   2020  – September 2022 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

 

  1.   C2000 MCU 在无器件复位时的实时固件更新
  2.   商标
  3. 1引言
  4. 2关键创新
  5. 3LFU 的构建块
  6. 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 流程
  7. 5结果和结论
  8. 6修订历史记录

中断向量表交换

对切换时间的多个分量进行了分析以评估优化机会,并发现中断矢量映射条目的更新是影响切换时间的主要因素之一。要更新的向量的数量从几个到整个表(192 个向量)不等。单个条目的更新可能需要大约 5 个周期,因此向量表本身的更新可能需要多达 960 个周期(200MHz 时为 4.8us)。

为了减少切换时间,实现了影子向量存储器以及将其与活动向量存储器交换的能力。切换代码可以在应用程序执行过程中更新影子矢量存储器。更新向量存储器后,交换将在一个时钟周期内完成。这两个存储器都可以乒乓方式用于连续的软件升级。

中断向量交换的代表性实现如图 4-2 所示。图 4-2(a) 是交换之前的配置,图 4-2(b) 是交换之后的配置。整个向量存储器被分成两个块 – 块 A 从地址 0x0000_0D00 到 0x0000_0EFF,块 B 从地址 0x0100_0900 到 0x0100_0AFF。块 A 保存活动向量表,块 B 保存影子向量表。在 LFU 期间,影子存储器条目在切换之前得到更新,并且在切换期间执行交换。这会将切换时间从最多 960 个周期减少到一个周期。

图 4-2 中断向量交换