(toppers-users 2657) Re: Windowsシミュレーション環境について

高橋和浩 takahashi_kazuhiro @ nifty.com
2007年 7月 27日 (金) 13:08:38 JST


アライブビジョンソフトウエアの高橋と申します。

H8でもVC++2005Expressでもありませんが、シミュレータ環境でJSPを動作させる方法
があるので、ご紹介します。有償のものは全くいりません。

M16CをRenesas製コンパイラで作り、HEW上のシミュレータデバッガで動かすというものです。
シリアル出力については、シミュレータデバッガにて出力ポートに指定してやることで
コンソール出力のように確認できます。

結構落とし穴?があるので、やり方のポイントのみ列挙します。

 m16c-renesas.txtを見た上で、以下参考にしてください。

1)ダウンロードは、1.4.2のS-JIS版を使います。
 EUC版は、Renesasコンパイラがエラーを出すようでした。
 1.4.3版は、utilsのプロジェクトファイルが壊れているようでした。
2)セルフコンパイラが必要
 cfgは、borlandC++55で Makefile.bccでビルドしたらできます。
  utils/m16c-renesas/は、VC++2005Expressで、リンカの追加依存ファイル
 指定を消してやれば、ビルドできます。

3)TMを使います
 NC30WA評価版とTMをrenesasサイトからダウンロードして
 インストールするときは、ツールチェーンをC:\MTOOLに指定します。
 m16c-renesas.txtの方法のうちTMでビルドします。
 NC30WA評価版のバージョンがあがったせいか、いくつかコンパイルエラー
 がでます。
  cpu_context.h
  VW *sp; の定義を
 union { 
    VW *spw;
    VH *sph;
    VB *spb;
 } sp; 
 に変えて、利用しているステートメントも変更します。
 makeoffset.c
  (INT)の左辺キャストを消してやるのと、1箇所
 (((TCB *)0)->tskctxb.sp) = (void *)((H)(((TCB *)0)->tskctxb.sp) | 1);
  に変更します。
 oaks16.h
  の oaks16_putc()でTXレディ待ちのWhileを削除、3aaポートに出力のみとします。
 sfruart.c
  のこれも同様にTXレディのif文をなくして、sil_wrb_mem()が常に実行されるようにします。

4)HEWのシミュレータ
 シミュレータデバッガーオンリーのプロジェクトを生成
 ロードモジュールは、 jsp14sample.x30 でrenesasのモジュールでダウンロード
 出力windowを 3aaHポートでテキスト指定でwindow幅に合わせます。
 周期クロックを入れるためにIOタイミング設定で、MR.IOSというファイルを
 読み込みます。タイムティックが周期的に発生します。
 MR.IOSがもし無ければ、PD30SIMという単体シミュレータをダウンロードすれば入っているはずです。

これで、動作するはずです。ただし、シリアルコンソールと違って、出力Windowは、実行停止しなければ
反映されません。適当に止めてみてください。 もしくは、RAMモニタで変数の変化をみることもできます。

この辺の作業メモをサイトにアップしようとして、怠けていますが、
http://alvs.dyndns.tv/~vcom/ に多少書いています。


-- 
アライブビジョンソフトウエア株式会社
高橋和浩
673-0031兵庫県明石市小久保2-2-7幹線ビル4F
Email:takahashi_kazuhiro @ nifty.com
http://homepage3.nifty.com/ALVS/