リンカ設定ファイルの概要
以下のページに目を通す前に、セクションのコンセプトについて知っておく必要があります。「モジュールおよびセクション」を参照してください。
要件に合わせてメモリのアプリケーションをリンクおよび配置するため、ILINK には、セクションを扱う方法、および使用できるメモリエリアにセクションを配置する方法に関する情報が必要です。つまり、ILINKには、リンカ設定ファイルにより渡される設定が必要です。
このファイルは、一連のディレクティブで構成され、通常、以下のことを行います。
ビルドタイプの宣言
ビルドが従来のROMシステム用かRAMシステム用かをリンカに通知し、異なるメモリ領域に適切なセクションのみが配置されているかをリンカがチェックできるようにします。
使用できるアドレス可能メモリを定義する
可能なアドレスの最大サイズに関するリンカ情報を提供し、使用可能な物理メモリを定義します。また、さまざまな方法でのアドレスが可能なメモリを扱います。
ROMまたはRAMの使用可能メモリエリアを定義する
各領域の開始および終了アドレスを提供します。
セクショングループ
セクション要件に従ってセクションをブロックまたはオーバレイにグループ化する方法を扱います。
アプリケーションの初期化を扱う方法を定義する
初期化されるセクションに関する情報、およびその初期化の方法に関する情報を提供します。
メモリ割当て
セクションの各セットが配置されるメモリエリアを定義します。
シンボル、式、数値の使用
アドレスやサイズなどを他の設定ディレクティブで表現します。シンボルは、アプリケーション自体でも使用できます。
構造化構成
条件に応じてディレクティブを含める、または除外し、設定ファイルをいくつかの異なるファイルに分割できます。
名前の特殊文字
シンボルまたはセクションの名前に識別されない文字を使用するときは、バック クオテーションで名前を囲みます。例:
‘My Name‘.
コメントは、Cコメント(/*...*/)またはC++コメント(//...)のいずれかとして記述できます。
Using special characters in identifiers
To specify a user-defined identifier in a linker configuration file—for example, a symbol name, section name, region name, etc.—you have two options:
as a plain string, for example
define symbol fooas a string in backticks, for example
define symbol `foo symbol`
In section selectors you can also use double quotes, for example object "foo.o".
Strings within backticks can contain whitespace and other special characters. To use an actual backtick in a string, you can escape it with another backtick. For example, define symbol `it``s` will parse into a symbol named it`s. Backslash (\) is not an escape character in linker configuration files.
Escaping a double quote in a string within double quotes works in the same fashion. For example, include "foo"".icf" will escape the "" in the middle into a single ", making the linker look for a file named foo".icf.