Renesas



Section1
Section2
Section3
Section4
Section5




SH-2AとSH2A-DUALの機能紹介と効率アップの ワンポイントアドバイス

3. SH2A-DUAL開発環境のご紹介

ここではSH2A-DUALコア用の開発環境について紹介します。
最初はC/C++コンパイラですが、現在SH-2Aをお使いの方、または他のSuperHファミリをお使いの方は、既存のものが利用可能です。C/C++コンパイラのVer.9以降であれば、マルチインストールと言う、1台のパソコンに複数のルネサス統合開発環境をインストールする機能を持っていますから、Ver.9以降であれば、そのままSH2A-DUALに対応可能です。

次にITRON仕様のOSですが、もし、SH2A-DUAL専用のものが必要ならば、HI7200/MPをご用意頂くことになります。その特長はAMP方式のOSであることです。HI7200/MPであれば、一方のOSが管理しているタスクを別のOSが管理しているタスクから、動作させることが可能となります。

最後はエミュレータです。SH2A-DUALにはSH-2AのCPUが2個搭載されています。従って、1台のエミュレータから2つのCPUのエミュレーションを行わなければならないため、エミュレータはSH2A-DUAL専用のエミュレータをご用意頂くことになります。

それではSH2A-DUALの開発環境のイメージを紹介します。
デュアルコアなのでルネサス統合開発環境は2つ起動して頂くことになります。つまり、CPU0用とCPU1用の2つのワークスペースを異なるルネサス統合開発環境で同時に起動します。

ただし、この2つの統合開発環境から接続するエミュレータは1つです。2つのCPUが個別に存在するのではなく、SH2A-DUALは1つのパッケージに2つのSH-2AのCPUが搭載されています。従って、エミュレータとSH2A-DUALを搭載したターゲットは1つと言うことになります。

それではワークスペースの立ち上げから、エミュレータ接続までの流れをイメージ図で紹介します。
初めに複数インストールしたルネサス統合開発環境を各々のアイコンを使って起動し、それぞれ異なるワークスペース、つまりCPU0用とCPU1用の2つのワークスペースを起動します。

この結果、1台のパソコンに2つのルネサス統合開発環境が実行されることになります。

次に、それぞれのワークスペースから1台のエミュレータへの接続を行います。まず、CPU0のワークスペースにあるターゲット接続のアイコンをクリックします。
そうするとCPUの種別を選択するダイアログが表示されますから、目的のCPUタイプのCPU0を選択し、「OK」を入力します。
そうするとターゲットシステムのリセットスイッチを押すことを要求されます。リセットスイッチを入力後、ダイアログを「OK」します。これでCPU0へのエミュレータの接続は完了です。

次に、CPU1をエミュレータに接続します。やはり、CPU1のワークスペースにあるターゲット接続のアイコンをクリックします。
そうするとCPUの種別を選択するダイアログが表示されますが、こちらは既にCPUの種別が選択された状態となっています。そのまま「OK」を入力してください。
そうすると既にCPU0接続時にリセットスイッチを入力しているため、CPU1はリセットスイッチを入力せずにエミュレータへの接続が完了します。

SH2A-DUAL用のエミュレータが一般エミュレータと異なる点は同期実行、同期ブレークの機能を持っていることです。2つのCPUが1つのパッケージの中に入っていますから、両CPUで同期を取った実行、及び同期を取ったブレークの機能が必要です。

初期状態は同期実行になっています。この状態では片方のCPUだけを実行しても動作しません。もう一方のCPUを実行すると、はじめて両方のCPUが動きます。

停止も同じです。どちらかのCPUを停止すれば、他方のCPUも自動的に止まります。


なお、このような同期実行はモーター制御等の時に困ることがあります。一方のCPUがモーター制御を行っている時に他方のCPUまで止めてしまうとモーターが強制停止して、破壊されてしまうことがあります。そこで同期実行、同期停止は解除できるようになっています。

同期制御を解除すれば、一方のCPUが停止しても、他方のCPUは動作したままとなります。
このようにSH2A-DUAL用のエミュレータは通常のエミュレータと異なり、同期実行、同期ブレークの機能を持っています。