2017-11-12 9 views
2

コードを2つの異なるMEMORY領域に分割するためにリンカスクリプト(LD)を使用しようとしています。 - すべてのコードはMEM1領域に移動する必要があります。 file2.oのみがMEM2領域に移動する必要があります。GNUリンカを使用してファイルのコードを別のメモリ領域に配置するには

MEMORY 
{ 
    MEM1   : ORIGIN = 0x00000000,   LENGTH = 100K 
    MEM2   : ORIGIN = 0x00800000,   LENGTH = 100K 
} 


SECTIONS 
{ 
    .text : { *(.text .text.*) } >MEM1 
} 

file2.oをMEM1に移動してMEM2に転送しないようにするにはどうすればよいですか? 私はEXCLUDE_FILE(file2.oとMEM1地域用)を成功せずに使ってみました。

任意のヘルプ/方向がLDマニュアル、3.6.4.2 Input Section Wildcard Patternsから

おかげ

答えて

0

参考になります。ファイル名は1つのワイルドカードパターン以上に一致する場合、またはファイル名が表示された場合

明示的にまたワイルドカードパターンと一致する場合、リンカーはをリンカースクリプトに最初の一致を使用します。

これを試しましたか?

.text2 : { file2.o(.text .text.*) } >MEM2 
.text : {  *(.text .text.*) } >MEM1 

しかし、これはあまりにも動作するはずです:

.text : { *(EXCLUDE_FILE(*file2.o) .text .text.*) } >MEM1 
.text2 : { file2.o(.text .text.*) } >MEM2 
関連する問題