IAR ELFツール — ielftool
IAR ELF Tool (ielftool)は、メモリの特定の範囲におけるチェックサムを生成できます。このチェックサムは、使用しているアプリケーションで計算されるチェックサムと比較できます。
ielftoolのソースコードおよびCMake 構成ファイルは、arm\src\elfutilsディレクトリにあります。チェックサムの生成方法に関する特定の要件やフォーマット変換に関する要件がある場合には、それに応じてソースコードを変更できます。CMake ファイルはMicrosoft Visual Studioプロジェクトとして使用されるか、Linuxで使用するためのmakefilesの生成などに使用されます。
呼び出し構文
IAR ELF Toolの呼び出し構文は以下のとおりです。
ielftool [options]inputfileoutputfile[options]
ielftoolツールは、最初にすべてのフィルオプションを処理した後、すべてのチェックサムオプションを(左から右に)処理します。
パラメータ
パラメータを以下に示します。
パラメータ | 説明 |
|---|---|
| ILINKリンカにより生成される完全なELF 実行可能イメージ。 |
| 任意の使用可能なコマンドラインオプション。詳細については、ielftoolオプションの概要を参照してください。 |
| 絶対ELF実行可能イメージ、または関連のコマンドラインオプションの1つが指定された場合、別のフォーマットのイメージファイル。 |
ファイル名またはディレクトリをパラメータとして指定する場合の規則を参照してください。
例
以下の例では、メモリ範囲が0xFFで埋め込まれた後、同じ範囲のチェックサムが計算されます。
ielftool my_input.out my_output.out ‑‑fill 0xFF;0–0xFF ‑‑checksum __checksum:4,crc32;0–0xFFielftoolオプションの概要
以下の表に、ielftoolのコマンドラインオプションの一覧を示します。
コマンドラインオプション | 説明 |
|---|---|
出力ファイルのフォーマットをロウバイナリに設定します。 | |
複数のローバイナリファイルに出力を生成します。 | |
チェックサムを生成します。 | |
フィルの要件を指定します。 | |
ファイルの最初のヘッダを出力します。 | |
出力ファイルのフォーマットを32ビットリニアなIntel拡張hexに設定します。 | |
Intel hexレコードのデータバイト数を設定します。 | |
出力を JSON としてフォーマットします。 | |
生成された出力ファイルのすべてのアドレスにオフセットを追加(または差し引き)します。 | |
パリティビットを生成します。 | |
一般用ではありません。 | |
出力抑止操作を設定します。 | |
出力ファイルのフォーマットを簡易コードに設定します。 | |
| |
出力ファイルのフォーマットをMotorola S-recordsに設定します。 | |
各S-recordのデータバイト数を設定します。 | |
S-record出力にレコードのサブセットのみが含まれるように制限します。 | |
デバッグ情報を削除します。 | |
出力ファイルのフォーマットをTexas Instruments TI-TXTに設定します。 | |
指定したシンボルのELFファイルコンテンツを置換します。 | |
実行されたすべての操作を出力します。 | |
ツールの出力をコンソールに送信し、終了します。 |
詳細については、ユーティリティオプションの説明を参照してください。
ielftoolアドレス範囲の指定
最もベーシックレベルで、ielftoolのアドレス範囲は、0x8000-0x87FFの2 つの16進数で構成されています。これには0x8000と0x87FFの両方が含まれています。
__checksum_begin-__checksum_endを使用した開始、または終了アドレスとして、処理したELFファイルに表示されるELFシンボルを指定できます。この範囲は、__checksum_beginシンボルのアドレス値があるバイトで始まり、__checksum_endシンボルのアドレス値があるバイトで終わります。0x40と0x3FDのシンボル値は0x40-0x3FDで指定したものと同じです。
__start+3-__end+0x10を使用したシンボル値にオフセットを追加できます。計算は64ビットの剰余演算で行われます。よって0xFFFF'FFFF'FFFF'FFFFは1を差し引いたものと同じです。
{BLOCKNAME}を使用して処理したELFファイルに表示されまた.icfファイルからブロックを指定できます。0x400で始まり、0x535で終わるブロックは、0x400-0x535で指定したものと同じになります。
重複していない限り、0x800-1FFF {FARCODE_BLOCK}で分けて、いくつかのアドレス範囲を組み合わせることができます。
正当な範囲として重複がない限り、__FLASH_BASE-__FLASH_ENDを指定できます。
注記
アプリケーションがアドレス変換にリンクされている場合(logicalディレクティブ参照)、チェックサムが明示的な物理チェックサム範囲を使用して計算されていることを確認してください(アドレス変換された範囲のチェックサム参照)。