在进行第 3.3 节中描述的任何修改后,重新编译项目 shared_key_image_encrypt 和 key_image 的 Debug 配置。然后,重新编译项目 shared_key_boot_serial 的 Debug_wKey 配置。调试版配置不会锁定 JTAG,可以在开发期间使用它。发布版配置将锁定 JTAG,且应当用于共享密钥引导加载程序的生产版本。
- 使用 USB 电缆将 EK-TM4C129EXL LaunchPad 开发套件从 LaunchPad 的 DEBUG 端口连接到 PC 上的 USB 端口,启动 shared_key_image_encrypt 项目。这可以通过在 Project Explorer 窗口中突出显示该项目,然后点击图 2-5 中的黄色调试图标来完成。
- 确定串行端口已由 PC 分配给 LaunchPad 的虚拟串行端口。这可以通过在 PC 上运行器件管理器找到。在图 2-6 中,LaunchPad 被分配给了 COM19。
- 打开支持 XMODEM 通信的终端仿真器。本例中使用了“Tera Term”。通过串行连接到 LaunchPad 的已识别的 COM 端口。
- 将终端仿真器配置为使用 460800 波特、8 位数据、1 个停止位和无奇偶校验的串行端口。
- 通过点击 Code Composer Studio 中的绿色箭头或按 F8 来执行 shared_key_image_encrypt 程序。
- 现在终端上应显示以下菜单。
- 要创建由引导加载程序使用的签名和加密映像,请执行以下步骤:
- 使用 XMODEM 协议,将文件 key_image.bin 从项目 key_image 的调试子目录传输到器件上。按如下步骤使用 Tera Term:
- 在终端仿真器中键入 K(不区分大小写)。
- 选择“File”->“Transfer”->“XMODEM”->“Send”。
- 浏览到 key_image\Debug\key_image.bin,然后选择“Open”。
- 终端现在应显示 Keys successfully programmed into EEPROM。
- 将应用程序映像传输到器件中。按如下步骤使用 Tera Term:
- 在终端仿真器中键入 L。
- 选择“File”->“Transfer”->“XMODEM”->“Send”。
- 浏览到 shared_key_boot_demo\Debug\shared_key_boot_demo.bin,然后选择“Open”。
对于一个完整的 1MB 闪存器件,传输最多可能需要一分钟。完成后,终端上将显示消息 File programming complete。
- 输出二进制映像的签名和加密版本。按如下步骤使用 Tera Term:
- 在终端仿真器中键入 O。
- 选择“File”->“Transfer”->“XMODEM”->“Receive”。
- 选择一个输出文件名,例如:
shared_key_boot_demo\Debug\shared_key_boot_demo_encrypted.bin,然后选择“Save”。
- 或者,可以通过以下方式,根据存储在闪存中的未加密映像验证刚刚创建的加密文件:
- 在终端仿真器中键入 V。
- 选择“File”->“Transfer”->“XMODEM”->“Send”。
- 浏览到 shared_key_boot_demo\Debug\shared_key_boot_demo_encrypted.bin,然后选择“Open”。
- 对于一个完整的 1MB 闪存器件,传输大约需要一分钟。完成后,如果加密文件的哈希值验证成功,终端会显示消息 File verification complete。
- 或者,可以通过以下方式执行已编程到器件中的应用程序代码:
- 在终端仿真器中键入 X。
- 终端上将显示消息 Hash value authenticated,LaunchPad 上的 LED D1 将闪烁。
- 使用 Code Composer Studio 或 LaunchPad 上的重置按钮重置 LaunchPad,终端将指示程序返回 shared_key_image_encrypt 工具。