- IAR Embedded Workbench for Arm 9.70.x
- IAR C/C++ 開発
- リンカ設定ファイル
- セクションの取扱い
- define overlayディレクティブ
define overlayディレクティブ
構文
define overlayname[with param, param...]{extended-selectors; } [ except {section-selectors} ];
extended selectorsおよびexcept 句については、セクションの選択を参照してください。
パラメータ
| オーバレイの名前 |
| オーバレイのサイズをカスタマイズします。デフォルトでは、オーバレイのサイズはその内容に依存するパーツの合計です。 |
| オーバレイのサイズの上限を指定します。オーバレイのセクションがこのサイズに合わない場合、エラーが発生します。 |
| オーバレイの最小アライメントを指定します。オーバレイの任意のセクションのアライメントが、最小アライメントを超える場合、そのアライメントがオーバレイのアライメントになります。 |
| セクションを固定順で配置します。指定されない場合、セクションは任意の順序で配置されます。 |
説明
define overlayディレクティブは、セクションの指定セットを定義します。define blockディレクティブとは対照的に、overlayディレクティブは、同じ名前を複数回定義できます。各定義は、同じ名前の他のすべての定義と同じメモリ内の場所にまとめることができます。これにより、複数の独立したサブアプリケーションをもつアプリケーションで利用できる、overlaidメモリエリアが作成されます。
各サブアプリケーションイメージをROMに配置し、すべてのサブアプリケーションを保持するRAMオーバレイエリアを予約します。サブアプリケーションを実行するには、まずROMからRAMオーバレイにサブアプリケーションをコピーします。
注記
ILINKでは、オーバレイ間での参照に関して生成される診断メッセージ以外で、相互依存するオーバレイ定義の管理に関するサポートはありません。
オーバレイのサイズは、そのオーバレイ名で定義されている最大サイズと同じサイズになり、アライメント要件は、アライメント要件が最高の定義と同じになります。
注記
オーバレイされたセクションは、RAMおよびROMパートに分割する必要があるため、必要なすべてのコピーに注意する必要があります。
警告
オーバレイされたメモリ領域のコードはデバッグできません。C-SPY Debuggerがどのコードをロードしているか決定できないからです—