2.7.2 オーバーレイ・セクションの選択機能を使用するための準備をする

CC-RLが使用する最適化リンカ(rlink)では,プログラム中に定義した複数のセクションを同じアドレスに割り付けることができます。このように割り付けられたセクションを“オーバーレイ・セクション”と呼びます。

同じアドレスに割り付けられたセクションのうち,デバッグ対象とするオーバーレイ・セクション(優先セクション)を選択する機能はデバッグ・ツールが提供しています。この機能を“オーバーレイ・セクションの選択機能”と呼びます。

オーバーレイ・セクションを設定したロード・モジュールは,プログラム実行前に優先セクションを切り替えてデバッグすることが可能になります。

オーバーレイ・セクションの選択機能を実現するための,ロード・モジュールの作成方法を以下に示します。

(1)

ROM領域の内容をRAMにコピー

ROM領域の内容をRAM領域にコピーすることにより,コードやデータをRAM上へ展開します。

(2)

ビルド・オプションの設定

オーバーレイ・セクションの選択機能に対応するため,ROMからRAMへマップするセクション,およびオーバーレイ・セクションを設定します。

プロジェクト・ツリーでビルド・ツール・ノードを選択し,プロパティ パネル[リンク・オプション]タブを選択します。

(a)

ROMからRAMへマップするセクションの設定

ROMからRAMへマップするセクションの設定は,[セクション]カテゴリの[ROMからRAMへマップするセクション]プロパティで行います。

これにより,ROMセクションと同サイズのRAMセクションを確保し,ROMセクション内定義シンボルをRAMセクション上のアドレスでリロケーションします。

図 2.38

[ROMからRAMへマップするセクション]プロパティ

 

[...]ボタンをクリックすると,テキスト編集 ダイアログがオープンします。

図 2.39

テキスト編集 ダイアログ

 

[テキスト]にセクション名を「ROMセクション名=RAMセクション名」の形式で1行に1つずつ入力します。

1行に32767文字まで,65535行まで指定可能です。

[OK]ボタンをクリックすると,入力したセクション名がサブプロパティとして表示されます。

図 2.40

[ROMからRAMへマップするセクション]プロパティ(セクション設定後)

 

セクション名の変更は,[...]ボタン,またはサブプロパティのテキスト・ボックスへの直接入力により行うことができます。

(b)

ROMセクション,RAMセクション(オーバーレイ・セクション)の設定

セクションの設定は,[セクション]カテゴリの[セクションの開始アドレス]プロパティで行います。

図 2.41

[セクションの開始アドレス]プロパティ

 

<1>

ROMセクションの設定

[...]ボタンをクリックすると,セクション設定 ダイアログがオープンします。

図 2.42

セクション設定 ダイアログ

 

[追加...]ボタンをクリックすると,セクションのアドレス ダイアログがオープンします。

図 2.43

セクションのアドレス ダイアログ

 

[アドレス]に追加したいROMセクションのアドレスを入力し,[OK]ボタンをクリックすると,入力したアドレスがセクション設定 ダイアログの[アドレス]に追加されます。

図 2.44

セクション設定 ダイアログ(ROMセクションのアドレス追加後)

 

追加されたアドレス行のセクション欄をクリックしたのち,[追加...]ボタンをクリックすると,セクション追加 ダイアログがオープンします。

図 2.45

セクション追加 ダイアログ

 

[セクション名]に追加したいROMセクション名を入力し,[OK]ボタンをクリックすると,入力したセクションがセクション設定 ダイアログの[セクション]に追加されます。

図 2.46

セクション設定 ダイアログ(ROMセクション追加後)

 

他のROMセクションについても同様に,アドレスとセクション名の設定を行います。

備考

アドレス欄をクリックしたのち,[追加...]ボタンをクリックすると,セクションのアドレス ダイアログがオープンし,新しいアドレスを追加することができます。

図 2.47

セクション設定 ダイアログ(複数ROMセクション追加後)

 

<2>

RAMセクション(オーバーレイ・セクション)の設定

追加済みのアドレスをクリックしたのち,[追加]ボタンをクリックすると,セクションのアドレス ダイアログがオープンします。

図 2.48

セクションのアドレス ダイアログ

 

[アドレス]に追加したいRAMセクションのアドレスを入力し,[OK]ボタンをクリックすると,入力したアドレスがセクション設定 ダイアログの[アドレス]に追加されます。

図 2.49

セクション設定 ダイアログ(RAMセクションのアドレス追加後)

 

追加されたアドレス行(アドレス欄,またはセクション欄)をクリックしたのち,[複数割り付け...]ボタンをクリックすると,オーバーレイ配置セクションの追加 ダイアログがオープンします。

図 2.50

オーバーレイ配置セクションの追加 ダイアログ

 

[セクション名]に追加したいRAMセクション名を入力し,[OK]ボタンをクリックすると,入力したセクションがセクション設定 ダイアログの[セクション]に追加されます。

図 2.51

セクション設定 ダイアログ(RAMセクション追加後)

 

同一アドレスに配置するセクションについても同様に,[複数割り付け...]ボタンで追加します。

追加したセクションは,[オーバーレイn](n:1で始まる数字)に表示されます。

図 2.52

セクション設定 ダイアログ(オーバーレイ・セクション追加後)

 

他のRAMセクションについても同様に,アドレスとセクション名の設定を行います。

備考

アドレス欄をクリックしたのち,[追加...]ボタンをクリックすると,セクションのアドレス ダイアログがオープンし,新しいアドレスを追加することができます。

図 2.53

セクション設定 ダイアログ(複数RAMセクション追加後)

 

[OK]ボタンをクリックすると,設定したROMセクション,RAMセクション(オーバーレイ・セクション)がテキスト・ボックスに表示されます。

図 2.54

[セクションの開始アドレス]プロパティ(セクション設定後)

 

(3)

プロジェクトのビルドの実行

プロジェクトのビルドを実行します。

オーバーレイ・セクションの選択機能を実現するためのロード・モジュール・ファイルが生成されます。