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

 

  1.   商标
  2. 1引言
  3. 2LFU 所需资源
  4. 3存储器布局
  5. 4LFU 中的静态代码
  6. 5LED 示例应用和 LFU 流程
  7. 6运行 LED 示例
    1. 6.1 串行闪存编程器更新
    2. 6.2 静态代码编程 – 通过 Code Composer Studio (CCS) 加载
    3. 6.3 应用的实时固件更新
    4. 6.4 限制和疑难解答
  8. 7修订历史记录

存储器布局

闪存存储器的分区如图 3-1所示。

GUID-796BF86D-9C75-4483-8217-0B1D1BA1F52C-low.gif图 3-1 闪存存储器组 0 和组 1 的内容

假设每组闪存有 16 个扇区,两个扇区已分配给静态代码(代码在不同应用中均保持不变)。Topic Link Label4进行了相关介绍。

保留了扇区 2 中的几个位置,用于存储以下条目:

  • START – 当这个 64 位的字段由串行通信接口 (SCI) 闪存内核在特定闪存组中设置(设为 0x5A5A5A5A5A5A5A5A),则说明相应的闪存组已被擦除(应用扇区),而且编程/验证即将开始。在此示例中,START 字段在 BANK0 中位于地址 0x82000,在 BANK1 中位于地址 0x92000。
  • REV – 这代表 32 位固件版本号,由 SCI 闪存内核设置,由组选择逻辑用于确定在闪存组 0 和 1 之间哪一个是最新映像。REV 始于 0xFFFFFFFF,每个后续闪存编程周期都会递减。因此具有较低版本号的闪存组被视为最新版本。为了简单起见,固件版本字段由闪存内核处理。实际上,最近下载的映像可能并不是最新固件版本,应用映像包含固件版本,但此模型假设内核会更新 REV 字段。在此示例中,REV 字段在 BANK0 中位于地址 0x82006,在 BANK1 中位于地址 0x92006。假设 REV 在 BANK0 中为 FFFF FFFA,在 BANK1 中为 FFFF FFF9,则 BANK1 将被视为最新固件并执行。
  • KEY – 如果此位置包含有效 KEY (0x5B5B5B5B),闪存组中的映像将被视为有效。这个 KEY 将由 SCI 闪存内核写入,并由组选择逻辑读取并测试。在此示例中,KEY 字段在 BANK0 中位于地址 0x82004,在 BANK1 中位于地址 0x92004。

扇区 2 的其余部分和扇区 3-15 可用于存储应用映像。这样扇区 0 和 1 中的静态代码可编程一次,在 LFU 期间保持不变。