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.

[参考译文] TM4C123GH6PM:引导加载程序问题

Guru**** 1794070 points
Other Parts Discussed in Thread: TM4C123GH6PM
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/573449/tm4c123gh6pm-issues-with-bootloader

器件型号:TM4C123GH6PM

您好!

在我们当前的一个项目中、我们使用 的是 TM4C123GH6PM UC。 为了使客户能够轻松地进行固件更新、我希望随我的定制应用一起实现 TivaWare 引导加载程序。 该应用程序提供了一个 UART 接口、供客户与整个硬件交互。 我真正要做的是使用引导加载程序对固件更新使用相同的 UART 端口。 感谢您提供任何提示和说明。

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mathias、
    我们采取类似的措施、并采取以下策略:
    -主应用程序中有一个“更新 API”。 当它通过 UART 接收到更新消息时、它会将新代码存储在单独的存储器位置。 如果所有软件包都正确到达、如果在 EEPROM 上设置了一个标志、那么我们自己的引导加载程序就知道有新的可用固件。
    -然后电路板被复位、引导加载程序将新存储的代码复制到闪存中的默认运行位置-在将旧代码的备份到其他位置之后。
    -引导加载程序尽可能小、驻留在与主应用程序分开的0x00位置。 在"正常情况"下、它开始运行、验证存储器中没有更新、并将代码执行转移到主应用程序的开头。
    作为"更新 API"的一部分、有一个看门狗-如果新代码未正确地为狗馈送、引导加载程序下次运行时将恢复以前的固件、以避免永久欺骗。
    -我们使用的端口不是仅用于更新,而是作为应用程序的“正常通信通道”之一的 IT 服务器-更新消息必须遵循特定的协议,以便将它们识别为这样的协议。
    -由于更新传输实际上发生在主应用程序中,因此可以使用与 MCU 的任何连接(UART、SPI、蓝牙、以太网等)。
    -有一个小型外部程序用于将.bin 发送到由此类协议封装的 MCU -我们在 Windows 或 Android 中使用此类程序。
    话虽如此,说起来比做起来容易得多,但它应属于您所描述的"任何提示"类别。
    谢谢
    布鲁诺
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     本应用手册 http://www.ti.com/lit/an/spma074a/spma074a.pdf 将为您开发基于 UART 的引导加载程序提供良好的起点。 应用手册包含您可以参考的示例项目。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    此外、在 TivaWare 中、您还可以在 Examples->boards->ek-tm4c129exl->boot_serial 下找到引导加载程序示例项目。