内存映射的gcc链接文件,这是什么语法?

内存映射的gcc链接文件,这是什么语法?,gcc,linker,arm,microcontroller,cortex-m3,Gcc,Linker,Arm,Microcontroller,Cortex M3,使用gcc交叉编译MCU时,需要向链接器提供链接器脚本文件,以便它知道如何创建最终的对象文件 我想了解更多关于这种类型的文件,但找不到一个关于这些文件如何工作、它们使用什么样的语法、什么是最佳实践以及避免什么的好教程 下面是一个使用“-Tlinkfile.ld”选项提供给链接器的精简链接文件的示例: /谢谢语法记录在中-这与其说是一个教程,不如说是一个参考,但其中有各种各样的示例 MEMORY { ram (rwx) : ORIGIN = 0x20000000, LENGTH =

使用gcc交叉编译MCU时,需要向链接器提供链接器脚本文件,以便它知道如何创建最终的对象文件

我想了解更多关于这种类型的文件,但找不到一个关于这些文件如何工作、它们使用什么样的语法、什么是最佳实践以及避免什么的好教程

下面是一个使用“-Tlinkfile.ld”选项提供给链接器的精简链接文件的示例:


/谢谢

语法记录在中-这与其说是一个教程,不如说是一个参考,但其中有各种各样的示例

MEMORY
{
    ram    (rwx) : ORIGIN = 0x20000000, LENGTH = 20k
    rom    (rx)  : ORIGIN = 0x00000000, LENGTH = 128K
}
SECTIONS
{
    .  = 0x0;           /* From 0x00000000 */
    .text : 
    {
        *(.nvic_vector)  /* Vector table */
        *(.text.*)      /* Program code */
        *(.text)        /* Program code */
        *(.rodata)      /* Read only data */
    } >rom

    .  = 0x20000000;    /* From 0x20000000 */      
    .data : 
    {
        *(.data)        /* Data memory */
    } >ram AT > rom

    .bss : 
    {
        *(.bss)         /* Zero-filled run time allocate data memory */
    } >ram AT > rom
}