This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] [参考译文] 【常见问题解答】F29x 闪存模块与放大器;FOTA:常见问题解答

Guru**** 2468460 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1554077/faq-f29x-flash-module-fota-frequently-asked-questions

器件型号:F29H859TU-Q1


工具/软件:

在哪里可以找到与在 F29x 器件上使用闪存和 FOTA 相关的常见问题解答?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    有关参考、请参阅 F29x 其他 IP/外设的通用常见问题解答

    F29x 闪存模块常见问题解答

    F29x 上的闪存结构是什么?

    • 在 F29H85x 上、有 4MB 的闪存可映射到 C29 CPU (CPU1 和 CPU3)。 这些 4MB 的闪存由 4 个交错组对组成、每个组的总容量为 1MB。 每个单独的存储体具有 512KB 的容量、并分为 256 个扇区(每个为 2KB)。 还有一个未交错的 256KB 专用数据仅闪存组、具有 128 个扇区。 4MB 的 CPU 可映射闪存支持 FOTA。 前面提到的所有闪存都可通过 CPU1、CPU3、HSM、RTDMA1 和调试器进行访问。

    F29x 上的闪存交错方案是什么?

    • 存储体对中的每 128 位都会交替使用 128 位对应的物理闪存组。 请参阅下面的示例结构。
    闪存 组对
    0x10000000 0
    0x10000010 1.
    0x100000020 0
    0x10000030 1.
    …μ s …μ s

    F29x 上的闪存扇区擦除和闪存组擦除有何区别?

    • 可以擦除的最小闪存单元为一个扇区 (2KB)。 Sector erase 命令用于对单个扇区执行闪存擦除。 存储体擦除命令能够擦除存储体内的所有扇区、并提供擦除保护位掩码以避免擦除存储体的特定部分。 需要注意的是、仅针对存储体的前 32 个扇区提供单独的扇区擦除保护粒度。 在配置写入/擦除保护时、扇区 32-256(或 128)分成 8 组。

    什么是配置工具?

    • 配置是在器件中安全安装用户密钥(用于信任根)和代码的过程。 可以使用 TI FlashWriter 工具进行配置。 有两个阶段:
      1、密钥预置:这会将 SMEK、SMPKH、BMPKH 等数据编程到 HSM 密钥库区域中。 完成该操作后、器件处于 HS-KP(密钥预置)状态。 在此状态下、C29 将被阻止执行闪存代码。
      2.代码预置:这会将应用代码(和认证证书)编程到 HSM 和 C29 闪存中。 完成此操作后、器件处于 HS-SE(强制安全)状态。 现在强制执行安全启动并关闭调试端口(必须由 HSM RT 进行身份验证/打开)。
      在此处申请访问 F29x TIFS-SDK 和 OTP Keywriter(在 TIFS-SDK 中): https://www.ti.com/tool/F29-SDK 
      包含入门文档的自述文件位于各自的文件夹中。

    如何在链接器命令文件中组合不是偶发的存储器?

    • SRAM_LPAx 和 SRAM_CPAx 是连续的存储器区域。 可以将其组合到单个存储器块、但不能组合 2 个非连续存储器。 不过、您可以让链接器在多个存储器区域(甚至是非连续的区域)之间分配段。 在这种情况下、链接器将拆分段并将它们放置在列出的存储器区域之间。 您也可以参阅以下文档: TI 链接器命令文件入门

    可以使用哪些资源来了解如何对闪存进行编程?

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    F29x FOTA 常见问题解答

    通过 CAN 发送固件映像时、典型的 CPU 负载是多少? FOTA 期间的典型 CPU 负载时间是多少?

    • 在更新过程中、估算的 CPU 负载没有任何特定的/基准测试数字。 CPU1 或 CPU3 将需要通过 CAN 下载更新映像。 组编程过程本身由闪存状态机执行、因此它在 CPU 执行其他任务时在后台发生。 CPU 需要执行的所有操作都是轮询以检查擦除/编程操作是否已完成。

    FOTA 的分步过程是什么?

    • 对于 FOTA、组交换在复位时发生。 器件根据闪存 BANKMGMT 区域中的 BANK_UPDATE_CTR 确定哪个存储器应该处于活动状态。 无论哪一半具有基于更新计数器的较新版本(假设这两个版本都标记为有效)、交换设置都会得到确定。 因此、将新映像编程到更新区域后、需要使用新版本的 BANK_UPDATE_CTR 值对 BANKMGMT 区域进行编程。

    对于 FOTA、当存储体交换发生在复位时:

    1. 这是软件复位吗? 它是否在未关闭电源的情况下工作?
    2. 是否有任何特定的程序来发出复位命令?
    3. 发出复位命令时、是否需要清除 RAM?
    • 此处提到的复位是 XRSn。 XRSn 由软件和硬件(外部引脚)控制、不需要断电(即 PORESETn)。 通过从 CPU1 写入 CPU_SYS_REGS 中的 SIMRESET.XRSn 寄存器、可以在软件中启动 XRSn。 复位只能由 CPU1 或 HSM 启动。 XRSn 复位时不会自动清除 RAM。 可以使用存储器控制器手动启动 RAM 初始化。