您好!
我不熟悉引导加载程序...
我想制作一个次级引导加载程序、它将上传固件(通过 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。 如果该操作中断,则在下一次启动时将显示秒数 引导加载程序将尝试相同的命令、直到成功。
提前感谢