标题似乎有点奇怪,我也不知道我应该在那里写什么,但希望我能让你明白我想要做什么!- 我将主引导加载程序和辅助引导加载程序都驻留在不同的内存区域(可能是引导闪存或程序闪存)。- 引导加载程序之一将一次处于活动状态,而其他将处于非活动状态。- 考虑一下,主引导加载程序处于活动状态,现在我将下载我的应用程序固件。我还在从应用程序固件中读取活动的引导加载程序版本,以便我可以检查是否需要更新引导加载程序。- 如果我需要更新引导加载程序,那么不活动的引导加载程序将被激活,它将用更新的引导加载程序替换以前的活动引导加载程序。辅助引导加载程序将切换回非活动模式。因此,辅助引导加载程序仅在必须更新主引导加载程序时才变为活动状态。- 在整个过程中,我想为主要引导加载程序版本、辅助引导加载程序版本和一些具有固定内存位置的自定义配置数据保留一些内存区域,并且可以从主要、次要和应用程序固件访问。
您需要了解链接器文件。我还没有为 MX/MZ 线做这件事,但我已经在许多 dsPIC33 上做过这种事情。几乎通过以下方式:引导加载程序在 .gld 中获得一定数量的专用闪存,通常是单个页面,因此更容易擦除 (0x400) 然后超级引导加载程序(辅助引导加载程序)仅在您实际加载时加载到 PIC 中一个新的引导程序。所以超级引导加载程序实际上是一个较小的应用程序,旨在简单地更新引导加载程序,然后跳转到引导加载程序的重置地址。我个人不会一直将辅助/超级引导加载代码保留在那里,只是为了避免以后混淆。您真的可以使用来自 PIC 外部的更新技术来做到这一点。我再次不能提供有关 PIC32 系列的直接帮助,但如果您
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句