CC-RHが使用する最適化リンカ(rlink)では,プログラム中に定義した複数のセクションを同じアドレスに割り付けることができます。このように割り付けられたセクションを“オーバーレイ・セクション”と呼びます。
オーバーレイ・セクションの選択機能を実現するための,ロード・モジュールの作成方法を以下に示します。
ROM領域の内容をRAM領域にコピーすることにより,コードやデータをRAM上へ展開します。
オーバーレイ・セクションの選択機能に対応するため,ROMからRAMへマップするセクション,およびオーバーレイ・セクションを設定します。
プロジェクト・ツリーでビルド・ツール・ノードを選択し,プロパティ パネルの[リンク・オプション]タブを選択します。
ROMからRAMへマップするセクションの設定は,[セクション]カテゴリの[ROMからRAMへマップするセクション]プロパティで行います。
これにより,ROMセクションと同サイズのRAMセクションを確保し,ROMセクション内定義シンボルをRAMセクション上のアドレスでリロケーションします。
[...]ボタンをクリックすると,テキスト編集 ダイアログがオープンします。
[テキスト]にセクション名を「ROMセクション名=RAMセクション名」の形式で1行に1つずつ入力します。
[OK]ボタンをクリックすると,入力したセクション名がサブプロパティとして表示されます。
セクション名の変更は,[...]ボタン,またはサブプロパティのテキスト・ボックスへの直接入力により行うことができます。
セクションの設定は,[セクション]カテゴリの[セクションの開始アドレス]プロパティで行います。
[...]ボタンをクリックすると,セクション設定 ダイアログがオープンします。
[追加...]ボタンをクリックすると,セクションのアドレス ダイアログがオープンします。
[アドレス]に追加したいROMセクションのアドレスを入力し,[OK]ボタンをクリックすると,入力したアドレスがセクション設定 ダイアログの[アドレス]に追加されます。
追加されたアドレス行のセクション欄をクリックしたのち,[追加...]ボタンをクリックすると,セクション追加 ダイアログがオープンします。
[セクション名]に追加したいROMセクション名を入力し,[OK]ボタンをクリックすると,入力したセクションがセクション設定 ダイアログの[セクション]に追加されます。
他のROMセクションについても同様に,アドレスとセクション名の設定を行います。
アドレス欄をクリックしたのち,[追加...]ボタンをクリックすると,セクションのアドレス ダイアログがオープンし,新しいアドレスを追加することができます。 |
追加済みのアドレスをクリックしたのち,[追加]ボタンをクリックすると,セクションのアドレス ダイアログがオープンします。
[アドレス]に追加したいRAMセクションのアドレスを入力し,[OK]ボタンをクリックすると,入力したアドレスがセクション設定 ダイアログの[アドレス]に追加されます。
追加されたアドレス行(アドレス欄,またはセクション欄)をクリックしたのち,[複数割り付け...]ボタンをクリックすると,オーバーレイ配置セクションの追加 ダイアログがオープンします。
[セクション名]に追加したいRAMセクション名を入力し,[OK]ボタンをクリックすると,入力したセクションがセクション設定 ダイアログの[セクション]に追加されます。
同一アドレスに配置するセクションについても同様に,[複数割り付け...]ボタンで追加します。
追加したセクションは,[オーバーレイn](n:1で始まる数字)に表示されます。
他のRAMセクションについても同様に,アドレスとセクション名の設定を行います。
アドレス欄をクリックしたのち,[追加...]ボタンをクリックすると,セクションのアドレス ダイアログがオープンし,新しいアドレスを追加することができます。 |
[OK]ボタンをクリックすると,設定したROMセクション,RAMセクション(オーバーレイ・セクション)がテキスト・ボックスに表示されます。