主机项目将两个不同的映像发送到目标器件,并使用按钮进行用户交互。在两个 LaunchPad 开发套件上都不需要以 USB 连接到计算机即可运行演示;但是,每个套件都应通过 eZ-FET 由 USB 连接供电,或通过连接到 VCC 和 GND 引脚的稳定 3.3V 外部电源供电(在这种情况下,请确保 eZ-FET 断开连接)。无论使用哪种通信类型或映像模型,都将按照以下步骤运行演示:
- 如节 4.2.3所述构建并下载 MSPBoot,并构建 App1 和 App2。
- 根据节 4.1.2.1转换 App1 和 App2。
- 如节 4.2.4所述构建并下载主机应用程序。
- 根据所需的通信类型(I2C、UART 或带有 CC110x 的 SPI)连接电路板。
- 每个主机项目都在代码的开头包含一个注释图表,其中描述了正确的连接。
- 在两个器件中重置并执行代码。
- 要进入目标引导加载程序模式(LED1 和 LED2 都保持亮起状态即表示处于该模式),请执行以下步骤:
- 如果目标没有有效的应用程序(默认),则目标将保持在引导加载程序模式下。
- 在硬件中,通过按住目标器件上的 S2 按钮,同时按住再释放复位按钮,即可强制进入引导加载程序模式。
- 如果是运行一个应用程序:
- 在目标器件上按 S2 按钮时,APP1 跳转到引导加载程序模式。
- 当收到“强制引导”命令时(仅在共享 CI PHY-DL 时才受支持),APP2 会跳转到引导加载程序模式。
- 按下主机板上的 S2 按钮。主机器件执行以下命令序列:
- 两次切换 LED1。
- 发送“强制引导”命令 (0xAA)。
- 如果目标器件已经处于引导加载程序模式,则会丢弃数据包,因为 CRC 不正确。
- 如果目标正在运行 APP2,则目标器件将进入引导加载程序模式。
- 请求引导加载程序版本(发送 TX_VERSION 命令)。
- 如果目标响应为 0xA1(符合 BSL 协议预期),则主机继续。
- 如果目标响应是任何其他值,则主机将中止事务。
- 擦除目标应用程序区域(发送 ERASE_APP 命令)。
- 发送 APP1(使用 RX_DATA_BLOCK 命令)。
- 设定 APP1 的 CRC(使用 RX_DATA_BLOCK 命令)。
- 强制目标应用程序运行(发送 JUMP2APP 命令)。
- 两次切换 LED1 表示传输成功,而保持 LED1 亮起表明主机已准备好发送 APP2。
- 传输完成后,目标开始运行 APP1。
- 目标器件使 LED1 闪烁。
- LED1 会使用计时器定期闪烁。
- 按下目标板上的 S2 按钮进入引导加载程序模式。
- 在目标处于引导加载程序模式下时,按下主机板上的 S2 按钮以发送 APP2。完成切换后,主机板的 LED1 保持熄灭,表明 APP1 已准备好发送。
- 传输完成后,目标开始运行 APP2。
- 目标器件使 LED2 闪烁。
- 按下目标板上的 S2 按钮以切换 LED2。
- 由于 CI 已初始化,因此主机可以在新的传输序列开始时发送“强制引导”命令以在目标器件中强制进入引导加载程序模式。
- 按下主机上的 S2 按钮以重新开始发送 APP1 的新序列。
双映像模式在传输完成后会在主机中暂停一小段时间,同时还会验证下载区域,将存储器转移到应用程序空间中,并在通过 CRC-CCITT 检查来验证了应用程序区域后擦除下载区域。