IAR Absolute Symbol Exporter—isymexport
IAR Absolute Symbol Exporter (isymexport)は、ROMイメージファイルから絶対シンボルをエクスポートします。これらのシンボルは、アドオンアプリケーションのリンク時に使用できます。
最終のアプリケーションでシンボルファイルからのシンボルを保持するには、ソースコードから、あるいはリンカオプションの--keepを使用して、そのシンボルを参照する必要があります。
呼び出し構文
IAR Absolute Symbol Exporterの呼び出し構文は以下のとおりです。
isymexport [options]inputfileoutputfile
パラメータ
パラメータを以下に示します。
パラメータ | 説明 |
|---|---|
| 実行可能ELF ファイルの形式ROM イメージです(リンカからの出力)。 |
| 任意の使用可能なコマンドラインオプション。詳細については、isymexportのオプションの概要を参照してください。 |
| リンク入力として使用可能な再配置可能ELFファイルです。このファイルには、入力ファイル内の絶対シンボルのすべてまたは選択内容が含まれます。出力ファイルには、シンボルのみ含まれ、実際のコードやデータセクションは含まれません。ステアリングファイルは、含めるシンボルを管理するために使用され、またシンボルの名前を変えるためにも使用できます。 |
ファイル名またはディレクトリをパラメータとして指定する場合の規則を参照してください。
注意
DEで、ライブラリシンボルのエクスポートを追加するには、[プロジェクト]>[オプション]>[ビルドアクション]を選択し、[ビルド後コマンドライン]テキストフィールドでコマンドラインをたとえば次のように指定します。
$TOOLKIT_DIR$\bin\isymexport.exe "$TARGET_PATH$" "$PROJ_DIR$\const_lib.symbols"
isymexportのオプションの概要
以下の表に、isymexportのコマンドラインオプションの一覧を示します。
コマンドラインオプション | 説明 |
|---|---|
ステアリングファイルを指定します。 | |
ローカルのシンボルをエクスポートします。 | |
コマンドラインを拡張します。 | |
オプションで依存関係を指定して、コマンドラインを拡張します。 | |
破棄された可能性のある関数への仮想関数呼び出しがイメージに含まれないことを宣言します。 | |
UTF-8出力ファイルのバイト オーダーマークを省略します。 | |
イメージが使用するRAM内のエリアのためにシンボルを生成します。 | |
イメージが使用するROMおよびRAM内のエリアを予約するためにシンボルを生成します。 | |
指定された名前を持つアプリケーションのエントリポイントをエクスポートします。 | |
テキスト出力ファイルのエンコードを指定します。 | |
テキスト入力ファイルにUTF-8エンコードを使用します。 | |
ツールの出力をコンソールに送信し、終了します。 |
詳細については、ユーティリティオプションの説明を参照してください。
ステアリングファイル
ステアリングファイルは、含めるシンボルを管理するために使用され、またシンボルの名前を変えるためにも使用できます。ステアリングファイルでは、showディレクティブおよびhideディレクティブを使用して、入力ファイルからどのパブリックシンボルを出力ファイルに含めるかの選択ができます。renameディレクティブを使用すると、入力ファイル内のシンボルの名前を変更できます。
ステアリングファイルを使用する場合は、アクティブにエクスポートされたシンボルのみが出力ファイルで使用可能になります。このため、showディレクティブを持たないステアリングファイルでは、シンボルのない出力ファイルが生成されます。
構文
以下の構文規則が適用されます。
それぞれのディレクティブは、別々の行に指定します。
Cのコメント(
/*...*/)やC++のコメント(//...)を使用できます。パターンには、シンボル名の複数文字に対応するワイルドカード文字を含めることができます。
*文字は、シンボル名の中のゼロ桁または複数桁の文字のシーケンスに一致すると見なされます。?文字は、シンボル名の中の任意の1文字に一致すると見なされます。
例
rename xxx_* as YYY_* /*Change symbol prefix from xxx_ to YYY_ */ show YYY_* /* Export all symbols from YYY package */ hide *_internal /* But do not export internal symbols */ show zzz? /* Export zzza, but not zzzaaa */ hide zzzx /* But do not export zzzx */