TQ2440,学习笔记之链接器脚本
2016-02-20 18:52
239 查看
链接器脚本的构成:段(代码段、数据段、bss段)、代码段首文件、起始链接地址、对齐、变量
.lds格式文件:
SECTIONS //固定格式
{
. = 0x0;
//设置链接完成的可执行程序在ARM内存的起始地址(起始链接地址)
. = ALIGN(4);
//4字节对齐。因为ARM读取数据是以4字节读取的,设置4字节对齐,程序执行效率高
.text :
//代码段。注意,冒号:要与text隔一空格
{
start.o(.text)
//代码段首文件。一般为初始化(硬件)的程序文件
*(.text)
//* 代表所有。 所有代码的意思
}
. = ALIGN(4);
//注意,等于号= 两边都要隔一空格
.data :
//数据段
{
*(.data)
//所有数据的意思
}
. = ALIGN(4);
bss_start = .;
//设置变量
.bss :
//bss段
{
*(.bss)
//所有bss的意思
}
bss_end = .;
}
.lds格式文件:
SECTIONS //固定格式
{
. = 0x0;
//设置链接完成的可执行程序在ARM内存的起始地址(起始链接地址)
. = ALIGN(4);
//4字节对齐。因为ARM读取数据是以4字节读取的,设置4字节对齐,程序执行效率高
.text :
//代码段。注意,冒号:要与text隔一空格
{
start.o(.text)
//代码段首文件。一般为初始化(硬件)的程序文件
*(.text)
//* 代表所有。 所有代码的意思
}
. = ALIGN(4);
//注意,等于号= 两边都要隔一空格
.data :
//数据段
{
*(.data)
//所有数据的意思
}
. = ALIGN(4);
bss_start = .;
//设置变量
.bss :
//bss段
{
*(.bss)
//所有bss的意思
}
bss_end = .;
}
相关文章推荐
- 基于友善之臂ARM-tiny4412--uboot源码分析
- 基于友善之臂ARM-tiny4412--uboot源码分析
- 基于友善之臂ARM-tiny4412--uboot源码分析
- 详细探究Spark的shuffle实现
- JSON c语言开发指南
- protoc-gen-lua message之间相互引用问题 导致 upvalue 'message_type' (a nil value)
- 个性化编译openwrt(编译前更改lan.ipaddr,ssid,timezone,root密码 增加13信道)
- 多态
- 如何在UWP中统一处理不同设备间的页面回退逻辑
- Swift - whose view is not in the window hierarchy 问题解决方法
- 如何增量导入MYSQL数据库中的数据
- java23种设计模式详解
- iOS socket
- CodeForces 628A Tennis Tournament
- OpenWrt路由器WIFI开启13信道
- MySQL server has gone away
- error C2374: “iHighH”: 重定义;多次初始化 问题解决
- A. Tennis Tournament
- Apple Pay出场带热NFC 国产手机厂商拥抱银联
- Map表示对象