RO,RW,ZI 和scatter file详解(转载)
http://blog.chinaunix.net/uid-24460251-id-2606775.html
http://blog.chinaunix.net/uid-9185047-id-445087.html
bss段(未手动初始化的数据)并不给该段的数据分配空间,只是记录数据所需空间的大小。
data(已手动初始化的数据)段则为数据分配空间,数据保存在目标文件中。
数据段包含经过初始化的全局变量以及它们的值。BSS段的大小从可执行文件中得到 ,然后链接器得到这个大小的内存块,紧跟在数据段后面。当这个内存区进入程序的地址空间后全部清零。包含数据段和BSS段的整个区段此时通常称为数据区。
.c -> .o 目标文件一般很大,.a文件是目标文件的ar集合
而elf, bin, axf可以只link用到的code
gcc---objsize .o
text data bss dec hex filename
4576 9 2081 66
http://blog.chinaunix.net/uid-24460251-id-2606775.html
http://blog.chinaunix.net/uid-9185047-id-445087.html
bss段(未手动初始化的数据)并不给该段的数据分配空间,只是记录数据所需空间的大小。
data(已手动初始化的数据)段则为数据分配空间,数据保存在目标文件中。
数据段包含经过初始化的全局变量以及它们的值。BSS段的大小从可执行文件中得到 ,然后链接器得到这个大小的内存块,紧跟在数据段后面。当这个内存区进入程序的地址空间后全部清零。包含数据段和BSS段的整个区段此时通常称为数据区。
.c -> .o 目标文件一般很大,.a文件是目标文件的ar集合
而elf, bin, axf可以只link用到的code
gcc---objsize .o
text data bss dec hex filename
4576 9 2081 66