2012-10-06 38 views
1

我正在寫一個512字節的可引導程序,我必須將0xAA55粘貼到512字節程序映像的最後2個字節中。所以我已經做到了。現在我的鏈接器腳本應該非常簡單。我只是好奇這個語法是什麼意思。鏈接器腳本中的.foo:{*(。*)}是什麼意思?

.foo : { *(.*) } 

我給了它作爲一個例子。沒有.foo段,而在這之前,我改變了程序計數器

. = 0x1000 //To account for the elf header which I will strip later 

所以經過這個指令是

.foo : { *(.*) } 

這是什麼呢?

+0

我從來沒有使用鏈接器腳本,但兩分鐘的谷歌搜索[本文檔中的「鏈接器腳本通配符」](http://sourceware.org/binutils/docs/ld/Input-Section-Wildcards.html) ,這表明該行指示鏈接器將所有段合併爲一個名爲'.foo'的段。 – DCoder

回答

2

它存儲在從還未被分配給任何前面定義的部分中的所有對象的文件(第一*)部分.foo所有代碼,數據,BSS,RODATA,等等(第二*)。