7.17 スキャッタファイルでのベニア入力セクションの配置

リンカで生成されたシンボルを使用して、ベニアを指定した位置に配置できます。

ベニアは、ARM コードと Thumb コードの切り替えや、1 つの命令で指定できるジャンプよりも長いジャンプを実行できるようにします。ベニアを指定した位置に配置するには、スキャッタファイルにリンカで生成されたシンボル Veneer$$Code を含めます。スキャッタファイル内で *(Veneer$$Code) セクションセレクタを使用できる実行領域は 1 つだけです。

リンカにより、*(Veneer$$Code) セクションセレクタによって識別される領域にベニア入力セクションを配置するのが安全だと判断された場合、その配置が実行されます。ただし、アドレス範囲の問題や、実行領域のサイズ制限などにより、ベニア入力セクションがその領域に割り当てられない場合もあります。指定した領域にベニアを追加できない場合は、ベニアを生成した、再配置された入力セクションを含んでいる実行領域にそのベニアが追加されます。

旧バージョンの ARM ツールで作成されたスキャッタファイル内に登場する *(IWV$$Code) のインスタンスは、*(Veneer$$Code) に自動的に変換されます。 新しい記述ファイルでは *(Veneer$$Code) を使用して下さい。

実行領域内のコードの量が、16 ビットでエンコードされた Thumb コードの場合は 4Mb、32 ビットでエンコードされた Thumb コードの場合は 16Mb、ARM コードの場合は 32Mb を超えると、*(Veneer$$Code) は無視されます。

関連する概念
3.16 ベニアの概要
非機密扱いPDF file icon PDF 版ARM DUI0474JJ
Copyright © 2010-2013 ARM.All rights reserved.