1 简介和功能概述
本文档指定了通过内存映射文件将代码和数据映射到特定内存部分的机制。对于许多ECU和微控制器平台来说,将代码、变量和常量逐个模块映射到特定内存部分是至关重要的。重要用例的选择:
避免浪费RAM:除了具有定义对齐方式的符号(例如代码)之外,还必须分配具有不同对齐方式(例如8、16和64位)和大小的其他符号。如果未排序,链接器将在这些符号之间的内存中留下间隙。这是因为微控制器平台需要这些符号的特定对齐方式,并且链接器通常不提供变量分配的优化。如果根据符号的对齐方式将符号映射到特定的内存部分,则可以避免这种内存浪费。因此,在需要时提供相应的方法。
特定RAM属性的使用:某些变量(例如NVRAM管理器的RAM镜像)在非冷开机复位后不得初始化。应能够将它们映射到除冷开机复位外任何复位时都不会初始化的RAM部分。对于某些变量(例如通过位掩码访问的变量),如果它们位于允许编译器的位操作指令的RAM部分内,则可以提高性能和代码大小。
特定ROM属性的使用:在具有外部闪存的大型ECU中,需要将具有经常调用功能的模块映射到内部闪存,以实现快速访问,从而提高性能。具有很少调用的功能或性能要求较低的功能的模块将映射到访问速度较慢的外部闪存。
引导加载程序和应用程序使用同一个模块的源代码:如果模块需要在不同的上下文(例如引导加载程序和应用程序)中使用,则必须允许将符号映射到不同的内存部分。第3.1章列出的所有编译器都支持将