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_setup0x80024000 0x0 load address 0x20000060
試しに最初のオブジェクトを相対パスで指定すると
../HardwareDebug/generate/system/r_spibsc_setup.o (.text .text.* .rodata .rodata.* .data .data.*) <-こんな感じ
そのオブジェクトの.textセクションが下記の様に配置されます(サイズが0でなくなる)。
.data.memclk_setup0x80024000 0x180 load address 0x20000060
*/ で任意のパスをつけてオブジェクトを指定してもオブジェクトが無視されているようです。
以上、よろしくお願いします。
最終的に何を実現されたいのかがイマイチ解りません(.textを.dataに入れようとしているのも良く解りません)が、ワイルドカード(*)の使い方には問題があるように思えます。(ワイルドカードだと何も見つからなくてもエラーにはならないので、何が悪いか分からないんですよね)GNU Linkerのマニュアルはここですが、難しい…https://sourceware.org/binutils/docs/ld/Input-Section-Wildcards.htmlこれの最後の方のコメントとか、他の方の使い方を眺めてみるのが早いと思います。https://stackoverflow.com/questions/21418593/linker-script-put-a-particular-file-at-a-later-position
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となったようです。
パスを指定することで解決しました。アドバイス、ありがとうございました。