是否将gcc libs.data放入特定部分?

是否将gcc libs.data放入特定部分?,gcc,embedded,gnu,ld,linker-scripts,Gcc,Embedded,Gnu,Ld,Linker Scripts,我正试图为我们的嵌入式系统切换到GNU GCC编译器,但由于我们芯片的内存布局被拆分,我在链接项目时遇到了问题: RAM section 1: 0x10000-0x12FFF RAM section 2: 0x18000-0x1BFFF 我们项目中的数据可以放在第1节中,但从gcc LIB链接的数据却不能。地图文件提取: .data 0x00012974 0x3c4 c:/tools/gnucr16_v1.1.3-elf/cr16-elf/bin/../lib/gc

我正试图为我们的嵌入式系统切换到GNU GCC编译器,但由于我们芯片的内存布局被拆分,我在链接项目时遇到了问题:

RAM section 1: 0x10000-0x12FFF
RAM section 2: 0x18000-0x1BFFF
我们项目中的数据可以放在第1节中,但从gcc LIB链接的数据却不能。地图文件提取:

.data          0x00012974      0x3c4 c:/tools/gnucr16_v1.1.3-elf/cr16-elf/bin/../lib/gcc/cr16-elf/4.5.1-GNUCR16_v1.1.3/../../../../cr16-elf/lib\libc.a(lib_a-impure.o)
               0x00012974                _impure_ptr

.data          0x00012d7c      0x410 c:/tools/gnucr16_v1.1.3-elf/cr16-elf/bin/../lib/gcc/cr16-elf/4.5.1-GNUCR16_v1.1.3/../../../../cr16-elf/lib\libc.a(lib_a-mallocr.o)
               0x00012d7c                __malloc_av_
               0x00013184                __malloc_trim_threshold
               0x00013188                __malloc_sbrk_base
是否可以将LIB中的.data部分放在第2部分?我尝试过不同的事情但没有成功。。。链接器脚本提取:

MEMORY
{
  SHARED1    : org =   0x10000, len = 0x3000
  SHARED2    : org =   0x18000, len = 0x4000
}

SECTIONS
{
  .data 0x12004 : { *(.data); } >SHARED1
  .data2 0x19000 : { libc*(.data); } >SHARED2
}
更多信息请点击此处:

SECTIONS
{
  .section_name:
  {
    *lib_a-impure.o (.data);  //That is the syntax to access sections of object files
   } >SHARED1
}