8.7 実行領域の記述に含まれている構文

実行領域は、ランタイム時にターゲットメモリに入力セクションを配置する場所を指定します。

バッカスナウア記法(BNF)による実行領域の記述の構文は、次のとおりです。

execution_region_description ::=
  exec_region_name (base_address | "+" offset) [attribute_list] [max_size | length]         "{"
            input_section_description*          "}"

各項目には以下の意味があります。

exec_region_name

実行領域の名前を指定します。引用符で囲んだ名前を使用できます。名前に大文字と小文字の区別があるのは、領域関連のリンカ定義シンボルを使用した場合のみです。

base_address

領域内のオブジェクトがリンクされるアドレスを指定します。 base_address は、ワード境界で整列させる必要があります。

実行領域に対して ALIGN を使用すると、ロードアドレスと実行アドレスの両方が整列されます。

+offset

前の実行領域の終わりから offset バイト離れたベースアドレスを指定します。 opt の値 offset には 4 で割った余りが 0 になる値を指定する必要があります。

これがロード領域内の最初の実行領域の場合、 +offset は、ロード領域のベースから offset バイト離れた位置でベースアドレスが開始することを意味します。

+offset を使用した場合、実行領域は、親ロード領域か、同じロード領域内の前の実行領域から特定の属性を継承することがあります。

attribute_list

実行領域の内容の特性を指定する属性です。

max_size

EMPTY または FILL としてマークされた実行領域の場合、 max_size 値は領域の長さと解釈されます。それ以外の場合は、 max_size 値は実行領域の最大サイズと解釈されます。

[–]length

EMPTY とだけ使用可能で、メモリ内で下方に増加されるスタックを表します。長さに負の値が指定されている場合は、 base_address が、その領域の終了アドレスとして使用されます。

input_section_description

入力セクションの内容を指定します。

BNF の定義では、読みやすくするために改行とスペースが挿入されています。改行とスペースはスキャッタロード記述では必須ではなく、スキャッタファイル内に存在している場合は無視されます。

関連する概念
8.6 実行領域の記述
8.11 実行領域に相対アドレス +offset を使用する際の注意事項
8.20 スキャッタファイル内の式の評価
2.5 ベースプラットフォームリンクモデル
7.25 オーバーレイを使用したセクションの配置
7.32 ページ境界での領域の作成
11.1 ベースプラットフォームモデルでのスキャッタファイルの使用に関する制限
8.12 ロード領域のアドレス属性の継承規則
8.13 実行領域のアドレス属性の継承規則
8.14 RELOC アドレス属性の継承規則
8.15 入力セクションの記述
関連する参考文書
8.8 実行領域の属性
8.9 ロード領域と実行領域のアドレス属性
7 スキャッタロード機能
6.3 領域関連シンボル
非機密扱いPDF file icon PDF 版ARM DUI0474JJ
Copyright © 2010-2013 ARM.All rights reserved.