μITRON(マイクロアイトロン)
サンプルプログラム
実際にサンプルプログラムを使って説明します。
サンプルプログラム
個々では、μITRONを使ったプログラムが実際にどの様に動作するかを簡単に説明します。
下記はとあるシステムの1つのタスクのメインプログラムです。

■サンプルプログラムの簡単なPADです。

今回のサンプルプログラムの場合
●タスクは起動すると初期処理を行い、メール待ち状態になります。
80行目:ercd = rcv_mbx(CAL_MBX, (T_MSG**)&pstReceiveMail);
メール待ちの関数が「rcv_mbx()」となっています。
これがμITRONで定義されているAPIです。
これはメールメッセージ管理機能を使用しています。
別のOSでもμITRON準拠のOSならば、メール待ちの関数は同じなので、
移植した場合にも修正する必要がありません。
他のタスクからメールが通知されると、実行可能状態となります。
他に実行可能なタスクがない場合や、このタスクの優先順位の高い場合は、タスクは実行され、下記の処理を行います。
ただし、このタスクが現在実行中のタスクより優先順位が高い場合は、すぐに実行されますが、
低い場合は、優先順位の高いタスクが待ち状態になるまで、実行可能状態となります。
このタスクの動作の切り替えや判断は、OSが行いますので、プログラマは意識する必要はありません。
●起床した場合は、その要因(内容)によって処理を行います。
各処理下記の動作が終わり、再度メール待ち状態になります。
タスクのメインプログラムには return 命令はありません。処理が終了すると、タスクは常に起床待ちになります。
