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修订历史记录
修改 TI_MSPBoot_Config.h

TI_MSPBoot_Config.h 中有四个 TODO 项需要用户修改:

  • 定义 MCLK 频率
    • 修改 main.c 之后,代码的其他部分需要知道 MCLK 频率才能正常运行。
  • 设置看门狗时间间隔
    • 在有些应用中,如果引导加载程序无响应,可能需要将器件复位。时间间隔长短的最大影响因素是所编程器件的闪存大小。闪存空间越多,时间间隔必须越长。例如,在包含 128KB 闪存的 MSP430F5529 中,时间间隔大于 6 秒。如果使用看门狗计时器,则 NDEBUG define 语句也必须取消注释。
  • 设置硬件进入条件
    • 通常,引导加载程序提供了一种通过硬件条件进入代码的方法。在 MSPBoot 中,用户可以根据引脚的状态是高电平还是低电平来做决策。
  • 取消配置选项的注释
    • 根据使用的通信接口,有许多不同的配置选项需要选择。您也可以在表 3-1 中找到这方面的更多信息。
    • 使用 I2C 时:
      • 取消 CONFIG_CI_PHYDL_START_CALLBACK 和 CONFIG_CI_PHYDL_I2C_SLAVE_ADDR 的注释
    • 使用 UART 时:
      • 取消 CONFIG_CI_PHYDL_UART_BAUDRATE 的注释
    • 使用 CC110x 时:
      • 取消 CONFIG_CI_PHYDL_CC1101_FREQUENCY 的注释