在系统级别的嵌入式开发中需要使用链接定位文件,该文件描述代码链接定位的有关信息,包括代码段,数据段地址等,链接器必须使用该文件对整个系统的代码做正确的定位。本例中在RAM调试和固化时使用的链接定位文件不相同,下面是固化时使用的链接定位文件:
SECTIONS
{
. = 0x000000; 赋当前地址为0
.text : { *(.text) }; 代码段,在这里标识从0开始放置程序代码
.rodata : { *(.rodata) };只读数据段,程序中静态全局变量等固定值放在该段
Image_RO_Limit = .; 只读区域长度,启动程序中使用的符号
. = 0x0400000; 赋当前地址为0x400000
Image_RW_Base = .; 读写区域基地址,启动程序中使用的符号
.data : { *(.data) }; 数据段, 程序中已初始化的全局变量放在该段
Image_ZI_Base = .; 清零区域基地址, 启动程序中使用的符号
.bss : { *(.bss) }; 包含未初始化的全局可用的数据, 如未初始化的全局变量
Image_ZI_Limit = .; 清零区域长度, 启动程序中使用的符号
end = .; 结束地址
.debug_info 0 : { *(.debug_info) }; 调试信息输出段
.debug_line 0 : { *(.debug_line) }
.debug_abbrev 0 : { *(.debug_abbrev)}
.debug_frame 0 : { *(.debug_frame) }
}
在RAM调试时使用的链接定位文件:
SECTIONS
{
. = 0x000000; 赋当前地址为0
.text : { *(.text) }; 代码段,在这里标识从0开始放置程序代码
Image_RO_Limit = .; 只读区域长度,启动程序中使用的符号
Image_RW_Base = .; 读写区域基地址,启动程序中使用的符号
.rodata : { *(.rodata) };只读数据段,程序中静态全局变量等固定值放在该段
.data : { *(.data) }; 数据段, 程序中已初始化的全局变量放在该段
Image_ZI_Base = .; 清零区域基地址, 启动程序中使用的符号
.bss : { *(.bss) }; 包含未初始化的全局可用的数据, 如未初始化的全局变量
Image_ZI_Limit = .; 清零区域长度, 启动程序中使用的符号
end = .; 结束地址
.debug_info 0 : { *(.debug_info) }; 调试信息输出段
.debug_line 0 : { *(.debug_line) }
.debug_abbrev 0 : { *(.debug_abbrev)}
.debug_frame 0 : { *(.debug_frame) }
}
分享到:
相关推荐
### VFP9项目文件类型定位链接方法 在深入探讨如何为Microsoft Visual FoxPro 9(简称VFP9)项目的文件类型设置定位链接方法之前,我们首先需要了解几个基本概念: 1. **文件类型关联**:操作系统能够根据文件扩展...
在RH850/F1L系列的GHS开发中,ld文件是必不可少的,因为它允许开发者精确控制程序的内存分配,优化性能,比如通过调整堆栈大小来节省宝贵的片上存储空间,或者通过定位特定函数到指定的内存区域来提高访问速度。...
根据给定文件的信息,本文将围绕“ABAP外部链接下载文件”的主题展开,详细解析如何在SAP ABAP环境中利用URL实现文件下载的功能,并对代码片段进行深入分析。 ### 核心知识点概述 1. **ABAP环境中的HTTP客户端操作...
“*.ld”链接文件组合了许多对象和归档文件,重新定位它们的数据并绑定符号引用。通常,编译程序的最后一步是运行“*.ld”链接文件。通俗来讲,链接文件可以描述输入文件中的段,将其映射到输出文件中,并指定输出...
### 可执行与可链接文件格式(ELF) #### 概述 《可执行与可链接文件格式》是一份详尽的手册,介绍了ELF(Executable and Linkable Format)文件格式的基本概念、结构以及在程序加载和动态链接过程中的应用。ELF是...
### 可执行文件动态链接分析 #### 一、引言 在现代操作系统中,特别是Linux环境下,可执行文件经常依赖于动态链接库。这种技术允许程序在运行时加载所需的库,从而减少内存占用并提高资源利用率。ELF(Executable ...
- 功能文件(*.cs、*.map、*.ld):如链接定位文件(*.ld),用于描述代码在内存中的布局和位置。 - 模块、库文件(*.lib、*.a等):提供预编译的代码模块或库,供程序链接使用。 链接脚本文件(*.ld)的作用: ...
7. **调试CHM文件**:开发者可以使用HHCTRL.OCX(HTML Help Control)或者Microsoft HTML Help Workshop来调试CHM文件,检查索引、链接和内容的正确性。 8. **国际化支持**:CHM文件支持多语言,可以包含不同语言...
当用户尝试访问某个文件或文件夹时,系统会提示“无法定位程序输入点AssocGetPerceivedType于动态链接库”错误信息。这类错误通常是由于系统中缺少某个动态链接库(DLL)文件或该文件被损坏所致。 解决方法: 1. ...
- **定义**: 链接定位文件是指导链接器如何将各个段放置在内存中的文件。 - **示例**: ```plaintext SECTIONS { .=0x10000 .text:{*(.text)} .=0x8000000 .data:{*(.data)} .bss:{*(.bss)} } ``` - **常见...
为了在特定的内存区域中重定位代码和数据,必须编辑链接文件。文档详细阐述了链接器如何将函数放置在内存中,并通过在K60或K70 Kinetis设备上使用KDS和GCC工具链将它们重定位到闪存、内部RAM和外部RAM中。 链接文件...
磁力链接(Magnetic Link)是一种先进的技术手段,主要用于在网络上标识和定位资源(例如文件、视频、音乐等)。这一技术特别适用于文件的分发与分享,尤其是在通过BitTorrent协议进行点对点(P2P)文件共享时。磁力...
这个过程通常涉及到解析HTML文档,定位到`<a>`标签,并提取出对应的链接地址(href属性)。以下是一些关键知识点: 1. **HTML基础知识**:HTML由一系列标签组成,这些标签描述了网页的结构和内容。`<a>`标签用于...
链接器 ld 会将输入文件中的每个section作为一个整体,为其分配运行的地址(memory layout),这个过程就是重定位(relocation)。 -T 选项是 ld 命令中比较重要的一个选项,可以用它直接指明代码的代码段、数据段、...
### Eclipse 无法定位序数于动态链接库 libeay32.dll 的问题解析与解决方案 在使用 Eclipse 这款流行的集成开发环境(IDE)进行 Java 应用程序开发时,可能会遇到一个错误提示:“Eclipse 无法定位序数于动态链接库...
《Infineon编译链接文件解析1》 在嵌入式系统开发中,编译链接文件(Linker Script,通常为LSL文件)扮演着至关重要的角色,它定义了程序中各个部分如何在目标硬件的内存空间中布局。本文档以Infineon的TC234微控制...
与传统的HTTP或FTP链接不同,磁力链接不依赖于特定的服务器或文件路径来定位文件,而是通过文件内容的哈希值来唯一地识别文件。这种方式使得文件共享更加灵活且不易受到单点故障的影响。 #### 二、磁力链接的基本...
共享对象文件则可以被链接器用来与其他可重定位文件或共享对象文件链接,形成其他目标文件,同时也可以由动态链接器和可执行文件及其他共享对象文件结合,创建一个进程映像。 ELF文件由一个文件头(ELF header)...
- **链接定位文件**:用于指导链接器如何组织最终的输出文件。 - **示例**:链接定位文件通常包含如下段落: - **.text**:存放代码段。 - **.data**:存放已初始化的数据段。 - **.bss**:存放未初始化的数据段...