Skip to main content

IAR Embedded Workbench for Arm 9.70.x

IAR ELFツール — ielftool

このセクションの内容:

IAR ELF Tool (ielftool)は、メモリの特定の範囲におけるチェックサムを生成できます。このチェックサムは、使用しているアプリケーションで計算されるチェックサムと比較できます。

ielftoolのソースコードおよびCMake 構成ファイルは、arm\src\elfutilsディレクトリにあります。チェックサムの生成方法に関する特定の要件やフォーマット変換に関する要件がある場合には、それに応じてソースコードを変更できます。CMake ファイルはMicrosoft Visual Studioプロジェクトとして使用されるか、Linuxで使用するためのmakefilesの生成などに使用されます。

呼び出し構文

IAR ELF Toolの呼び出し構文は以下のとおりです。

ielftool [options] inputfile outputfile [options]

ielftoolツールは、最初にすべてのフィルオプションを処理した後、すべてのチェックサムオプションを(左から右に)処理します。

パラメータ

パラメータを以下に示します。

パラメータ

説明

inputfile

ILINKリンカにより生成される完全なELF 実行可能イメージ。

オプション

任意の使用可能なコマンドラインオプション。詳細については、ielftoolオプションの概要を参照してください。

outputfile

絶対ELF実行可能イメージ、または関連のコマンドラインオプションの1つが指定された場合、別のフォーマットのイメージファイル。

表114 ielftoolのパラメータ 


ファイル名またはディレクトリをパラメータとして指定する場合の規則を参照してください。

以下の例では、メモリ範囲が0xFFで埋め込まれた後、同じ範囲のチェックサムが計算されます。

ielftool my_input.out my_output.out ‑‑fill 0xFF;0–0xFF ‑‑checksum __checksum:4,crc32;0–0xFF

ielftoolオプションの概要

以下の表に、ielftoolのコマンドラインオプションの一覧を示します。

コマンドラインオプション

説明

‑‑bin

出力ファイルのフォーマットをロウバイナリに設定します。

‑‑bin-multi

複数のローバイナリファイルに出力を生成します。

‑‑checksum

チェックサムを生成します。

‑‑fill

フィルの要件を指定します。

‑‑front_headers

ファイルの最初のヘッダを出力します。

‑‑ihex

出力ファイルのフォーマットを32ビットリニアなIntel拡張hexに設定します。

‑‑ihex-len

Intel hexレコードのデータバイト数を設定します。

‑‑json

出力を JSON としてフォーマットします。

‑‑offset

生成された出力ファイルのすべてのアドレスにオフセットを追加(または差し引き)します。

‑‑parity

パリティビットを生成します。

‑‑self_reloc

一般用ではありません。

‑‑silent

出力抑止操作を設定します。

‑‑simple

出力ファイルのフォーマットを簡易コードに設定します。

‑‑simple-ne

--simpleと同じですが、エントリレコードを持ちません。

‑‑srec

出力ファイルのフォーマットをMotorola S-recordsに設定します。

‑‑srec-len

各S-recordのデータバイト数を設定します。

‑‑srec-s3only

S-record出力にレコードのサブセットのみが含まれるように制限します。

‑‑strip

デバッグ情報を削除します。

‑‑titxt

出力ファイルのフォーマットをTexas Instruments TI-TXTに設定します。

‑‑update_symbol

指定したシンボルのELFファイルコンテンツを置換します。

‑‑verbose、-V

実行されたすべての操作を出力します。

‑‑version

ツールの出力をコンソールに送信し、終了します。

表115 ielftoolオプションの概要 


詳細については、ユーティリティオプションの説明を参照してください。

ielftoolアドレス範囲の指定

最もベーシックレベルで、ielftoolのアドレス範囲は、0x8000-0x87FFの2 つの16進数で構成されています。これには0x80000x87FFの両方が含まれています。

__checksum_begin-__checksum_endを使用した開始、または終了アドレスとして、処理したELFファイルに表示されるELFシンボルを指定できます。この範囲は、__checksum_beginシンボルのアドレス値があるバイトで始まり、__checksum_endシンボルのアドレス値があるバイトで終わります。0x400x3FDのシンボル値は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ディレクティブ参照)、チェックサムが明示的な物理チェックサム範囲を使用して計算されていることを確認してください(アドレス変換された範囲のチェックサム参照)。