--any_placement=algorithm

.ANY モジュールセレクタを使用して配置されるセクションの配置を制御します。

Show/hide構文

--any_placement=algorithm

algorithm には、以下のいずれかを指定します。

best_fit

現在対象のセクションを格納できるだけの必要最小限のスペースがある実行領域にセクションを割り当てます。

first_fit

十分なスペースがある最初の実行領域にセクションを配置します。 スキャッタファイルに定義されている順に実行領域が調査されます。

next_fit

以下の規則を使用してセクションを配置します。

  • 現在の実行領域に十分な空きスペースが存在する場合は、その領域に配置します。

  • 現在の領域にスペースが不足している場合にのみ、次の実行領域に配置します。

  • 前の実行領域にセクションを配置することはありません。

worst_fit

現在最も空きスペースのある実行領域にセクションを配置します。

このオプションは --scatter オプションと一緒に使用します。

Show/hide使用法

配置アルゴリズムは、スキャッタファイルや --any_contingency に対して以下のように作用します。

通常のスキャッタロード規則に対する作用

.ANY を含むかどうかに関係なく、スキャッタロードでは、最も限定的なセレクタに対してセクションが割り当てられます。 すべてのアルゴリズムは.ANY の優先順位やサイズの考慮事項に優先して、最も限定的なセレクタに対して割り当てを実行し続けます。

.ANY の優先順位とのインタラクション

すべてのアルゴリズムにおいて、優先順位は、最も限定的なセレクタへの割り当て後に考慮されます。

worst_fit および best_fit は、それぞれの配置基準の前に優先順位を考慮します。 例えば、.ANY1.ANY2 というセレクタがあり、.ANY1 領域に最も多くの空きスペースが存在するとします。 worst_fit を使用した場合、セクションは、より高い優先順位を持つ .ANY2 に割り当てられます。 優先順位が等しい場合にのみ、アルゴリズムの作用が適用されます。

first_fit では、最も限定的なセレクタがまず考慮され、その後で優先順位が考慮されます。 その他の配置規則は適用されません。

next_fit の場合も、その他の配置規則は適用されません。 next_fit 中に領域が一杯としてマークされた場合、その領域は優先順位に関係なく考慮から外されます。

--any_contingencyとのインタラクション

リンカによって生成されたコンテンツによって領域がオーバーフローした場合、.ANY セレクタの優先順位は 0 に引き下げられます。 これは、ソートアルゴリズムや配置アルゴリズムとは無関係に有効/無効にされます。

armlink は、ワーストケースのコンティンジェンシをセクションごとに計算します。

worst_fitbest_fitfirst_fit の場合、領域がオーバーフローしそうになると、armlink が、関連する .ANY セレクタの優先順位を引き下げます。

next_fit の場合、潜在的なオーバーフローが検出されると、armlink は、そのセクションを一杯(FULL)としてマークし、今後は一切考慮しません。 これによって、一杯になったセクションを一定の規則を持って考慮から外すことができます。

Show/hideデフォルト

デフォルトのオプションは worst_fit です。

Show/hide関連項目

Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0493GJ
Non-ConfidentialID051612