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修订历史记录

假设

  1. 在设计中,F28003x 上的 LFU 实施仅限于 2 个闪存组。然而,该器件最多可以包含 3 个闪存组,并且 LFU 实施可以扩展到涵盖 3 个组。
  2. 组选择逻辑仅存在于闪存组 0 上。
  3. 一旦 LFU 命令处理开始,TIDM-DC-DC-BUCK 的后台任务就会停止运行。如果用户想要实施 LFU,并且希望后台循环或部分后台循环在 LFU 命令处理期间继续运行,则可能需考虑将上述循环移到 ISR(例如,CPUTimerISR)中。
  4. 使用“#pragma INTERRUPT(ISR_name, HPI)”指定控制循环 ISR。HPI 指高优先级中断,它使用快速上下文保存模式,但无法嵌套。SCI 接收中断 ISR 未指定为 HPI。因此,它默认为 LPI 或低优先级中断,这是可以嵌套的。此外,控制循环 ISR 由 ADCB1 中断触发,该中断属于 F28004x/F28003x 上的中断组 1,优先级高于 SCIA_RX 中断(该中断属于中断组 9)。
  5. 分配给未显式分配的 PIE 向量的默认 ISR 保持不变。
  6. 在 LFU 期间禁用 SFRA – 这是因为 SFRA 和 LFU 主机共享同一 SCI 外设。在当前硬件配置下,不可能同时支持这两者,因为 Launchpad 仅支持从主机到器件的一个 SCI 通道。
  7. 由于不支持闪存组交换,必须将特定的固件版本映射到特定的闪存组。
  8. 应用程序固件的对象输出类型为 EABI。
  9. .bss(未初始化的数据)成为 NOINIT,因为 EABI 在默认情况下会将未初始化的变量初始化为 0。全局变量的初始化由 main() 中的用户函数完成。这并非必需的,也可以通过 C 运行时初始化例程来完成。
    注:

    NOINIT 不影响 __TI_auto_init_warm()。

  10. 该注释特定于 F28004x - C2000Ware 包含为 COFF 和 EABI 构建的闪存 API 库。基于 EABI 的库是一个从 ROM 运行的闪存 API 库。这包括在应用程序工程中。为了保持一致性,ROM 构建配置也用于定制引导加载程序 (flashapi_ex2_sci_kernel) 工程。
  11. 如果用户的应用程序包含多个 ISR(包括嵌套 ISR),则 LFU 切换需要在没有 ISR 运行时的空闲时间发生。如果存在持续时间不同的空闲时间段,则用户可以根据其具体的应用用例选择理想空闲时间段。整个 LFU 过程(包括最终 LFU 切换)在后台(例如在空闲时间)发生。
  12. C28x 和 CLA LFU 切换是异步发生的,前提是 C28x 上运行的代码和 CLA 上运行的代码足够独立,从而允许进行该异步切换。如果这些代码相互依赖,需要进行同步切换,则需要修改 LFU 切换的流程。首先,需要确定 CLA LFU 切换时间。这对应于从 CLA 到 C28x CPU 的“CLA 后台任务停止”中断。现在 CLA 已为切换做好准备,但不应进行切换。现在需要确定 C28x LFU 切换时间。确定该时间之后,C28x 和 CLA 就已为切换做好准备,可以同时进行切换。