2017-04-11 76 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中。