ZHCA999D October   2016  – March 2020 MSP430FR5969 , MSP430FR5969-SP , MSP430FR5994 , MSP430FR6989

 

  1.   MSP430FRBoot - 适用于 MSP430™ FRAM 大型存储器型号器件的主存储器引导加载程序和无线更新
    1.     商标
    2. 1 简介
      1. 1.1 术语表
      2. 1.2 约定
    3. 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 FRAM 器件中的中断矢量
      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 UART
          2. 2.4.1.2 SPI
          3. 2.4.1.3 CC110x
          4. 2.4.1.4 通信共享
        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 采用 UART 或 CC110x 的示例
    4. 3 定制 MSP430FRBoot
      1. 3.1 预定义的定制
    5. 4 构建 MSPBoot
      1. 4.1 LaunchPad™ 开发套件硬件
      2. 4.2 CC110x 硬件
      3. 4.3 软件
        1. 4.3.1 构建目标软件
        2. 4.3.2 转换应用程序输出映像
        3. 4.3.3 生成链接器文件
    6. 5 将 FRAM LaunchPad 开发套件用作主机的演示
      1. 5.1 硬件
      2. 5.2 构建主机项目
      3. 5.3 运行演示
    7. 6 将目标端示例项目移植到其他 MSP430FR 器件
    8. 7 参考文献
  2.   修订历史记录

运行演示

主机 LaunchPad 开发套件项目将两个不同的映像发送到目标器件,并使用按钮进行用户交互。在两个 LaunchPad 开发套件上都不需要以 USB 连接到计算机即可运行演示;但是,每个套件都应通过 eZ-FET 由 USB 连接供电,或通过连接到 VCC 和 GND 引脚的稳定 3.3V 外部电源供电(在这种情况下,请确保 eZ-FET 断开连接)。由于主机和目标 LaunchPad 开发工具包都是相同的硬件,因此对每个板进行相应的标记可能有助于避免混淆。无论使用哪种通信类型或映像模式,都将按照以下步骤运行演示:

  1. Section 4.3.1所述构建并下载 MSPBoot,并构建 App1 和 App2。
  2. 根据Section 4.3.2,转换 App1 和 App2。
  3. NOTE

    批处理文件 PrepareCCSOutput_[FR derivative].bat 显示了如何转换为 C 数组并复制输出文件。在此主机实现中,MSP430 MCU 保留了不带 CRC 的目标映像,因此它是在假设未编程使用的位置为 0xFF 时计算 CRC 值的。

  4. Section 5.2所述,构建并下载主机应用程序。
  5. 根据所需通信类型(Section 5.1所述的 UART 或Section 4.2所述的 CC110x 解决方案之一)连接板。
  6. 在两个器件中重置并执行代码。
  7. 要进入目标引导加载程序模式(LED1 和 LED2 都保持亮起状态即表示处于该模式),请执行以下步骤:
    1. 如果目标没有有效的应用程序(默认),则目标将保持在引导加载程序模式下。
    2. 在硬件中,通过按住目标器件上的 S2 按钮,同时按住再释放复位按钮,即可强制进入引导加载程序模式。
    3. 如果是运行一个应用程序:
      1. 在目标器件上按 S2 按钮时,APP1 跳转到引导加载程序模式。
      2. 当收到“强制引导”命令时(仅在共享 CI PHY-DL 时才受支持),APP2 会跳转到引导加载程序模式。
  8. 按下主机板上的 S1 按钮。主机器件执行以下命令序列:
    1. 两次切换 LED1。
    2. 发送“强制引导”命令 (0xAA)。
      1. 如果目标器件已经处于引导加载程序模式,则会丢弃数据包,因为 CRC 不正确。
      2. 如果目标正在运行 APP2,则目标器件将进入引导加载程序模式。
    3. 请求引导加载程序版本(发送 TX_VERSION 命令)。
      1. 如果目标响应为 0xA0(符合 BSL 协议预期),则主机继续。
      2. 如果目标响应是任何其他值,则主机将中止事务。
    4. 擦除目标应用程序区域(发送 ERASE_APP 命令)。
    5. 发送 APP1(使用 RX_DATA_BLOCK 命令)。
    6. 设定 APP1 的 CRC(使用 RX_DATA_BLOCK 命令)。
    7. 强制目标应用程序运行(发送 JUMP2APP 命令)。
    8. 两次切换 LED1 表示传输成功,而保持 LED1 亮起表明主机已准备好发送 APP2。
  9. 传输完成后,目标开始运行 APP1。
    1. 目标器件使 LED1 闪烁。
    2. LED1 会使用计时器定期闪烁。
    3. 按下目标板上的 S2 按钮进入引导加载程序模式。
  10. 在目标处于引导加载程序模式下时,按下主机板上的 S2 按钮以发送 APP2。完成切换后,主机板的 LED1 保持熄灭,表明 APP1 已准备好发送。
  11. 传输完成后,目标开始运行 APP2。
    1. 目标器件使 LED2 闪烁。
    2. 按下目标板上的 S2 按钮以切换 LED2。
    3. 由于 CI 已初始化,因此主机可以在新的传输序列开始时发送“强制引导”命令以在目标器件中强制进入引导加载程序模式。
  12. 按下主机上的 S1 按钮以重新开始发送 APP1 的新序列。

双映像模式在传输完成后会在主机中暂停一小段时间,同时还会验证下载区域,将存储器转移到应用程序空间中,并在通过 CRC-CCITT 检查验证应用程序区域后擦除下载区域。

NOTE

由于 MSP-EXP430FR2433 上的引脚冲突,请通过移除跳线,从 P1.1 断开 LED2 的连接,然后物理连接至 P1.2。