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修订历史记录

定制 MSPBoot

MSPBoot 设计为具有低成本和小占位空间;但是,某些应用需要具有更高级别的安全性和稳健性,或者可以从这些特性中受益。根据应用要求,MSPBoot 代码中提供了不同级别的定制,并且可以根据特定需求进行调整。可通过添加适当的文件或通过启用和禁用某些预处理程序定义来选择这些选项。表 3-1 列出了可以在 TI_MSPBoot_Config.h 中配置的选项。

表 3-1 可选配置
说明对代码大小的影响
NDEBUG
已定义忽略 ASSERT_H 函数。启用看门狗。
未定义调试期间使用。选中 ASSERT_H 函数。禁用看门狗。增加大约 20 字节
CONFIG_MI_MEMORY_RANGE_CHECK
已定义确认要擦除或编程的地址在应用程序区域内。增加大约 44 字节
未定义不验证要擦除或编程的地址。主机必须发送正确的地址。
CONFIG_APPMGR_APP_VALIDATE
1不验证应用程序-
2通过检查 CRC-CCITT 验证应用程序。增加大约 6 字节
CONFIG_CI_PHYDL_COMM_SHARED
已定义通信接口 PHY-DL 层与应用程序共享。增加大约 28 字节
未定义CI PHY-DL 不与应用程序共享。
CONFIG_CI_PHYDL_I2C_TIMEOUT
已定义在 CI PHY-DL 中检测超时。增加大约 48 到 62 字节
未定义CI PHY-DL 不检测超时。
CONFIG_CI_PHYDL_START_CALLBACK
已定义在检测到“启动”时,调用回调函数(仅某些协议或通信接口才需要)。增加大约 12 字节
未定义在检测到“启动”时,不调用回调函数。
CONFIG_CI_PHYDL_STOP_CALLBACK
已定义在检测到“停止”时,调用回调函数(仅某些协议或通信接口才需要)。增加大约 38 到 54 字节
未定义在检测到“停止”时,不调用回调函数。
CONFIG_CI_PHYDL_ERROR_CALLBACK
已定义在检测到超时错误时,调用回调函数(仅某些协议或通信接口才需要)。增加大约 16 到 20 字节
未定义在检测到超时错误时,不调用回调函数。
CONFIG_CI_PHYDL_CC1101_FREQUENCY
已定义定义 CC110x 通信的频率-
未定义--
CONFIG_CI_PHYDL_UART_BAUDRATE
已定义定义 UART 通信的波特率-
未定义--
CONFIG_CI_PHYDL_I2C_SLAVE_ADDR
已定义定义使用 I2C 通信时 MSP430 响应的地址-
未定义--

如果要选择其他定制方案,可通过在工程中添加和使用适当的文件来实现。表 3-2 列出了工程中可互换的文件。

表 3-2 定制文件
CI PHY-DL
TI_MSPBoot_CI_PHYDL_USI_I2C_Slave.c使用 USI 作为 I2C 从设备
TI_MSPBoot_CI_PHYDL_USCI_I2C_Slave_x2xx.c使用 USCI 作为 x2xx 器件上的 I2C 从设备
TI_MSPBoot_CI_PHYDL_USCI_I2C_slave.c使用 USCI 作为 I2C 从设备
TI_MSPBoot_CI_PHYDL_USI_I2C_slave.c使用 USI 作为 I2C 从设备
TI_MSPBoot_CI_PHYDL_eUSCI_I2C_slave.c使用 eUSCI 作为 I2C 从设备
TI_MSPBoot_CI_PHYDL_USCI_UART_x2xx.c使用 USCI 作为 x2xx 器件上的 UART
TI_MSPBoot_CI_PHYDL_USCI_UART.c使用 USCI 作为 UART
TI_MSPBoot_CI_PHYDL_eUSCI_UART.c使用 eUSCI 作为 UART
TI_MSPBoot_CI_PHYDL_CC1101.c使用 CC110x
MI
TI_MSPBoot_MI_Flash_20Bit.c用于对大型存储器模型器件中的应用程序闪存进行编程的 API
TI_MSPBoot_MI_FlashDualImg_20Bit.c用于在大型存储器模型器件的闪存中实现双映像的 API
TI_MSPBoot_MI_Flash_16Bit.c用于对小型存储器模型器件中的应用程序闪存进行编程的 API
TI_MSPBoot_MI_FlashDualImg_16Bit.c用于在小型存储器模型器件的闪存中实现双映像的 API
应用管理器
TI_MSPBoot_AppMgr.c标准应用管理器
TI_MSPBoot_AppMgrDualImg_20Bit.c在大型存储器模型器件中支持双映像的应用管理器
TI_MSPBoot_AppMgrDualImg_16Bit.c在小型存储器模型器件中支持双映像的应用管理器