2011-05-22 78 views
3

當使用gcc爲MCU交叉編譯時,您會向鏈接器提供鏈接器腳本文件,以便它知道如何創建最終的目標文件。內存映射gcc鏈接文件,那是什麼語法?

我想了解更多關於這種類型的文件,但找不到關於這些文件如何工作,它們使用什麼類型的語法,什麼是最佳實踐以及要避免什麼的好教程。

這裏將被提供給連接器與「-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 
} 

/感謝

回答