ZHCU755D August   2022  – December 2022

 

  1.   说明
  2.   资源
  3.   特性
  4.   应用
  5.   5
  6. 1系统说明
    1. 1.1 关键系统规格
  7. 2系统概览
    1. 2.1 方框图
    2. 2.2 设计注意事项
      1. 2.2.1 构建块
      2. 2.2.2 闪存分区
      3. 2.2.3 LFU 切换概念
      4. 2.2.4 应用程序 LFU 流程
  8. 3硬件、软件、测试要求和测试结果
    1. 3.1 硬件要求
    2. 3.2 软件要求
      1. 3.2.1 软件包内容
      2. 3.2.2 软件结构
    3. 3.3 TIDM-DC-DC-BUCK 简介
    4. 3.4 测试设置
      1. 3.4.1 使用 CCS 将自定义引导加载程序和应用程序加载到闪存
    5. 3.5 测试结果
      1. 3.5.1 在 CPU 上运行控制循环时运行 LFU 演示
      2. 3.5.2 在 CLA 上运行控制循环时运行 LFU 演示
      3. 3.5.3 CPU 上的 LFU 流程
      4. 3.5.4 CLA 上的 LFU 流程
      5. 3.5.5 假设
      6. 3.5.6 为 LFU 准备固件
      7. 3.5.7 LFU 编译器支持
      8. 3.5.8 稳健性
      9. 3.5.9 LFU 用例
  9. 4FOTA 示例
    1. 4.1 摘要
    2. 4.2 引言
    3. 4.3 硬件要求
    4. 4.4 软件要求
    5. 4.5 运行示例
  10. 5设计和文档支持
    1. 5.1 软件文件
    2. 5.2 文档支持
    3. 5.3 支持资源
    4. 5.4 商标
  11. 6术语
  12. 7关于作者
  13. 8修订历史记录

引言

在无法重新映射闪存组的情况下,每个闪存组都映射到一个固定的存储器地址。在 LFU 期间,固件可执行文件会编程到当前不活动的闪存组中,而应用程序继续从当前活动的闪存组运行。在使用该方法时,用户需要知道其固件可执行文件的目标闪存组。因此,用户需要为其工程维护 2 个链接器命令文件(如果用户使用 2 个闪存组)。这可能很麻烦,因此,此处提出并实施了一种替代解决方案。

在该方法中,固件可执行文件始终构建为加载到闪存组 1 中并从闪存组 0 运行。这可以只用一个链接器命令文件来完成。与应用程序中的函数加载到闪存中并从 RAM 运行以提高性能类似,此处也需要一个存储器副本。这是在 LFU 引导加载程序(即闪存内核)中实现的。完成闪存组 1 到组 0 的存储器复制大约需要 1 秒的时间。

如前所述,该示例可以用作 FOTA 的参考,有几个功能特性没有实现:

  • 回滚 – 要支持回滚,需要先从闪存组 0 复制到闪存组 2,然后再从组 1 复制到组 0。这可以完全按照闪存内核中展示的组 1 到组 0 复制的方式完成。

  • 复位 – 该示例在组 1 到组 0 复制之后不实现完整的器件复位。这就是 FOTA 的工作方式。在该示例中,存储器复制完成后,闪存内核直接跳转到应用程序的入口点,在此处调用 c_int00,然后调用 main()。