主题中讨论的其他器件:EK-TM4C1294XL
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您的问题是什么? 您只需发布指向另一帖子的链接。 如果要使用以太网进行固件更新、则在 TivaWare SDK 中有示例。
您将使用 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_emac_flash 作为示例引导加载程序、
C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo_emac_flash 作为示例固件。
如您在参考帖子中所述、将采取以下步骤。
步骤1:运行 enet_lwip 或 enet_io 以获取 IP 地址。 在终端窗口中、您应该会看到打印出来的 IP 地址。 记录此地址。
步骤2:使用 CCS 通过 JTAG 接口加载 BOOT_EMAC_FLASH。 这是在0x0处加载的引导加载程序。
步骤3. 启动 LM Flash Programmer。 请参见下图。 提供您刚刚在步骤1中记录的 IP 地址、并输入 IP 地址以及 MAC 地址。 如果您使用的是 LaunchPad、则 MAC 地址显示在电路板背面的标签上。
您的 PC 将作为 TFTP 服务器以及 BootP 服务器、用于将程序映像传输到 MCU (客户端)。 您需要通知 BootP 服务器 MCU 的 IP 地址及其 MAC 地址。 这是 BootP 服务器的工作方式。 与 DHCP 服务器不同、MAC 地址及其关联的 IP 地址必须提前手动输入和已知、因为 BootP 本质上是静态的。 这就是我们在配置选项卡中输入它们的原因。 但是、我们不知道要输入哪个 IP 地址。 我们不能输入任何可能干扰网络中其他 IP 地址的任意地址。
这就是我们必须首先运行另一个以太网示例的原因、例如 enet_lwip。 enet_lwip 将发送 DHCP 请求。 获取 IP 地址后、我们将仅记录 IP 地址值以在 BOOT_EMAC_FLASH 中重复使用。 在我的镜像中、通过运行 enet_lwip 获取的 IP 地址显示为10.219.14.138。 请注意、您的地址将与我的地址不同。 我们可以使用此地址的原因是 DHCP IP 地址被租用了几个小时。 我们通过运行 enet_lwip 获取的地址会保留几个小时。
步骤4. 转到"Program"选项卡。 提供应用程序映像的路径、即 boot_demo_EMAC_flash.bin。 此 TvaWare 示例已链接到0x4000。 请勿更改它。 在未来、您可以随时随地更改。 但是、在您使示例正常工作之前、请勿更改任何内容。
步骤5. 如果步骤2中的 BOOT_EMAC_FLASH 在 CCS 中仍然停止、则可以立即运行它。
步骤6. 运行 boot_emac_flash 后、可以点击上面映像中的"Program"按钮。
步骤7. 假设一切都顺利进行了编程、并且 boot_demo_EMAC_flash 应用程序已进行编程、如果您要对其进行调试、则可以转到"Run"->"Load"->"Load Symbols"来加载符号。 该符号包含在 boot_demo_EMAC_flash.out 中。 请注意、这是.out 文件。 请加载符号、不要与加载程序相混淆。
我将建议您使用 Wireshark 来查看 MCU 和 TFTP/BOOTP 服务器之间的流量。 您应该看到以下内容。 MCU 将向 PC 发送 BOOTP 请求、并在握手之后、TFTP 服务器通过以太网接口将程序映像(boot_demo_emac_flash.bin)发送至 MCU。
我有一些问题、即为什么我们需要 boot_demo_EMAC、为什么 boot_emac_flash 是不够的、以及加载 boot_emac_flash 和 boot_demo_EMAC 时发生了什么、我想加载另一个应用程序 boot_demo_emac 发生了什么、如果 boot_demo_emo_emac 仍然存在或者引导加载程序在它上面写入新代码、