文档详情

09327@52RD_使用分散加载文件.pdf

发布:2017-09-25约字共38页下载文档
文本预览下载声明
使用分散加载描述文件 本章介绍如何将 ARM® 链接器armlink 与分散加载描述文件配合使用以创建复杂 映像。本章分为以下几节: • 第5-2 页的关于分散加载 • 第5-9 页的指定区和节地址的示例 • 第5-31 页的简单映像的等效分散加载描述 ARM DUI 0206IC Copyright © 2002-2008 ARM Limited. All rights reserved. 5-1 Unrestricted Access Non-Confidential 使用分散加载描述文件 5.1 关于分散加载 映像由区和输出节组成。映像中的每个区可以包含不同的加载和执行地址。有 关详细信息,请参阅第3-2 页的指定映像结构。 要构建映像的内存映射,链接器必须具有: • 描述如何将输入节划分到输出节和区中的分组信息 • 描述区位于内存映射中的地址的位置信息 通过使用分散加载机制,您可以使用文本文件中的描述为链接器指定映像的内 存映射。分散加载为您提供了对映像组件分组和位置的全面控制。分散加载可 以用于简单映像,但它通常仅用于具有复杂内存映射的映像,即多个区在加载 和执行时分散在内存映射中。 5.1.1 为分散加载定义的符号 当链接器使用分散加载描述文件创建映像时,它会创建一些与区相关的符号。 第4-3 页的与区相关的符号对这些符号进行了介绍。仅当代码引用这些特殊符 号时,链接器才会创建它们。 未定义的符号 请注意,在使用分散加载描述文件时,不会定义以下符号: • Image$$RW$$Base • Image$$RW$$Limit • Image$$RO$$Base • Image$$RO$$Limit • Image$$ZI$$Base • Image$$ZI$$Limit 有关详细信息,请参阅第4-3 页的访问链接器定义的符号。 如果使用分散加载描述文件,但没有指定任何特殊区名称,也没有重新实现 __user_initial_stackheap(),则库会生成错误消息。 有关详细信息,请参阅: • 《库和浮点支持指南》中第2-67 页的调整运行时内存模型 • 《开发指南》中第3-13 页的放置堆栈和堆 5-2 Copyright © 2002-2008 ARM Limited. All rights reserved. ARM DUI 0206IC Non-Confidential Unrestricted Access 使用分散加载描述文件 5.1.2 使用分散加载描述文件指定堆栈和堆 ARM C 库提供了__user_initial_stackheap() 函数的多个实现,可以根据分散加 载描述文件中给出的信息自动选择正确的函数实现。
显示全部
相似文档