2017-04-11 74 views
0
  1. rom1rom2有不同的地址映射,並且不連續!
  2. 有些物體必須放入rom2
  3. 每次連接rom1時,rom2中的對象應該是固定地址(rom2)。換句話說,rom1在鏈接時應該知道rom2的符號地址。

我可以鏈接一個精靈(rom2)到rom1GCC鏈接多個內存條

+0

我可以將精靈(rom2)鏈接到rom1嗎? – linucos

+0

或者我可以從rom1精靈拆分rom2相關函數,假設rom2相關函數是特殊的? – linucos

回答

0

如果我沒有理解好:

  1. 你的系統有2個記憶rom1rom2
  2. 一些對象已經被位於rom1,別人rom2

你的鏈接腳本應看起來像如下:

MEMORY 
{ 
    rom1 : org=0x10000 len=1024 
    rom2 : org=0x40000 len=1024 
} 

SECTIONS 
{ 
    .text1 0x10000 : {foo.o(.text) } > rom1 
    .text2 0x40000 : {bar.o(.text) } > rom2 
} 

在部分SECTIONS中,鏈接器收集foo.o中的.text部分,並將此.text部分放入輸出部分.text1,從rom1中的地址0x10000開始。

同樣,它從bar.o收集.text部分,並將其放入rom2中。