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总结

对 bl_config.h 的变更

  • 第 29 行:通过添加“#include "linker_defines.h"”修改空白行。这定义了闪存应用程序的起始地址
  • 第 80 行:修改为“#define APP_START_ADDRESS APP_BASE”。
  • 第 218 行:取消 FLASH_CODE_PROTECTION 的注释。
  • 第 1402 行:取消“void MyReinitFunc(void);”的注释。
  • 第 1405 行:取消“#define BL_INIT_FN_HOOK MyReinitFunc”的注释。
  • 第 1442 行:取消“void MyEndFunc(void);”的注释。
  • 第 1445 行:取消“#define BL_END_FN_HOOK MyEndFunc”的注释。
  • 第 1453 行:取消“void MyDecryptionFunc(unsigned char *pucBuffer, unsigned long ulSize);”的注释并将“long”更改为“int”。
  • 第 1460 行:取消“#define BL_DECRYPT_FN_HOOK MyDecryptionFunc”的注释。
  • 第 1471 行:取消“unsigned long MyCheckUpdateFunc(void);”的注释。
  • 第 1479 行:取消“#define BL_CHECK_UPDATE_FN_HOOK MyCheckUpdateFunc”的注释。