Мне нужно поместить один и тот же объект в разные разделы памяти. Я работаю над DSP с отдельными данными и программной памятью. Секции .text
обычно хранятся внутри P-MEM. Но я хочу хранить тот же код и в памяти данных. Можно скопировать его во время выполнения, но я думаю, что это должно быть возможно и во время соединения.
Это то, что я ищу, но оно не работает, так как я не смог найти инструкцию «copy» или «duplicate», которая позволяла бы размещать один и тот же код в разных разделах.
MEMORY
{
/* MAP 1*/
VECS: org=0x00000000 len=0x00000400
PMEM: org=0x00000400 len=0x0000FC00
DMEM: org=0x80000000 len=0x0000F800
DMEM_FT: org=0x8000F800 len=0x00000800
}
SECTIONS
{
vectors > VECS
.text > PMEM <----- containing ALL code (also including func1.obj(.text) )
.bss > DMEM
.cinit > DMEM
.stack > DMEM
.far > DMEM
.switch > DMEM
.data > DMEM
.sysmem > DMEM
.const > DMEM
.cio > DMEM
dmem_mirror:
{
func1.obj(.text)
} > DMEM_FT
}
Если я использую скрипт компоновщика выше, он явно помещает func1.obj
только внутри секции dmem_FT
(это то, что должен делать компоновщик!), Но это не то, что я хочу: - /. Я работаю с компилятором и компоновщиком Texas Instruments, но синтаксис такой же, как у компоновщика GCC.