リンクオプション -lib_rename について

こんにちは。あさたろうと申します。

CPU : R5F566TEBxFP(RX66T)
開発環境 : CS+ for CC V8.01.00 [03 Dec 2018]
ビルドツール : CCRX V3.01.00

プロジェクトでリンクするライブラリのセクションを、-lib_renameリンクオプションで別のセクションに割り付けると動作しなくなります。

オプションを指定しない場合と、指定した場合とでマップファイルを比較すると、Rセクションに割り付けられていた変数がDxxxセクションに割り付けられてしまって動作しないことが判りました(xxxは、オプションで指定した変更後の名前)。

-lib_renameによる指定で、ライブラリを別セクションに正しく割り付けるには、どのように設定すればよいでしょうか?

ライブラリを利用するアプリケーションと別のセクションにして欲しいというのは、お客様からの要望です。

どうぞよろしくお願いいたします。

 

現象を確認可能なプロジェクトを作成したのですが、サイズ制限で全て添付できませんでした。
プロジェクトから、スマート・コンフィギュレータで生成される r_bsp, r_config, r_pincfg フォルダを
削除したものを添付しています。
スマート・コンフィギュレータの設定ファイルは含んでいますので、そちらから生成しなおせばビルド
できるのではないかと思います。section.zip
北斗電子のHSBRX66T100Bボード用です。

 

Parents
  • わわいです

    初期値付きの変数のセクションというのは、他のセクションと違って色々ややこしいです
    ①変数エリアのためにRAMにマップしなければいけませんが、このエリアを初期化するためのデータはROMのエリアに確保しないといけません
    ②そして、初期値データをRAMエリアに、あらかじめ転送しておいてプログラムを開始する必要があります

    -lib_renameによる指定でセクション名を追加変更するのはいいですが、コレを変更するんであれば、
    上記①②も一緒に追加変更しないとうまく動きません

    そこらへんの解説は、お使いのコンパイラのマニュアルに書いてありますんでよく読んでみてください
Reply
  • わわいです

    初期値付きの変数のセクションというのは、他のセクションと違って色々ややこしいです
    ①変数エリアのためにRAMにマップしなければいけませんが、このエリアを初期化するためのデータはROMのエリアに確保しないといけません
    ②そして、初期値データをRAMエリアに、あらかじめ転送しておいてプログラムを開始する必要があります

    -lib_renameによる指定でセクション名を追加変更するのはいいですが、コレを変更するんであれば、
    上記①②も一緒に追加変更しないとうまく動きません

    そこらへんの解説は、お使いのコンパイラのマニュアルに書いてありますんでよく読んでみてください
Children
No Data