2017-04-04 56 views
0

标题似乎有点奇怪,我也没有得到什么确切的,我应该写在那里,但希望我能够让你明白我想要做什么! - 我将有主引导程序和辅助引导程序都将驻留在内存的不同区域(可能是引导闪存或程序闪存)。 - 其中一个引导加载程序一次处于活动状态,另一个将处于非活动状态。 - 考虑一下,主引导程序是活动的,现在我将下载我的应用程序固件。我还从应用程序固件中读取活动的引导加载程序版本,以便检查是否需要更新引导加载程序。 - 如果我需要更新引导加载程序,那么不活动的引导加载程序将被激活,并且它将替换先前更新的引导加载程序。辅助引导程序将切换回不活动模式。因此,辅助引导加载程序只有在更新主引导加载程序时才会激活。在整个过程中,我想为主引导加载程序版本,辅助引导加载程序版本和一些具有固定内存位置的自定义配置数据保留一些内存区域,并且可以从主要,辅助以及应用程序固件访问这些内存区域。同一个PIC32MZ中有多个引导加载程序?

回答

0

您需要了解链接器文件。我还没有为MX/MZ产品线做这件事,但我在许多dsPIC33上都没有这样的事情。非常类似于以下方式:Bootloader通常在单个页面中获取一定量的专用于.gld的闪存,因此更容易擦除(0x400),然后在实际加载时将Superboot加载器(辅助启动加载器)仅加载到PIC中一个新的引导程序。因此,超级引导加载程序实际上是一个小型应用程序,旨在简单更新引导加载程序,然后跳转到引导加载程序的复位地址。我个人不会一直保留辅助/超级引导代码,以避免以后出现混淆。您可以使用PIC之外的更新技术真正做到这一点。我可以再次提供PIC32产品线的直接帮助,但是如果您想查看dsPIC33产品线的示例链接器文件,我可以提供这些文件。

+0

PIC32MZ中有引导闪存,如果我使用实时更新引导程序,那么它将如何工作? –

相关问题