09327@52RD_使用分散加载文件.pdf
文本预览下载声明
使用分散加载描述文件
本章介绍如何将 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() 函数的多个实现,可以根据分散加
载描述文件中给出的信息自动选择正确的函数实现。
显示全部