Link Script 学习
最后更新 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 学习的更多相关文章
- HTML 头标签的 <title> <base> <meta> <link> <script> 的内容意思
头标签都放在<head></head>头部分之间.包括:title base meta link <title>:指定浏览器的.(标题) <base>: ...
- Java Script 学习笔记 -- Ajax
AJAX 一 AJAX预备知识:json进阶 1.1 什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON是用字符串来表示Javas ...
- Java Script 学习笔记 -- jQuery
一 jquery简介 1 jquery是什么 jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. jQuery是继prototyp ...
- Java Script 学习笔记 -- 基础知识
Java script 概述 java Script 的简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为 ...
- Java Script 学习日志 Div
2019年7月7日 学习网站: http://www.w3school.com.cn/js/js_examples.asp 1.输出 1. 1首先就是输出看 <script> docume ...
- script学习,如何用linux监控你的同事?
环境:CentOS7 一.为什么要学习script命令 当你在终端或控制台上工作时,你想记录下自己做了些什么吗?当你跟一些Linux管理员同时在系统上干活,你想知道别人干了什么吗?当你让别人远程到你的 ...
- shell script 学习
终于来到了shell脚本的学习,貌似很牛叉. shell script鸟叔解释:利用shell的功能写的一个program,使用纯文本文件,将一些shell语法和指令写在里面,搭配正则表示法,管线命令 ...
- Java Script 学习笔记
JS编程习惯类: 1. 命名 著名的变量命名规则 只是因为变量名的语法正确,并不意味着就该使用它们.变量还应遵守以下某条著名的命名规则: Camel 标记法 首字母是小写的,接下来的字母都以大写字符开 ...
- day 50 Java Script 学习
前端基础之JavaScript JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中) ...
随机推荐
- Mysql workbench 字段类型(转载)
转载自:https://blog.csdn.net/j_h_xie/article/details/52924521 项目初始,在使用workbench建表时,字段中有PK,NN,UQ,BIN,UN, ...
- 2019中山纪念中学夏令营-Day2[JZOJ]
博客的开始,先聊聊代码实现: 每次比赛以后,要有归纳错误的习惯. 错误小结: 1.读入:scanf(“%c”)会读入回车和空格,但cin不会. 2.对于二维数组的输入,不能把m,n搞混了,会引起严重的 ...
- Linux就该这么学——安装配置VM虚拟机
Vm虚拟机下载地址 : https://cloud.189.cn/t/zAfaQvJZRziu (访问码:6717) rehl镜像下载地址 : https://cloud.189.cn/t/67BJ ...
- api返回数据
控制器里调用方法 <?php namespace app\admin\controller; use app\admin\controller\Base; class Index extends ...
- mybatis N+1问题解决
关联嵌套查询 示例: <resultMap id="blogResult" type="Blog"> <association propert ...
- 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$降序排, ...
- webpack4 打包
1. 基本安装及命令 npm config set registry https://registry.npm.taobao.org // 淘宝镜像npm install webpack-c ...
- 运行期优化 Java内存模型与线程 线程安全与优化
- dedecms 多级栏目时,调用上级栏目名称和链接
{dede:field name='position' runphp='yes'} $tc="-"; //分隔符 $tw=$GLOBALS['cfg_list_symbol']; ...
- CDH5.16.1升级kafka0.10到1.0.1
激活1.0.1的包