Windows版iTRONサービスコールの作成
(機能紹介)
組み込みソフトウェアで利用されているOS「iTRON」のサービスコールをWindows上で動作させるためのライブラリです。
iTRONのサービスコールをWindowsのAPIを利用してシュミレートしています。
iTRONのVer3.0とVer4.0のサービスコールに対応しました。
一応それらしい動作はするように作ったつもりですが、仕様とは違う動作をするかもしれません。
「最終的には実機で確認するし、机上デバッグでは、それなりに動作すれば十分」という方はご利用してみてください。
- 本ソフトウェアを利用して発生した、いかなる損害も、作者および、その関係団体は責任を負いません。
- 作者および、その関係団体は、本ソフトウェアに対する不具合の改修および、機能改善のためのバージョンアップの義務を負いません。
- 作者および、その関係団体は、本ソフトウェアに対する、いかなるサポートの義務を負いません。
- 本ソフトウェアの一部または全部を再配布するときは、事前に作者の許可が必要です。
iTRONで提供されるサービスコールには以下のような機能があります。
機能 | 説明 |
---|---|
タスク管理機能 | |
タスク付属同期機能 | |
タスク例外処理機能 | タスクの例外処理の実行を管理します。(本ライブラリではサポートしません。) |
同期・通信機能 | |
同期・通信機能 | |
同期・通信機能 | |
同期・通信機能 | |
拡張同期・通信機能 | |
拡張同期・通信機能 | |
拡張同期・通信機能 | |
メモリプール管理機能 | |
メモリプール管理機能 | |
時間管理機能 | |
時間管理機能 | |
時間管理機能 | |
時間管理機能 | オーバーラン・ハンドラの管理を行います。(本ライブラリではサポートしません。) |
割込み管理機能 | |
システム管理機能 | システム状態の参照・変更を行います。 |
サービスコール管理機能 | 拡張サービスコールの管理を行います。(本ライブラリではサポートしません。) |
本ライブラリではデフォルトでVer4.0としてコンパイルするようになっています。
Ver3.0で利用する場合、コンパイルスイッチに __ITRON3__ を指定してください。
または、『wi_config.h』でコメントアウトしている「#define __ITRON3__」を有効にしてください。
#define __ITRON3__ //!< Ver3.0
#ifndef __ITRON3__
#ifndef __ITRON4__
#define __ITRON4__ //!< Ver4.0
#endif // __ITRON4__
#endif // __ITRON3__
本ライブラリでは『タスク管理機能』でターゲット・プログラムから生成されるスレッドとは別に、以下のスレッドを生成しています。
- 割り込みハンドラを呼び出すためのスレッド。
- 周期起動ハンドラおよびアラームハンドラを呼び出すためのタイマ用スレッド。
- サービスコール内で実行できない処理を実行する為のシステム管理スレッド。
本ライブラリを使用するアプリケーションは、Windows上の他のアプリケーションの動作を極力妨げないように、プロセスの実行レベルを通常のアプリケーションより下げています。
本ライブラリではマルチスレッドによるサービスコール内部情報の不整合を防ぐ為にWindowsのミューテックス機能を利用して排他制御を行っています。
排他制御を簡単に行う為に、基本的に全てのサービスコールの呼び出し時にミューテックスをロックし、サービスコールの実行完了時にアンロックを行います。
サービスコールによっては、タスクの実行順序が実機での実行順序と違う場合がありますので注意してください。
本ライブラリでは、ユーザープログラムを起動するために、iTRONのタスクを優先度『1』で生成して、そのタスクから以下のユーザープログラムを呼び出しています。
void startup_target( void )
ご利用になられる方は、ご自分で作られた起動処理の関数名を上記の形式に合わせるか、ライブラリ側の呼び出しをご自分の関数に合わせるように変更するかしてください。