工具类–使用链接器对Flash空间进行分区

链接器可能是嵌入式软件开发人员可用最少的工具。对于许多人来说,即使不是整个开发周期,大多数情况下也忽略链接器。但是,链接器允许开发人员执行非常强大的功能,例如将闪存分成多个部分。让’我们来看一个简单的示例,该链接器如何用于对Flash进行分区。

 连接器

上面是嵌入式系统的示例内存分区。在此示例中,闪光灯分为多个部分。首先,我们有一个用于引导加载程序的部分,其中包含中断向量表和引导加载程序应用程序代码。第二个内存分区包含主要应用程序代码及其中断向量表。我们还在应用程序代码之后包括一个校验和区域,以便在启动时可以验证应用程序闪存空间是否完整,没有空或没有损坏。

开发应用程序代码的开发人员将使用链接器排除引导加载程序内存区域,以便应用程序代码不会’意外将其放入引导加载程序区域。可以使用内在的编译器来放置代码区域,但这会使代码混乱,并且不会’十分优雅。而是,从链接器中排除内存区域将使链接器认为内存位置不可用。然后,在引导加载程序上工作的开发人员还将从其链接器文件中排除应用程序内存区域。

最后,我们可以使用链接器保留要保存的存储区域,以用于校准数据或存储查找表(例如几何表)。通过这种方式使用链接器,我们可以微调微控制器上闪存空间的分配和使用方式。以下是我们如何修改链接器以包括校验和和boot_config部分的示例:

闪存分区甚至在开始编码之前,请确保您检查了链接器并开始考虑如何对它进行分区。没有什么比完成具有全部内存使用量的项目结束和发现引导加载程序更胜一筹了。’t fit!

 

 

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.