ZHCAA00E June   2013  – January 2024

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
    1. 1.1 术语表
    2. 1.2 约定
  5. 2执行
    1. 2.1 主例程
    2. 2.2 应用程序管理器
      1. 2.2.1 引导和应用程序检测
        1. 2.2.1.1 强制使用引导加载程序模式
        2. 2.2.1.2 应用程序验证
        3. 2.2.1.3 跳转到应用程序
      2. 2.2.2 矢量重定向
      3. 2.2.3 闪存器件中的中断矢量
      4. 2.2.4 双映像支持
        1. 2.2.4.1 在双映像模式下跳转到应用程序
    3. 2.3 存储器接口 (MI)
      1. 2.3.1 双映像支持
    4. 2.4 通信接口 (CI)
      1. 2.4.1 Physical-DataLink (PHY-DL)
        1. 2.4.1.1 I2C
          1. 2.4.1.1.1 超时检测
        2. 2.4.1.2 UART
        3. 2.4.1.3 SPI
        4. 2.4.1.4 CC110x
        5. 2.4.1.5 通信共享
      2. 2.4.2 NWK-APP
        1. 2.4.2.1 基于 BSL 的协议
          1. 2.4.2.1.1 安全性
          2. 2.4.2.1.2 使用 CC110x 的基于 BSL 的协议
          3. 2.4.2.1.3 采用 I2C 的示例
          4. 2.4.2.1.4 采用 UART 或 CC110x 的示例
  6. 3定制 MSPBoot
    1. 3.1 预定义的定制
  7. 4构建 MSPBoot
    1. 4.1 启动新工程
      1. 4.1.1 创建新的 MSPBoot 工程
        1. 4.1.1.1 MSPBootProjectCreator.pl
        2. 4.1.1.2 在 CCS 中导入工程规范文件
        3. 4.1.1.3 修改生成的源代码
          1. 4.1.1.3.1 修改 MSPBoot Main.c
          2. 4.1.1.3.2 修改 TI_MSPBoot_Config.h
          3. 4.1.1.3.3 修改 TI_MSPBoot_CI_PHYDL_xxxx_xxx.c
          4. 4.1.1.3.4 修改 TI_MSPBoot_AppMgr.c
          5. 4.1.1.3.5 修改 Application Main.c
          6. 4.1.1.3.6 修改 TI_MSPBoot_Mgr_Vectors_xxxx.c
      2. 4.1.2 使用 MSPBoot 加载应用程序代码
        1. 4.1.2.1 转换应用程序输出映像
    2. 4.2 示例
      1. 4.2.1 LaunchPad 开发套件硬件
      2. 4.2.2 CC110x 硬件
      3. 4.2.3 构建目标工程
      4. 4.2.4 构建主机工程
      5. 4.2.5 运行示例
  8. 5参考文献
  9. 6修订历史记录

应用程序验证

应用程序验证机制允许引导加载程序在执行应用程序之前对其进行验证。可采用三种方法支持不同级别的代码规模和安全性:

  • None:不验证应用程序,认为应用程序始终有效。可通过外部事件强制使用引导加载程序模式。不推荐。
  • 复位向量:如果复位向量不同于 0xFFFF(已擦除状态),则认为应用程序有效并执行应用程序。
  • CRC_CCITT:计算整个应用程序映像的 CRC CCITT,并将结果与期望值进行比较。请注意,基于 BSL 的协议(请参阅节 2.4.2.1)使用 CRC CCITT,因此在使用基于 BSL 的协议时建议使用此验证方法。此外,这个方法不考虑修改闪存内容(例如数据记录)的应用程序。当执行这种类型的应用程序时,存储在闪存中的 CRC CCITT 会变得不正确,即使可能有效,引导加载程序也不会允许应用程序运行。开发可以修改闪存的应用程序时,建议使用复位矢量验证方法。

请注意,验证方法可以防止执行损坏的应用程序,但是不能确保应用程序的完整性和功能,这是用户的责任。如果应用程序不具有预期的功能,则仍可以使用硬件进入序列来恢复 MSP430 器件。