カスタマーサポートセンター

FAQ~よくある質問~ | FAQマスタ詳細表示

FAQ詳細情報

ID 10810811
FAQカテゴリ(大) リンカ
最終更新日 2015-12-06

質問内容

TN95375: isymexport を使用して、シンボル (const data) を1つのプロジェクトから他のプロジェクトにエキスポートする。

回答内容

EWのターゲット : ARM
EWのコンポーネント : リンカ
キーワード : 定数データ、フラッシュ、ILINK/ielftool、ライブラリ、リンク
更新日 : November 30, 2011

問題
(例えば)外部フラッシュ ROMにデータを置き、後で別のプロジェクトで使用したい。
このテクニカルノートに書かれている方法を用いると、定数データをシンボル名で使用できるようになります。 (すなわち、これらの定数データを使用するのに、絶対アドレスに配置したシンボルを用いたり、直接アドレスを書いたりする必要がなくなります。)
フラッシュROMにconstデータをダウンロードし直したり、プロジェクトの中でリビルドせずに済みます。

答え
IARの絶対アドレスシンボル・エキスポータ isymexport です。
以下はステップバイステップの操作説明です。
A1. constデータのライブラリを作成します。
A2. ターゲットデバイスを設定します。 (例えば Cortex-M3).
A3. アプリケーションと別の場所を使用するようにリンカを設定します。
A4.  一般オプション -> ライブラリ設定 -> ライブラリ: なし
A5. リンカ -> ライブラリ -> デフォルトのプログラムエントリをオーバライドするに、プロジェクトに存在するシンボルを設定します。
A6. ビルドアクション -> ポストビルドコマンドラインにライブラリのシンボルをエキスポートすることを追加します。
$TOOLKIT_DIR$\bin\isymexport.exe "$TARGET_PATH$" "$PROJ_DIR$\const_lib.symbols"

B1. アプリケーション用のプロジェクトを作成します。
B2. ターゲットデバイスを設定 します(例えば Cortex-M3)。
B3. ライブラリと別の場所を使用するようにリンカを設定します。
B4. オプション -> リンカ -> ライブラリ -> 追加ライブラリ:
$PROJ_DIR$\const_lib.symbols
でエキスポートされたライブラリシンボルを追加します。

C1. EWARMのフラッシュローダが、constデータを配置するフラッシュメモリーエリアをサポートしている場合、出力データファイルを以下のように追加することで、

オプション -> デバッガ -> イメージ -> 追加イメージのダウンロード -> パス:
$PROJ_DIR$\Debug\Exe\const_lib.out

ターゲットに書きこむことができます。

コメント
• 下のリンクにサンプルプロジェクトと、

設定すべき様々なオプションを示すスクリーンショットがありますから確認してください。

• このライブラリではconstデータ変数は __root 属性で強制的に配置されています。
• シンボルは"const_lib.symbols" ファイルにセーブされています。
(注) このファイル名と拡張子は「例」です。

アプリケーション・オプション - download extra image

関連するサポートノート

Technical note 68992
Build actions & Argument variables

Technical note 71483
Creating an absolutely placed, checksum-protected library using IAR Embedded Workbench for ARM (Cortex-M)

 

 

参考資料URL