admin 发表于 2023-7-24 17:18:04

HT32 MCU IAP–使用 UART 进行固件更新

       现今的电子产品发展迅速且开发周期很短,往往在市场贩卖后有固件更新的需求,大部分修正软件问题、新增软件功能、系统优化等都需要固件更新来完成,因此发展出一种程序架构让应用程序有自我更新的能力,通过这种方法更新程序我们称之为IAP (In-Application Programming),此类程序通常由两个可执行的独立程序组成,分别是存放在IAP区域的IAP Loader,以及存放在AP (Application) 区域的AP Firmware。
       IAP / AP架构的优点是IAP Loader与AP Firmware的原始码都属于Main Flash内应用层的程序,用户拥有完全的控制能力,例如用户可以决定自己的通信接口,也可自定义通信协议,或是沿用HT32定义的协议来增加新命令。但MCU必须分配部分的Flash存储器作为IAP区域而压缩了AP可用的范围,在Flash Layout的单元会介绍HT32的IAP / AP架构的存储器规划。

HT32提供的IAP_UART应用范例通过两个范例程序组成 :
          Slave范例:使用IAP / AP架构。IAP Loader会根据Host传来的命令封包对AP进行IAP更新。使用者可在此工程架构下开发或移植应用程序。
          Host范例:此范例示范如何开发一个IAP Host。将“新版Slave AP Image”作为数据存储在内部Flash,并向Slave的IAP Loader发出更新AP的需                               求。Host范例仅用于测试与学习,使用者需要将其移植到应用环境的Host,并依据实际的应用情境进行调整。
HT32的IAP_UART Slave范例提供以下功能:
      完整且稳定的IAP通信协议。
      完整的更新程序API,包括:Erase、Program、Jump to IAP / AP。
      完整的验证程序API,包括:Verify、CRC、Blank Check。
      安全机制,包括:封包认证、数据加密、完整性确认、更新范围与流程保护。避免非法的操作与更新行为。
      更新中断与应用执行保护,包括:AP存在检查机制、版本检查机制、AP Firmware正确性检查 (CRC Check)。

更多详情见pdf文档




页: [1]
查看完整版本: HT32 MCU IAP–使用 UART 进行固件更新