二、基本概念 链接器把一个或多个输入文件合成一个输出文件. 输入文件: 目标文件或链接脚本文件. 输出文件: 目标文件或可执行文件. 目标文件(包括可执行文件)具有固定的格式, 在 UNIX 或 GNU/Linux 平台下, 一般为 ELF 格 式 有时把输入文件内的 section 称为输入 section(input section), 把输出文件内的 section 称为 输出 section(output sectin). 目标文件的每个 section 至少包含两个信息: 名字和大小. 大部分 section 还包含与它相关联 的一块数据, 称为 section contents(section 内容). 一个 section 可被标记为“loadable(可加 载的)”或“allocatable(可分配的)”. loadable section: 在输出文件运行时, 相应的 section 内容将被载入进程地址空间中. allocatable section: 内容为空的 section 可被标记为“可分配的”. 在输出文件运行时, 在进 程地址空间中空出大小同 section 指定大小的部分. 某些情况下, 这块内存必须被置零. 如果一个 section 不是“可加载的”或“可分配的”, 那么该 section 通常包含了调试信息. 可用 objdump -h 命令查看相关信息. 每个“可加载的”或“可分配的”输出 section 通常包含两个地址: VMA(virtual memory address 虚拟内存地址或程序地址空间地址)和LMA(load memory address加载内存地址或进程地址 空间地址). 通常 VMA 和 LMA 是相同的. 在目标文件中, loadable 或 allocatable 的输出 section 有两种地址: VMA(virtual Memory Address)和 LMA(Load Memory Address). VMA 是执行输出文件时 section 所在的地址, 而 LMA 是加载输出文件时 section 所在的地址. 一般而言, 某 section 的 VMA == LMA. 但在 嵌入式系统中, 经常存在加载地址和执行地址不同的情况: 比如将输出文件加载到开发板 的 flash中(由 LMA指定), 而在运行时将位于 flash中的输出文件复制到SDRAM中(由VMA 指定). 可这样来理解 VMA 和 LMA, 假设: (1) .data section对应的VMA地址是 0×08050000, 该 section内包含了 3个 32位全局变量, i、j 和 k, 分别为 1,2,3. (2) .text section 内包含由”printf( “j=%d “, j );”程序片段产生的代码. 连接时指定.data section 的 VMA 为 0×08050000, 产生的 printf 指令是将地址为 0×08050004 处的 4 字节内容作为一个整数打印出来。 如果.data section 的 LMA 为 0×08050000,显然结果是 j=2 如果.data section 的 LMA 为 0×08050004,显然结果是 j=1 还可这样理解 LMA:
1
文中详细描述了H3C3100交换机配置文件的备份和恢复方法,很实用。
2023-01-04 15:22:34 3KB H3C 交换机 配置文件
1
用于备份 docker安装mysql8.0的配置文件 my.cnf
2023-01-01 13:15:46 615B mysql
1
(1)批处理命令bat文件: (2)build.xml文件、 (3)user.properties、jmeterxml.properties、jmetercsv.properties文件。 (4)配置说明文档博客地址:https://blog.csdn.net/qq_39720249/article/details/85044581 【jmeter】jmeter报告可视化:配置生成报告仪表板,jmeter+Jenkins自动化构建生成HTML报告
2022-12-31 00:47:16 40KB jmeter报告 报告HTML
1
通过shell脚步,实现一键式导入nacos配置,由于nacos1.4之前的版本存在bug,导入时选择覆盖功能无效,所有通过shell先获取所有的nacos配置,然后进行删除,重新导入。
2022-12-30 22:02:33 1KB nacos shell脚本.sh 脚步一键式导入
1
剧本 这些是我用于各种任务的个人脚本(在每个脚本的顶部都简要讨论了这些脚本)。 根据GPL v3的许可,您可以免费使用和使用此存储库中的任何内容。 但是,如果您在使用它们时遇到任何问题,由于我完全根据自己的设置来定制这些脚本,因此我不提供任何类型的支持。 我已尽力评论所有内容,以便可以轻松理解。 如果您觉得更好,我将接受请求。
2022-12-29 01:26:40 84KB Shell
1
linux下安装Nginx以及配置文件详解,安装说明,所用要的包安装方法顺序步骤,配置文件详解~~~
2022-12-27 19:59:00 117KB linux下Nginx nginx配置 nginx安装 nginx详解
1
IAR的ILINK链接器icf配置说明,对于IAR开发人员很有用的资料
2022-12-27 09:21:54 234KB icf配置文件
1
android adb 配置文件 ubuntu环境 android adb 配置文件 ubuntu环境 android adb 配置文件 ubuntu环境 android adb 配置文件 ubuntu环境 android adb 配置文件 ubuntu环境android adb 配置文件 ubuntu环境 android adb 配置文件 ubuntu环境android adb 配置文件 ubuntu环境android adb 配置文件 ubuntu环境android adb 配置文件 ubuntu环境android adb 配置文件 ubuntu环境android adb 配置文件 ubuntu环境android adb 配置文件 ubuntu环境android adb 配置文件 ubuntu环境android adb 配置文件 ubuntu环境android adb 配置文件 ubuntu环境android adb 配置文件 ubuntu环境
2022-12-22 21:03:51 616B android adb ubuntu
1
docker国内源配置文件,直接替换原文件即可, 源文件路径是 etc/docker/
2022-12-22 18:02:48 347B docker daemon.json
1