ZHDA045 January   2026 MSPM0G1518 , MSPM0G1519 , MSPM0G3518 , MSPM0G3519

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
  5. 2详细说明
    1. 2.1 概述
      1. 2.1.1 实时固件更新流程
      2. 2.1.2 内存组织
    2. 2.2 方框图
    3. 2.3 代码
      1. 2.3.1 CSC(客户安全代码,Bankswap_CSC_G3519_v2)
        1. 2.3.1.1 CSC — 主函数 (Bankswap_CSC_G3519_v2.c)
        2. 2.3.1.2 CSC — 链接器文件 (Bootloader.cmd)
      2. 2.3.2 应用 (Bankswap_G3519_gpio_output_toggle_v2_SW_Version55_CRC32)
        1. 2.3.2.1 应用程序 — 主函数 (Bankswap_G3519_gpio_output_toggle_v2_SW_Version55_CRC32.c)
        2. 2.3.2.2 应用程序 – UART ISR (Bankswap_G3519_gpio_output_toggle_v2_SW_Version55_CRC32.c)
        3. 2.3.2.3 应用程序 — 链接器文件 (device_linker.cmd)
    4. 2.4 实现
      1. 2.4.1 实现概述
      2. 2.4.2 实现流程
        1. 2.4.2.1 导入 CCS 项目文件 (TI CCS IDE)
        2. 2.4.2.2 执行 MCU 恢复出厂设置 (TI CCS IDE)
        3. 2.4.2.3 在 CCS 中构建 CSC、应用程序 (TI CCS IDE)
        4. 2.4.2.4 在 CCS 中启动调试并将映像下载到 MCU 中 (TI CCS IDE)
        5. 2.4.2.5 生成要发送的数据帧 (uart_frame_gui.exe)
        6. 2.4.2.6 在电脑上通过 UART 发送新固件 (Tera Term)
        7. 2.4.2.7 检查更新的固件 (TI CCS IDE)
  6. 3总结
  7. 4参考资料

简介

在器件部署到现场后,开发人员可能会发现意外软件漏洞,或需要添加新功能。在这种情况下,即使 MCU 仍在运行,也需要进行固件更新。但是,使用引导加载程序或 SWD(串行线调试)的传统更新方法并不适用于该场景,这类方法通常需要中止 MCU 的运行。

为解决这一限制,可采用在线固件更新方法,在不中断系统运行的前提下实现固件的实时更新。此方法利用了双组闪存存储器架构,使一个组能够执行现有固件,而另一个组则用于编程新映像。更新和验证过程完成后,会执行组交换以激活新固件。

截至 2025 年 11 月,已有 17 款 MCU 产品支持双组存储器,可通过存储组切换实现在线固件更新。在该实现方案中,新固件会下载到闪存组 1 中,而现有应用程序继续在闪存组 0 中运行。CSC(客户安全代码)用于验证固件版本并确定是否应触发存储组交换。新的固件映像通过 UART 通信从电脑传输到 MCU,该过程采用定义的数据帧结构,其中包含 CRC32 (JAMCRC) 校验和,可确保可靠且无错误的数据传输。

为了高效地执行实时固件更新,本方案提供了一系列软件组件与工具:

  • 由 TI 提供
    • CSC(客户安全代码)映像:版本检查和存储组交换操作。
    • 组 0/组 1 应用程序映像:分别包含活动固件和更新后的固件。通过 UART 接收新固件。通过 CRC32 (JAMCRC) 验证固件
    • 数据帧发生器 (uart_frame_gui.exe):电脑端实用程序,用于将原始.bin 文件转换为具有 CRC32 (JAMCRC) 验证的帧数据流。
  • 用户提供
    • Tera Term (https://teratermproject.github.io/index-en.html):用于将帧固件映像从电脑传输到 MCU(通过 XDS-110 调试器)
    • LP-MSPM0G3519 (https://www.ti.com/tool/LP-MSPM0G3519):该评估板同时集成了 XDS-110 调试器与 MSPM0G3519SPZR。XDS-110 还提供 USB 转 UART 桥接功能,用于从电脑发送新固件。

请通过以下链接下载 CSC、应用程序映像、数据帧生成器和幻灯片:https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/908/Live-Firmware-Update-via-Bank-Swap_5F00_Shared-files_5F00_260116.zip

有关 MSPM0 中的 CSC(客户安全代码)和多组功能的更多信息,请参阅“MSPM0 系列中的闪存多组功能”应用手册

通过将双组架构与这些支持工具相结合,开发人员可在不中断器件运行的前提下,在已部署的系统中安全、高效地完成固件更新,从而实现可靠的现场固件更新解决方案。