
/boot:启动Linux的核心文件。
以下是其他常用的linux *** 作系统目录:
/bin:存放最常用命令;
/dev:设备文件;
/etc:存放各种配置文件;
/home:用户主目录;
/lib:系统最基本的动态链接共享库;
/mnt:一般是空的,用来临时挂载别的文件系统;
/proc:虚拟目录,是内存的映射;
/sbin:系统管理员命令存放目录;
/usr:最大的目录,存许应用程序和文件;
/usr/X11R6:X-Window目录;
/usr/src:Linux源代码;
/usr/include:系统头文件;
/usr/lib:存放常用动态链接共享库、静态档案库;
/usr/bin、/usr/sbin:这是对/bin、/sbin的一个补充。
. = ALIGN(4)//这个“.=” 首先,“.”和=是分开的,“.”可以理解为一个地址计数。“=”就是等于。这句表示从上一个地址开始的第一个4字节对齐的地址.text : //这是一个段明,text段。
{
cpu/sep4020/start.o (.text)//cpu/sep4020/start.o表示cpu文件夹下的seq2404文件夹下的start.s(也可能是start.c)编译后的目标文件,一个源码文件编译好后有代码、数据等,这儿存放代码
*(.text)//同上,只是把所有目标文件的代码放在这儿
}
. = ALIGN(4)//表示从上一个地址开始的第一个4字节对齐的地址
.rodata : { *(.rodata) }//只读数据段,所有目标文件的只读数据放在此段中
. = ALIGN(4)//表示从上一个地址开始的第一个4字节对齐的地址
.data : { *(.data) }//数据段,所有目标文件的数据放在此段中
. = ALIGN(4)//表示从上一个地址开始的第一个4字节对齐的地址
.got : { *(.got) }//got也是一个段名,这是源文件中定义的一个段,所有got数据全放在这儿
. = .//这表示当前地址存放的是上一个地址的值,不是内容
__u_boot_cmd_start = .//定义一个变量,全局的。
.u_boot_cmd : { *(.u_boot_cmd) }//表示所有U-BOOT命令存放在这儿
__u_boot_cmd_end = .//定义一个变量,全局的。
armboot_end_data = .//定义一个变量,全局的。与__u_boot_cmd_end想等
. = ALIGN(4)
__bss_start = .//////
.bss : { *(.bss) }//////同u_boot_cmd段
_end = .////////////////
}
上面只是简要的分析,连接脚本有其自己的语言,想要完全掌握,去看看连接脚本的语法。同其他语言一样,有自己的关键字、内部函数、怎么定义变量等。通常,对于U-BOOT、ARM裸机程序、linux内核、他们的连接脚本语法基本一样。具体的还需要你下来下功夫。看得懂这个,才明白程序在存储器里面的分布,好处很多。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)