μITRON導入支援プログラム
μITRONトレーナ Cmtoy V3.04

●はじめに
μITRON仕様OSの動作を確認するためのWindows上のシミュレータです。
シミュレーションの技法を考えることにも興味がありますが、それだけでなくWindows上でμITRON仕様OSを
理解するための トレーニングツール(Cmtoy)としてどのようなことができるかにも興味があり創めました。
μITRON上で動作するサンプルプログラムをCmtoy上で動作させタスク、割り込みハンドラの関連する動きを
確認できます。また、Microsoft Visual C++ 2005 Express Edition, Microsoft Visual Studio6.0、
Borland C++などのDLLを作成する開発環境があればサンプルプログラムを変更して動作の違いを確認できます。
このようにプログラムの動きを確認しながらOSの役割や機能を理解するツールとして考えています。


● Cmtoyの概要
Cmtoyは、Windowsアプリケーションであり以下のモジュールから構成されています。

Cmtoy.exe               - GUI（Windowsダイアログアプリケーション）
cm.dll                  - C-Machine（ターゲットハードウェアをシミュレート）
kpdll.dll               - μITRONカーネルをシミュレート
app.dll                 - μITRON上のアプリケーション
ActiveXコントロール     - ボタン、LED、A/Dコンバータなどのデバイスをシミュレート

これらは、同一プロセス内で実行されるプログラムです。ユーザはμITRON上のアプリケーションをC言語で
記述して、DLL形式の実行モジュールとして作成します。

● ダウンロード
ZIP形式のファイルをホームページhttp://cmtoy.jp/cmtoy/index.htm
からダウンロードして解凍してください。 PDF形式の解説書が含まれているので参考にしてください。
これに含まれているサンプルアプリケーション（app.dllなど）はMFCを使用しないDLLのリリースバージョン
としてビルドしています。

動作環境は、Windows 98SE/ME/2000/XP/Vista/Windows10/Windows11です。
XP以前のOSの場合は、マイクロソフトの再頒布可能ファイルMSVCP60.DLLが必要ですので、
マイクロソフトのサイトまたはhttp://cmtoy.jp/cmtoy/index.htmから
ダウンロードしてください。

