Renesas Synergy™

FAQ 105972 : ライブラリ関数をリンク時にROMアドレスに配置するように指定したいのですが、どうすればいいでしょうか?

Q: 質問

ライブラリ関数をリンク時にROMアドレスに配置するように指定したいのですが、どうすればいいでしょうか?また、リンク時にセクション配置指定ができるようにするためのライブラリ関数用のセクションはありませんか。


A: 回答

ライブラリ関数用のセクションはありません。

任意のライブラリ関数のセクションを変更するには、目的のライブラリ関数のソースプログラムを取り出して、NC30の拡張機能 #pragma SECTIONでセクション名を指定してください。NC30WAの製品には、各ライブラリのソースを添付しています。

#pragma SECTIONの記述方法
取り出したライブラリ関数の先頭に、次の行を追加してください。
#pragma SECTION program library
library がライブラリ関数が配置されるセクション名になります。新しいセクション名は任意の名前で指定できます。
その後、通常関数と同様にコンパイル、アセンブルした後、libraryセクションを意図されるアドレスに配置するようにしてリンクしてください。
(注意)
アセンブラで記述されているライブラリに関しては、#pragma SECTIONでは、セクション名を変更できません。
直接 .section program を変更してください。
(参考)
ライブラリ関数のソースは、NC30WAをインストールしたディレクトリ下のsrc30\libに格納されています。
(ただし、インストールの際、ライブラリソースのインストールをチェックされている場合です。)

 

 

適用製品

M16Cシリーズ,R8Cファミリ用C/C++コンパイラパッケージ [M3T-NC30WA]
適用製品2
他にご質問がございましたら、リクエストを送信してください