?? 其他資料 linker in doc.txt
字號:
在標簽頁Output中,Linktype中提供了三種鏈接方式。
Partial方式表示鏈接器只進行部分鏈接,經過部分鏈接生成的目標文件,可以作為以后進一步鏈接時的輸入文件。
Simple方式是默認的鏈接方式,也是最為頻繁使用的鏈接方式,它鏈接生成簡單的ELF格式的目標文件,使用的是鏈接器選項中指定的地址映射方式。
Scattered方式使得鏈接器要根據scatter格式文件中指定的地址映射,生成復雜的ELF格式的映像文件。這個選項一般情況下,使用不太多。
因為我們所舉的例子比較簡單,選擇Simple方式就可以了。
在選中Simple方式后,就會出現Simple image。
RO Base:這個文本框設置包含有RO段的加載域和運行域為同一個地址。默認是0x8000。這里用戶要根據自己硬件的實際SDRAM的地址空間來修改這個地址,保證在這里填寫的地址,是程序運行時,SDRAM地址空間所能覆蓋的地址。針對本書所介紹的目標板,就可以使用這個默認地址值。
RW Base:這個文本框設置了包含RW和ZI輸出段的運行域地址。如果選中split選項,鏈接器生成的映像文件將包含兩個加載域和兩個運行域,此時,在RW Base中所輸入的地址為包含RW和ZI輸出段的域設置了加載域和運行域地址
Ropi:選中這個設置將告訴鏈接器使包含有RO輸出段的運行域位置無關。使用這個選項,鏈接器將保證下面的操作:
檢查各段之間的重定址是否有效;
確保任何由armlink自身生成的代碼是只讀位置無關的。
Rwpi:選中該選項將會告訴鏈接器使包含RW和ZI輸出段的運行域位置無關。如果這個選項沒有被選中,域就標識為絕對。每一個可寫的輸入段必須是讀寫位置無關的。如果這個選項被選中,鏈接器將進行下面的操作,
檢查可讀/可寫屬性的運行域的輸入段是否設置了位置無關屬性;
檢查在各段之間的重地址是否有效;
在Region Table和ZISection Table中添加基于靜態存儲器sb的選項。
該選項要求RW Base有值,如果沒有給它指定數值的話,默認為0值。
Split Image:選擇這個選項把包含RO和RW的輸出段的加載域分成2個加載域:一個是包含RO輸出段的域,一個是包含RW輸出段的域。
這個選項要求RW Base有值,如果沒有給RW Base選項設置,則默認是-RW Base 0。
Relocatable:選擇這個選項保留了映像文件的重定址偏移量。這些偏移量為程序加載器提供了有用信息。
在Options選項中,需要讀者引起注意的是Image entry point文本框。它指定映像文件的初始入口點地址值,當映像文件被加載程序加載時,加載程序會跳轉到該地址處執行。如果需要,用戶可以在這個文本框中輸入下面格式的入口點:
入口點地址:這是一個數值,例如-entry 0x0
符號:該選項指定映像文件的入口點為該符號所代表的地址處,比如:
-entry int_handler
如果該符號有多處定義存在,armlink將產生出錯信息。
offset+object(section):該選項指定在某個目標文件的段的內部的某個偏移量處為映像文件的入口地址,例如:
-entry 8+startup(startupseg)
在此處指定的入口點用于設置ELF映像文件的入口地址。
需要引起注意的是,這里不可以用符號main作為入口點地址符號,否則將會出現類似“Image dose not have an entry point(Not specified or not set due to multiple choice)”的錯誤信息。
關于ARM Linker的設置還有很多,對于想進一步深入了解的讀者,可以查看幫助文件,都有很詳細的介紹。
在Linker下還有一個ARM fromELF,如圖8.7所示:
fromELF就是在8.1節中介紹的一個實用工具,它實現將鏈接器,編譯器或匯編器的輸出代碼進行格式轉換的功能。例如,將ELF格式的可執行映像文件轉換成可以燒寫到ROM的二進制格式文件;對輸出文件進行反匯編,從而提取出有關目標文件的大小,符號和字符串表以及重定址等信息。
只有在Target設置中選擇了Post-linker,才可以使用該選項。
在Output format下拉框中,為用戶提供了多種可以轉換的目標格式,本例選擇Plain binary,這是一個二進制格式的可執行文件,可以被燒些的目標板的Flash中。
在Output file name文本域輸入期望生成的輸出文件存放的路徑,或通過點擊Choose...按鈕從文件對話框中選擇輸出文件。如果在這個文本域不輸入路徑名,則生成的二進制文件存放在工程所在的目錄下。
進行好這些相關的設置后,以后在對工程進行make的時候,CodeWarrior IDE 就會在鏈接完成后調用fromELF 來處理生成的映像文件。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -