ZHCACV0 july   2023 MSPM0L1306

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2LFU 引导加载程序功能概述
  6. 3硬件和软件设置
    1. 3.1 硬件要求
    2. 3.2 软件设置
  7. 4LFU 引导加载程序实现
    1. 4.1 LFU 引导加载程序和应用项目
    2. 4.2 内存分配
    3. 4.3 已实现的 LFU 引导加载程序
    4. 4.4 LFU 应用代码实现
      1. 4.4.1 应用的链接器命令文件
      2. 4.4.2 外设和中断初始化
      3. 4.4.3 应用项目调试
    5. 4.5 调用固件升级过程
  8. 5主机 GUI 工具简介
    1. 5.1 LFU 固件更新
    2. 5.2 应用项目链接文件生成
    3. 5.3 非主闪存配置固件生成
      1. 5.3.1 生成非主闪存配置固件的步骤
      2. 5.3.2 用于对 NONMAIN 闪存配置数据进行编程的 UNIFLASH 工具
  9. 6LFU 引导加载程序协议
    1. 6.1 数据包格式和内核命令
    2. 6.2 LFU 引导加载程序中的特殊命令
    3. 6.3 主机器件固件升级流程
  10. 7迁移到其他 MSPM0 器件
  11. 8参考文献

主机器件固件升级流程

GUID-20230421-SS0I-HJWZ-RNKQ-PPLSVTBJ7TBB-low.svg图 6-1 LFU 主机操作流程

在开始固件升级过程之前需要执行以下两个步骤:

  1. 发送一字节命令 0x55 来检查应用代码执行状态,以便您知道哪些应用代码需要升级。
  2. 发送一字节命令 0x11 来检查引导加载程序状态,如果器件响应 0x51,则表示引导加载程序处于活动状态,并准备好进行固件升级。否则,您需要先发送一字节命令 0xAA,以强制引导加载程序从挂起状态进入活动状态。

当您确定引导加载程序处于活动状态时,请先发送密码以解锁器件,然后擦除所需的闪存空间,并编写新的应用代码。

以下是发送应用代码的提示。

  • 确保应用代码 .txt 文件是 16 字节对齐。主机软件负责用虚拟数据字节填充未使用的空间,确保 .txt 文件为 16 字节对齐,请参阅图 6-2图 6-3
    GUID-20230504-SS0I-VN8M-TTH8-0RFQSJRFDNHP-low.png图 6-2 未对齐的固件
    GUID-20230504-SS0I-MTK5-77LJ-VT8G2VJGBZNS-low.png图 6-3 对齐的固件
  • 最后发送新应用固件的第一行(固件中的前 16 个字节)。这是为了避免意外执行未完成的固件的情况。目前的引导加载程序只是通过检查前 8 个字节是否全为 0xFF 来检查应用固件是否存在,不会检查固件是否要完成。如果最后发送了固件的第一行,可确保整个固件已成功发送。

编写新的应用代码后,发送命令 CMD 启动应用以执行新的应用代码。