リンクスクリプトでオブジェクトが出力されない

RZ/A2Mにてソースのコーディング中です。

リンクスクリプトファイルの編集中ですが、思い通りに割付できません。

.data.memclk_setup : ALIGN(0x20)
{
*/r_spibsc_setup.o (.text .text.* .rodata .rodata.* .data .data.*)
*/r_memclk_setup.o (.text .text.* .rodata .rodata.* .data .data.*)
*/r_*_memclk_setup.o (.text .text.* .rodata .rodata.* .data .data.*)
*/r_spibsc_adjust_timing_data.o (.text .text.* .rodata .rodata.* .data .data.*)
*/r_spibsc_lld_rza2m.o (.text .text.* .rodata .rodata.* .data .data.*)
*/r_spibsc_sflash_userdef.o (.text .text.* .rodata .rodata.* .data .data.*)
. = ALIGN(0x4);
} >HARDWARE_INIT_RAM AT> ROM

上記のリンクスクリプトファイルでビルドを実行し、mapファイルを確認すると下記の様にセクションのサイズが0になります。

.data.memclk_setup
0x80024000 0x0 load address 0x20000060

試しに最初のオブジェクトを相対パスで指定すると

../HardwareDebug/generate/system/r_spibsc_setup.o (.text .text.* .rodata .rodata.* .data .data.*)  <-こんな感じ

そのオブジェクトの.textセクションが下記の様に配置されます(サイズが0でなくなる)。

.data.memclk_setup
0x80024000 0x180 load address 0x20000060

*/ で任意のパスをつけてオブジェクトを指定してもオブジェクトが無視されているようです。

以上、よろしくお願いします。

Parents Reply Children
  • Thanks for sharing, I found a lot of interesting information here. A really good post, very thankful and helpful that you will write many more posts like this one.

    MaryKayInTouch USA

  • 自己解決しました。

    原因はやはり、ワイルドカードにありました。

    異なった親ディレクトリ(HardwareDebugとRelease)の下に同じ名前のディレクトリ(genarate)があり、無視されたようです。結果、オブジェクトファイルがリンクされずオブジェクトファイルのセクションが見つからずのサイズ0となったようです。

    パスを指定することで解決しました。アドバイス、ありがとうございました。