注意 : このページに載っている情報は、TOPPERSプロジェクト非公認です。ページ上の情報に関して不明な点があっても、決してTOPPERSプロジェクトの公式メーリングリストで聞くとかしないでください。


概要

TOPPERS/JSP Windowsシミュレータについてくる「デバイスエミュレーション機能」は、Windows上で実機のエミュレーション環境が作れたらいいなぁという妄想を一部具象化するための機能です。TOPPERS/JSPカーネル内のプログラムと外部で起動しているデバイスプログラム間を接続し、カーネルが持つ専用API(sil_rea_mem/sil_wri_mem:ITRONデバイスドライバ設計ガイドラインのに準拠)を介した相互通信、外部からの割込み要求、カーネル動作ログの取得を補佐します。


デバイスマネージャの導入

デバイスマネージャは、次の3つのプログラムから成ります。

全てのプログラムが正常にインストール/設定されていないと、デバイスエミュレーション機能は正常に動作しません。次の手順に従って、プログラムをインストール/設定してください。


TOPPERS/JSPカーネルの設定

TOPPERS/JSPカーネル (Windowsシミュレーション環境)では、デバイスエミュレーション機能は取り外し可能になっています。そのため、まずは同機能が有効になっているかどうかを確認し、必要に応じて設定を行う必要があります。

設定は、jsp/config/windows/sys_defs.hで行います。同ヘッダファイル中にあるDEVICE_ENABLEという定義が有効になっていれば、デバイスエミュレーション機能を使用することができます。もしコメントアウトされた状態になっている場合、コメントを外してDEVICE_ENABLEが定義されるように修正してください。

jsp/config/windows/sys_defs.h
/* デバイスエミュレーション機能を使用するかどうか */
#define DEVICE_ENABLE

次に、TOPPERS/JSP release 1.3のソースには一部誤りがあるので、それを修正します。jsp/config/windows/device_com.cppを開き、下記の修正を加えます。

device_com.cpp:192行付近
::DispatchMessage(msg);
::DispatchMessage(&msg);

カーネル側はこれで修正完了です。


デバイスマネージャのインストール

次にデバイスマネージャをインストールします。デバイスマネージャをインストールするには、まず、jsp/windev/devicemanagerにあるソースをビルドします。ビルド方法に関しては割愛します。ビルドが成功すると、devicemanagerディレクトリに次のファイルが生成されているはずです。

これらのファイルが生成されていることを確認したら、コマンドプロンプトを立ち上げ、devicemanager.exeのあるディレクトリに移動し、次のコマンド(太字部)を実行します。

デバイスマネージャの登録
C:\home\takayuki\jsp\windev\devicemanager\Debug> devicemanager /REGSERVER
C:\home\takayuki\jsp\windev\devicemanager\Debug> cd ..
C:\home\takayuki\jsp\windev\devicemanager> regsvr32 devicemanagerps.dll

成功すると、「devicemanagerps.dllのDllRegisterServerは成功しました。」という旨のダイアログが出ます。最初のコマンドから返ってこない場合や、ダイアログが出ない場合は、プログラムがちゃんと生成されているかどうか/ディレクトリが正しいかどうかをチェックしてください。


デバイス用 VisualBASIC OCXコントロールのインストール

次にデバイス用VisualBASIC OCXコントロールをインストールします。同コントロールをインストールするには、まずjsp/windev/devicecontrolにあるソースをビルドします。ビルドが成功すれば、jsp/windev/devicecontrol/Debug(※)/device.dllが生成されているはずです(※ Release または ReleaseUMinDependency などの場合もあります)

OCXコントロールの登録
C:\home\takayuki\jsp\windev\devicecontrol\Debug> regsvr32 device.dll

成功すると、「device.dllのDllRegisterServerは成功しました。」という旨のダイアログが出ます。

これでインストールは完了です。


デバイスチェッカー

「動きません」とおっしゃる方が多いので、チェッカープログラムを作りました。下のプログラムを取得して、実行してください。問題が無ければ「正常に動いている」というメッセージが出ます。

エラーメッセージが[IKernel:x][IDevice:x]だった場合、ほとんどはデバイスマネージャのインストールに失敗しているケースのようです。もう一度デバイスマネージャのインストールを参照してやり直してください。またエラーメッセージが[IDeviceControl:x]だった場合は、OCXコントロールの登録に失敗しています。もう一度デバイス用 VisualBASIC OCXコントロールのインストールを参照してやり直してください。


FAQ