OUTPUT_FORMAT(“elf32-littlearm”, “elf32-littlearm”, “elf32-littlearm”)
//指定输出的格式是32bits ARM 小端
OUTPUT_ARCH(arm)
//指出输出可执行文件的平台是arm
ENTRY(_start)
指定输出可执行文件的起始代码段是_start
SECTIONS
{
. = 0x34000; //我使用的三星的A8核;NOTE. In case of SD/MMC, iROM code loads 9KB at 0x34000 from the end //of the booting device;对定位计数器进行赋值,. = 0x34000对定位计数器初始化为0x0
. = ALIGN(4); // 以当前的地址寻找下一个4个字 的地址作为开始(First 4words are reserved.)使得当前定位计数器向四字节对齐
.text : //定义了一个输出节 .text,冒号是语法需要。
{
arch/start.o(.text)//后花括号中,列出了所有应当放到这个输出节中的输入节的名字,
*(.text) //*是一个通配符,匹配任何文件名,
}
. = ALIGN(4);**使得当前定位计数器向四字节对齐**
.rodata : //只读数据段
{
*(.rodata) //*是一个通配符,匹配任何文件名,
}
. = ALIGN(4);**使得当前定位计数器向四字节对齐**
.data :
{
*(.data)
}
. = ALIGN(4);**使得当前定位计数器向四字节对齐**
_bss_start = .; //定义.bss输出节,并且把_bss_start定义为_bss_start输出节的起始位置,
.bss :
{
*(.bss)
}
_bss_end = .; //把_end定义为_bss节的结束位置
}