ZHCABH7 January   2022 TM4C129CNCPDT , TM4C129CNCZAD , TM4C129DNCPDT , TM4C129DNCZAD , TM4C129EKCPDT , TM4C129ENCPDT , TM4C129ENCZAD , TM4C129LNCZAD , TM4C129XKCZAD , TM4C129XNCZAD

 

  1.   摘要
  2.   商标
  3. 1实现
    1. 1.1 闪存引导加载程序项目
      1. 1.1.1 对示例项目 boot_serial 的变更
        1. 1.1.1.1 对 bl_config.h 的变更
        2. 1.1.1.2 添加的新函数
          1. 1.1.1.2.1 MyCheckUpdateFunc
          2. 1.1.1.2.2 MyReinitFunc
          3. 1.1.1.2.3 MyEndFunc
          4. 1.1.1.2.4 MyDecryptionFunc
    2. 1.2 映像创建项目
    3. 1.3 密钥映像工程
    4. 1.4 EK-TM4C129EXL 示例应用程序项目
    5. 1.5 DK-TM4C129X 示例应用程序项目
    6. 1.6 基于 RAM 的 EEPROM 擦除项目
  4. 2示例走查
    1. 2.1 编译环境
    2. 2.2 将示例导入 Code Composer Studio
    3. 2.3 设置密钥和变量
      1. 2.3.1 密钥
      2. 2.3.2 初始化矢量
      3. 2.3.3 应用程序起始地址和闪存大小
        1. 2.3.3.1 APP_BASE
        2. 2.3.3.2 APP_END
        3. 2.3.3.3 RAM_BASE
    4. 2.4 运行 shared_key_image_encrypt 工具
    5. 2.5 运行共享密钥串行引导加载程序
      1. 2.5.1 对引导加载程序进行编程
        1. 2.5.1.1 擦除现有代码和密钥
          1. 2.5.1.1.1 使用 Code Composer Studio 擦除闪存和 EEPROM
          2. 2.5.1.1.2 使用解锁程序擦除闪存和 EEPROM
        2. 2.5.1.2 使用 ROM 引导加载程序对共享密钥引导加载程序进行编程
      2. 2.5.2 使用共享密钥引导加载程序对应用程序代码进行编程
    6. 2.6 返回引导加载程序
  5. 3总结

使用 ROM 引导加载程序对共享密钥引导加载程序进行编程

现在闪存已被擦除,LaunchPad 正在执行 ROM 引导加载程序。前面关于共享密钥引导加载程序的示例使用了串行接口。此 ROM 引导加载程序示例将使用相同的串行接口来演示如何将共享密钥引导加载程序加载到空白器件中。

注: 请确保 TeraTerm 终端窗口与串行端口断开连接,并且 LaunchPad 未连接到 Code Composer Studio。USB 电缆仍必须保持连接。
  1. 如下所示,打开 LM Flash Programmer 并设置配置选项卡上的项目,选择与 LaunchPad 关联的 COM 端口。
    GUID-20211209-SS0I-MBJX-JLJT-GVVQLHFDRK8K-low.png图 2-17 配置 LM Flash Programmer 以对引导加载程序进行编程
  2. 然后,在“Program”选项卡上,浏览到 Debug_wKey\shared_key_boot_serial.bin 文件。确保选中“Reset MCU After Program”并将“Program Address Offset”设置为 0。
    GUID-20211209-SS0I-KLBK-ZBGN-46MFX6LGKVTX-low.png图 2-18 使用 LM Flash Programmer 对引导加载程序进行编程
  3. 点击“Program”按钮。

编程完成后,引导加载程序将执行并将密钥复制到 EEPROM 中,然后再从闪存中擦除密钥。如果使用 Release_wKey\shared_key_boot_serial.bin 文件而非调试版本,引导加载程序将对闪存的第一个扇区进行写保护并锁定 JTAG。