IAR Embedded Workbench for ARMでRealview .symファイルを使う
テクニカル・ノート 96176
アーキテクチャ:
ARM
コンポーネント:
linker
更新日:
2018/08/26 3:55
はじめに
IAR Embedded Workbench for ARMでRealViewのシンボル定義ファイル(symdefs/.sym)を使用するにはどうすればよいでしょうか?
警告!
これは高度な技術を要する解決方法です。この方法を適用する場合、例えば、AEABIに関する知識や、どのような呼出規約が使用されるかについての知識を必要とします。
この解決方法に関する注意事項
外部シンボルについては、限られた数のエラーと警告しか生成されません。
他のイメージにあるシンボルへのアクセス
RealView Compilation Toolsで生成された他のイメージに含まれるグローバルシンボルの値を知るには、IAR Embedded Workbench for ARMを使用してイメージを1つ生成します。
解決方法
シンボル定義ファイル(symdefs)を使用します。
.symファイル
このファイルを生成してプロジェクトのディレクトリにコピーします。armlinkの--symdefsオプションを使用してください。
armlink --symdefs filename
ARM Linkerに関する詳細は、ARMのドキュメントを参照してください。
.batファイル
プリビルドにおいてsym2h.batスクリプトファイルを使用して、.hファイルと.fファイルを生成します。
IAR Embedded Workbench > プロジェクト(Project) > オプション(Options...) > ビルドアクション(Build Actions) > プリビルドコマンドライン(Pre-build command line):
$PROJ_DIR$\sym2h.bat $PROJ_DIR$\filename.sym
Use: sym2h.bat filename
The filename should be a fully qualified path name.
Output directory is the same as the input directory.
ファイル名を入力する必要があります。このファイル名には、完全修飾パス名を使用する必要があります。
出力ディレクトリは、入力ディレクトリと同じディレクトリを指定します。
.fファイル
生成されたシンボル定義ファイルを使用するには、ilinkerarm.exeに追加オプション(Extra Option)を追加する必要があります。
IAR Embedded Workbench IDE > プロジェクト(Project) > オプション(Options...) > リンカ(Linker) > 追加オプション(Extra Options)でコマンドラインオプションの使用(Use command line options)を選択し、コマンドラインオプション(Command line options)に以下のオプションを入力します。
-f $PROJ_DIR$\filename.f
Use: -f file
Read command line options from file
.hファイル
生成された外部定義ファイルを使用するには、コードに以下のinclude文を追加します。
#include "filename.h"
その他の情報
この方法は、RealView Compilation Toolsバージョン2.2 [ビルド576]およびIAR Embedded Workbench for ARMバージョン5.11で生成したsymdefsファイルを使用してテストしました。
なお、この.batファイルは、シンボルがA(arm)、T(thumb)、D(data)のどれかに応じて、標準の定義のみ生成します。
AまたはTの場合、スクリプトでは以下の記述が使用されます。
void <SYMBOL_NAME>();
Dの場合、スクリプトでは以下の記述が使用されます。
extern int <SYMBOL_NAME>;
場合によっては、必要な型に合わせてシンボルをキャストする必要があります。
イメージの読み込み
外部でビルドされたイメージがターゲットに読み込まれていない場合、例えば以下の方法でイメージを読み込みます。
ilinkarm.exe --image_input filename.axf
Use: --image_input file[,symbol[,section[,alignment]]]
Put image file in section from file
サンプルプロジェクト
次のリンクにサンプルプロジェクトが用意されています: Example project including sym2h.zip.
免責事項
IAR Systemsは、sym2h.batの販売もサポートも行っていません。このツールは、当社のツールチェーンには含まれていません。そのため、これらのファイルは現状有姿で提供され、将来のサポートや情報提供は何ら保証されていません。sym2h.batに関する改善案をお持ちの場合は、当社や他の開発者までぜひお知らせください。
全ての製品名は、それぞれの所有者の商標または登録商標です。