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
对切换时间的多个分量进行了分析以评估优化机会,并发现中断矢量映射条目的更新是影响切换时间的主要因素之一。要更新的向量的数量从几个到整个表(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 个周期减少到一个周期。