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.

[参考译文] TMS320F28379D:具有备份的引导加载程序

Guru**** 2577385 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1227748/tms320f28379d-bootloader-with-a-backup

器件型号:TMS320F28379D

您好!
我不熟悉引导加载程序...

我想制作一个次级引导加载程序、它将上传固件(通过 SCI)、并在校验和等正常的情况下运行。 闪存中应该有2个可用的应用程序空间:
1:闪存应用程序空间1:这是当前应用程序的位置。
闪存应用程序空间2:这是新固件上传到的位置。

在固件上传开始时、我将删除 Flash 应用空间2来上传新固件。
上载将发生并保存在闪存应用程序空间2.
如果固件上传失败、则次级引导加载程序将使用闪存应用程序区域1作为当前应用程序区域
如果固件上载成功、则次级引导加载程序将切换两个应用程序闪存区域。 因此、不使用1进行上传、不使用2作为要运行的当前应用程序。


我不明白的是、如何做到这一点...是否可以做到? 因为在我制作一个应用程序时、我将其链接到某些闪存扇区、次位会将其放置在另一个闪存扇区中。
要通过备份执行此操作、是否必须使用 CPU 1和 CPU2? 或者、它是否可以像这样实现?

如果我将应用程序版本1链接到例如 FLASHA、并将应用程序版本2链接到 FLASHB、并且链接应用程序版本 FLASHA (再次)、那么如果用户因为链接到同一内存区域而想从版本1升级到版本3、我就会遇到问题。 我不知道我是否解释自己。

目前使用的是具有 F28379D 的 LaunchPadXL。

在写这篇文章时、我想出了另一个解决方案。 也许这是人们做什么?
闪存应用程序空间1:将始终是当前应用程序
闪存应用程序空间2:将始终为备份
固件上载后、次级引导加载程序会将区域2复制到区域1。 如果该操作中断,则在下一次启动时将显示秒数 引导加载程序将尝试相同的命令、直到成功。

提前感谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    您在保留两个应用程序、然后更新程序的末尾提到的方法将会很好地工作。 您可以使用它来更新固件。

    谢谢。
    Ronak