●プログラム開発環境
Visual Studio6.0
Borland C++(Cmtoy V2.00では動作確認をしていない）
Microsoft Visual C++ 2005 Express Edition
Microsoft Visual C++ 2008 Express Edition
Microsoft Visual C++ 2010 Express Edition
Visual Studio 2017
Visual Studio 2019
Visual Studio 2022
Visual Studio 2026
があればサンプルプログラムを変更して実行できます。

●ファイル構成
ダウンロードしたファイルCmtoy_V200.zipを解凍すると以下の構成となります。

cmtoy\
    doc\
        Cmtoy_V300.pdf      解説書
    bin\
        Cmtoy.exe           Cmtoyの実行モジュール
        cm.dll              C-Machineの実行モジュール
        kpdll.dll           μITRONカーネルの実行モジュール
	cminit.cms          Cmtoy起動時に自動的に実行するスクリプト・ファイル
        app1.dll            μITRONアプリケーション（以下のstep1ディレクトリ内にソースがある）
        app2.dll            μITRONアプリケーション（以下のstep2ディレクトリ内にソースがある）
        app3.dll            μITRONアプリケーション（以下のstep3ディレクトリ内にソースがある）
        app4.dll            μITRONアプリケーション（以下のstep4ディレクトリ内にソースがある）
        app5.dll            μITRONアプリケーション（以下のstep5ディレクトリ内にソースがある）
        app6.dll            μITRONアプリケーション（以下のstep6ディレクトリ内にソースがある）
        puch.ocx            ボタンをシミュレートするActiveXコントロール
        segled.ocx          LED表示器をシミュレートするActiveXコントロール
        serial.ocx          シリアルポートをシミュレートするActiveXコントロール
 	led.ocx	            LEDランプをシミュレートするActiveXコントロール
        install.bat         ActiveXコントロール登録用バッチファイル
        uninstall.bat       ActiveXコントロール登録解除用バッチファイル
        REGSVR32.EXE        ActiveXコントロール登録ユーティリティ
  	step2_mem.txt       step2で使用するターゲット・メモリを定義するスクリプト・ファイル
	script_sample\      各種スクリプトの例
    	sample\		    プログラム例①の実行ファイル、スクリプトファイル
	memory\		    プログラム例②の実行ファイル、スクリプトファイル
	16550\		    プログラム例③の実行ファイル、スクリプトファイル
    include\                アプリケーションがインクルードするヘッダファイル
        hal.h               C-Machineの機能を使うためのヘッダファイル
        hal_uart.h          16550相当のシリアル機能を使うためのヘッダファイル
 	hal_systembus.h     バスオペレーションをサポートするためのヘッダーファイル（V3,03で追加）       	itron.h		    μITRONのC言語インタフェースを定義したヘッダファイル
        kernel_cfg.h	    μITRONのコンフィグレーションで使用するヘッダファイル
        kernel_id.h	    μITRONの機能に関する定義をしたヘッダファイル
    LIB\                    アプリケーションがリンクするライブラリファイル
        cm.lib              VisualStudio6.0が生成したインポートライブラリ
        kpdll.lib           VisualStudio6.0が生成したインポートライブラリ
        2omf.bat            cm.lib,kpdll.libをOMF形式に変換するバッチファイル
    tools\
	cmtoy_700.ht        ハイパーターミナル定義ファイル（ポート700用）
	cmtoy_701.ht        ハイパーターミナル定義ファイル（ポート701用）
	cmtoy_702.ht        ハイパーターミナル定義ファイル（ポート702用）
    mITRON\                 μITRON用サンプルプログラム
	sample\		    プログラム例① タスクと割込みハンドラの例のソースプログラム
	    kernel_cfg.c        μITRONコンフィギュレーションファイル
	    Test.c              サンプルタスク
	    sample.c            サンプルタスク、割込みハンドラなど
	    debug.c             シリアルポートを使ったデバグ出力
	    app\
		app.dsw         app.dllを作成するVisualStudio6.0のワークスペースファイル
	        app.mke         VisualStudio6.0がイクスポートしたメイクファイル
	        Makefile.bcc    Borland C++ Compiler 5.5付属のmake用メイクファイル例
	        StdAfx.h        VisualStudio6.0のAppWizardが生成したファイル
	        StdAfx.cpp      VisualStudio6.0のAppWizardが生成したファイル
	        app.cpp         VisualStudio6.0のAppWizardが生成したファイル
	    app_08\
		app.sln	    	app.dllを作成するVisual C++ 2008 Express Editionのソリューションファイル
	    app_17\
		app.sln	    	app.dllを作成するVisual Studio 2017 Professionalのソリューションファイル
	    bccapp\
	        bccapp.bdp      BCC Developperのプロジェクトファイル
	sample_memory	    プログラム例② ターゲットメモリの例のソースプログラム
	sample_16550\       プログラム例③ 16550制御例のソースプログラム
	step1\              チュートリアルサンプルapp1.dllのソースプログラム
	    app1\
		app.dsw		app1.dllを作成するVisualStudio6.0のワークスペースファイル
	        StdAfx.h        VisualStudio6.0のAppWizardが生成したファイル
	        StdAfx.cpp      VisualStudio6.0のAppWizardが生成したファイル
	        app.cpp         VisualStudio6.0のAppWizardが生成したファイル
	    app1_08\
		app.sln		app1.dllを作成するVisual C++ 2008 Express Editionのソリューションファイル
	    app1_17\
		app.sln		app1.dllを作成するVisual Studio 2017 Professionalのソリューションファイル
	    app_19\		V3.02でソリューションファイルを分離
		app.sln		app.dllを作成するVisual Studio 2019 Professionalのソリューションファイル
	    app_22\		V3.02でソリューションファイルを分離
		app.sln		app.dllを作成するVisual Studio 2022 Professionalのソリューションファイル
	    app_26\		V3.02でソリューションファイルを分離
		app.sln		app.dllを作成するVisual Studio 2026 Professionalのソリューションファイル
	step2\              チュートリアルサンプルapp2.dllのソースプログラム
 	step3\              チュートリアルサンプルapp3.dllのソースプログラム
	step4\              チュートリアルサンプルapp4.dllのソースプログラム
	step5\              チュートリアルサンプルapp5.dllのソースプログラム
	step6\              チュートリアルサンプルapp6.dllのソースプログラム


●インストール方法
まず、ActiveXコントロールを登録します。コマンドプロンプト（DOS窓）を管理者モードで開き、
カレントディレクトリをcmtoy\binに変更し、install.batを実行すると登録できます。
以下のようなログがコマンドプロンプトウィンドウに表示されます。
(D:\cmtoy-300\に解凍したとします）

 D:\cmtoy-300\bin>install
 D:\cmtoy-300\bin>regsvr32 -s push.ocx
 D:\cmtoy-300\bin>regsvr32 -s segled.ocx
 D:\cmtoy-300\bin>regsvr32 -s serial.ocx
 D:\cmtoy-300\bin>regsvr32 -s led.ocx
 D:\cmtoy-300\bin>

XP以前のOSの場合は、MSVCP60.DLLをcmtoy\binにコピーしてから実行してください。

これらのActiveXコントロールの登録を解除したい場合は、付属のuninstall.batを実行してください。

ActiveXコントロールが登録されていなかったり、登録後フォルダ名を変えたり、フォルダを移動すると
Cmtoy.exeは起動しませんので、再度install.batを実行してください。

●操作方法
docフォルダにあるPDF形式の解説書を参考にしてください。

●問合せ先
contact@cmtoy.jp

●ホームページ
https://cmtoy.jp/index.htm

●履歴
V1.06		2007,5,22
V2.00		2019,4,1
V2.00b		2019,7,1
V2.00c		2019,10,1
V3.00		2023,3,1	コマンド／スクリプト機能の実装見直し、機能追加
V3.01		2024,4,30	タイマスケールを変更するとSW0-3のチェックがOFFとなるバグの修正
V3.02		2026,2,1	ヘルプ機能の修正。ソートしたヘルプのコマンドの説明がずれていた。
V3.03		2026,4,1	コンソール・コマンドdefine_mem,set_interrupt_name,set_switch_nameに機能を追加。
				コンソール・コマンドset_titleの修正。
				定義済み関数型マクロ@strcmpを追加。
				C-Machineの機能にhalDebugSetTitleを追加
				includeファイルhal_systembus.hを追加
				debug.c	CLIコマンドの追加、修正。μITRONチュートリアル「ステップ2」を参照
				mITRON\sample\ の修正。	mITRON\sample_memory\ の修正。
				解説書の見直し。
V3.04		2026,7,15	コンソール・コマンドset_shortcut_name,set_editorを追加。
				コマンド・ショートカットF3,F4のバグの修正
				解説書の間違いを修正、追記



Copyright (C) 2002-2026 佐々木芳. All Rights Reserved.
