最后更新 2019-06-27

概述

当使用 C 或者 C++ 编写代码实现某种功能时,需要将源代码进行编译以及链接。链接是将一系列目标文件(.o)以及归档文件(.a)组合起来,重新定位各个文件数据并绑定符号引用(symbol references),最终生成可一个执行的文件。例如: ld -o OUTPUT /lib/crt0.o hello.o -lc

链接器(ld)使用链接脚本(Link Script)控制, 链接脚本描述如何将输入文件映射到输出文件,并控制输出文件在内存布局,例如将输出文件的 Section 存放在 SRAM 、SDRAM 或 Flash 等。链接脚本(link Script)是可选的,如果未提供,系统将使用默认链接脚本。可以使用 ld --verbose 来查看默认的链接脚本。当自定义链接脚本时,链接器(ld)加上对应参数 -T 来使用。

一般而言,使用默认的链接脚本即可。然而对于嵌入式系统开发来说,可根据不同的 CPU 来进行对应配置。


section

目标文件内部 Section 都有对应的名字、大小以及对应内容。 section 有两种状态:

  • loadable: 当程序被执行时,直接加载到对应内存中使用;
  • allocatable: 先占用内存,执行时候才加载数据使用。

如果 section 不是 loadable 或 allocatable, 一般是用于调试。

未完待续


相关链接:

Link Script 学习的更多相关文章

  1. HTML 头标签的 <title> <base> <meta> <link> <script> 的内容意思

    头标签都放在<head></head>头部分之间.包括:title base meta link <title>:指定浏览器的.(标题) <base>: ...

  2. Java Script 学习笔记 -- Ajax

    AJAX 一 AJAX预备知识:json进阶 1.1 什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON是用字符串来表示Javas ...

  3. Java Script 学习笔记 -- jQuery

    一 jquery简介 1 jquery是什么  jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. jQuery是继prototyp ...

  4. Java Script 学习笔记 -- 基础知识

    Java script 概述 java Script 的简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为 ...

  5. Java Script 学习日志 Div

    2019年7月7日 学习网站: http://www.w3school.com.cn/js/js_examples.asp 1.输出 1. 1首先就是输出看 <script> docume ...

  6. script学习,如何用linux监控你的同事?

    环境:CentOS7 一.为什么要学习script命令 当你在终端或控制台上工作时,你想记录下自己做了些什么吗?当你跟一些Linux管理员同时在系统上干活,你想知道别人干了什么吗?当你让别人远程到你的 ...

  7. shell script 学习

    终于来到了shell脚本的学习,貌似很牛叉. shell script鸟叔解释:利用shell的功能写的一个program,使用纯文本文件,将一些shell语法和指令写在里面,搭配正则表示法,管线命令 ...

  8. Java Script 学习笔记

    JS编程习惯类: 1. 命名 著名的变量命名规则 只是因为变量名的语法正确,并不意味着就该使用它们.变量还应遵守以下某条著名的命名规则: Camel 标记法 首字母是小写的,接下来的字母都以大写字符开 ...

  9. day 50 Java Script 学习

    前端基础之JavaScript   JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中) ...

随机推荐

  1. Mysql workbench 字段类型(转载)

    转载自:https://blog.csdn.net/j_h_xie/article/details/52924521 项目初始,在使用workbench建表时,字段中有PK,NN,UQ,BIN,UN, ...

  2. 2019中山纪念中学夏令营-Day2[JZOJ]

    博客的开始,先聊聊代码实现: 每次比赛以后,要有归纳错误的习惯. 错误小结: 1.读入:scanf(“%c”)会读入回车和空格,但cin不会. 2.对于二维数组的输入,不能把m,n搞混了,会引起严重的 ...

  3. Linux就该这么学——安装配置VM虚拟机

    Vm虚拟机下载地址 : https://cloud.189.cn/t/zAfaQvJZRziu (访问码:6717) rehl镜像下载地址 :  https://cloud.189.cn/t/67BJ ...

  4. api返回数据

    控制器里调用方法 <?php namespace app\admin\controller; use app\admin\controller\Base; class Index extends ...

  5. mybatis N+1问题解决

    关联嵌套查询 示例: <resultMap id="blogResult" type="Blog"> <association propert ...

  6. Radio stations CodeForces - 762E (cdq分治)

    大意: 给定$n$个三元组$(x,r,f)$, 求所有对$(i,j)$, 满足$i<j, |f_i-f_j|\le k, min(r_i,r_j)\ge |x_i-x_j|$ 按$r$降序排, ...

  7. webpack4 打包

    1. 基本安装及命令 npm config set registry https://registry.npm.taobao.org     //  淘宝镜像npm install webpack-c ...

  8. 运行期优化 Java内存模型与线程 线程安全与优化

  9. dedecms 多级栏目时,调用上级栏目名称和链接

    {dede:field name='position' runphp='yes'} $tc="-"; //分隔符 $tw=$GLOBALS['cfg_list_symbol']; ...

  10. CDH5.16.1升级kafka0.10到1.0.1

        激活1.0.1的包