1 / 9
文档名称:

链接脚本文件语法详解.doc

格式:doc   大小:2,400KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

链接脚本文件语法详解.doc

上传人:Alone-丁丁 2022/7/24 文件大小:2.34 MB

下载得到文件列表

链接脚本文件语法详解.doc

相关文档

文档介绍

文档介绍:链接脚本文件语法详解
我们对每个c或者汇编文件进行单独编译,但是不去连接, 的文件,,我们首先要考虑的如何组合起来;其次,;再者,我们最后生成的bin文件是要在硬件ALIGN(4) : {
        *(.text)
    }
    .rodata ALIGN(4) : {
        *(.rodata)
    }
    .data ALIGN(4) : {
        *(.data)
    }
    .got ALIGN(4) : {
        *(.got)
    }
    __boot_end = .;
    .bss ALIGN(16) : {
        bss_start = .;
        *(.bss)
        *(COMMON)
        bss_end = .;
    }
    .comment ALIGN(16) : {
        *(.comment)
    }
    stack_point = __boot_start + 0x00100000;
    loader_size = __boot_end - __boot_start;
    setup_size = setup_block_end - setup_block;
}
=============================
在SECTIONS命令中的类似于下面的描述结构就是输出段描述:
.start ALIGN(4) : {
    *(.)
}
.start 为output section name,ALIGN(4)返回一个基于location counter(.)的4字节对齐的地址值。*(.)是输入段描述,*为通配符,。
源文件中所标识的section及其属性实际上就是对输入段的描述,:
.section .
.global _start
_start :
    b start
arm-elf-ld - -o timer_elf header .o

,它定义了整个程序编译之后的连接过程,决定了一个可执行程序的各个段的存储位置。虽然现在我还没怎么用它,但感觉还是挺重要的,有必要了解一下。

SECTIONS {
...
secname start BLOCK(align) (NOLOAD) : AT ( ldadr )
{ contents } >region :phdr =fill
...
}
secname和contents是必须的,其他的都是可选的。下面挑几个常用的看看:
1、secname:段名
2、conten