- IAR Embedded Workbench for Arm 9.70.x
- IAR C/C++ 開発
- リンカ設定ファイル
- シンボル、式、数値の使用
- define image symbol ディレクティブ
define image symbol ディレクティブ
Syntax
define image symbolname=expr;
パラメータ
| シンボルの名前 |
| 式 これらの演算子は式で使用できます。式では
|
説明
イメージシンボル定義ディレクティブは、指定された式の値を持つシンボルを定義します。イメージシンボルは、不明なシンボルを参照する場合があります。イメージシンボル式で不明なシンボルを指定することは、 --keep オプションでシンボルを指定することと同様です。シンボルがアプリケーションで参照されていない場合でも、イメージシンボルは常に出力されます。
イメージシンボルは、コンテンツが配置された後に評価されます。このため、これらは次のようになります:
すべての公開ラベルにアクセスできる
配置目的には使用できません
他のシンボルタイプでは参照できません。
イメージシンボルは、他のイメージシンボルを含む他の公開シンボル**および定数**を参照できますが、参照は円形であってはなりません。すべてのリンカ式が利用可能です。リンカ設定ファイル内の式を参照してください。
例
define image symbol myBlockSize = SomeBlock$$Limit - OtherBlock$$Base; define image symbol myArrayPlace = myArray + 200; define image symbol start_of_code_block = ADDR(CODE_BLOCK);
最初の行は myBlockSize シンボルを定義します。その値は、ブロック(またはセクション)SomeBlock の終了とブロック / セクション OtherBlock の開始の差になります。SomeBlock が 0x34560 で終了し、 OtherBlock が 0x12000 で開始する場合、 myBlockSize の値は 0x22560 になります。
2 行目は myArrayPlace シンボルを定義します。その値は myArray + 200 のアドレスになります。myArray のアドレスが 0x1380 の場合、 myArrayPlace の値は 0x1448 になります。
3 行目は、シンボル start_of_code_block を定義します。その値は CODE_BLOCK$$Base で、ブロック CODE_BLOCK の最初のアドレスの特殊シンボルです。
define image symbol init_start = ADDR(MYSECTION); define image symbol inited_start = LOADADDR(MYSECTION); define image symbol init_size = SIZE(MYSECTION);
ロードアドレスをサポートする手動初期化を使用している場合、この例では、イメージシンボルと演算子 ADDR、 LOADADDR、および SIZE を使用して初期化を設定します。