■プログラミングが楽になるリアルタイムOS

マイコンで並行処理をさせるとき、プログラムを見通し良く記述する手助けにリアルタイムモニタを作るというやり方があった。約20年前、ITRONが登場してReal Time OS(RTOS)と言う言葉が一般的になり、リアルタイムモニタもRTOSと総称されるようになった。

通信をしながらスイッチが押されたかどうかの状態を見るなど、非同期に発生する複数の仕事を実行するプログラムの記述は煩わしいものである。たとえば、関数の深くネストしたところで、外部割込みを待つ時など、他の作業に移るには、関数の深いところから何回もリターンをくり返すことになる。このようなプログラムは非常に見通しの悪いものになる。

関数の深くネストしたところで、他の作業の関数が走ってくれればどんなに良いかと思う。このようなとき、 wai_tsk(); と記述すると待ち状態に入って、他の作業の関数が走り、割り込み処理の中で wup_tsk(); などと記述すると元の関数がwai_tsk(); からリターンして再び走ってくれるのである。この、待つ wai_tsk、起こす wup_tsk という便利な関数(システムコールという)を提供してくれるのがRTOSである。

さらに、起こされるまで待つのではなく、10秒間待つ wai_tsk(1000); というタイマー機能など様々な機能を提供してくれるので、プログラミングやデバッグが大変にやりやすくなる。



■MtOSの特徴

RTOSを使用した環境と、そうでない環境とでのプログラミングは天地ほどの差があるといってよい。RTOSを使わない手はないであろう。

一方、RTOSは購入すると、●コストが高くなる、●ブラックボックスなので不具合時のデバッグが難しい、●不要な機能が多い、●使い込むのに時間がかかる、●マイコンを変更したら使えない、などの不満がある。私自身もその一人であった。このようなことがRTOSを手作りする動機になった。

MtOSは身近なマイコン、主としてワンチップマイコンを対象に、最低限の機能だけをシンプルに実現した。ほとんどの組込みマイコンシステムはそれで事足りるのである。したがって、ソースプログラムを読む事態に直面しても何とかなるし、マイコンに依存するカーネルのごく一部を書き換えれば他のマイコンでも使えるようになる。逆に言うとMtOSを使う人はそのくらいを理解するレベルにまで踏み込んで頂きたい。

MtはMount(山)である。私の名前の一部であり、自宅から周囲の山々がきれいなことから名付けた。ネットで流通している MTOS(Movable Type Open Source) とはまったく関係ない。


■保証、使用範囲、版権

MtOSの動作保証はしない。MtOSの使用は趣味の範囲とし、変更は自由である。むしろ好きなように変更して勉強して頂きたい。ただし、変更したプログラムを配布するときはMtという文字は外すこと。

仕事で(商売で)MtOSを使うことは止めて頂きたい。動作保証できない理由もあるが、雑誌記事や講習会の教材、ネットで流れている情報から引用した部分がある。それらは版権を放棄しているとは限らない。MtOSのソースプログラムを参考にしてご自身の責任でプログラムを作って頂きたい。


戻る