同じオブジェクトを異なるメモリセクションに配置する必要があります。私は別々のデータとプログラムメモリを備えたDSPに取り組んでいます。.text
セクションは通常、P-MEM内に保存されます。しかし、同じコードをデータメモリ内にも保存したいと思います。実行時にコピーすることは可能ですが、リンク時にもできるはずだと思います。
これは私が探しているものですが、同じコードを異なるセクションに配置できる「コピー」または「複製」命令が見つからなかったため、機能していません。
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リンカの場合と同じです。