【PICROSとは?】
PICで少し複雑な処理をする時には、全体をループ処理にし、その間に割り込みや
フラグなどで状態を記憶させ、フラグの判定によって処理の流れを変えます。
従って多くの場合、非常に複雑なプログラムになってしまいます。
PICROSはこのようにやや複雑な処理をすっきりとさせ、処理の切替えの面倒を
見ることで、本来のプログラム処理だけに専念できるようにするためのものです。
PICROSは、このような時のためのオリジナルのPIC専用の簡易リアルタイムオペ
レーティングシステムです。
リアルタイムオペレーティングシステムとはいうものの出来る機能はかなり限定
されています。どちらかというとタスクスケジューラとでも言った方が良いかも知れ
ません。つまりデータ領域の管理もデバイスの管理も行いません。
PICで擬似的なリアルタイムマルチタスキングを実現するためのOSです。
OSといっても、もともと小さなワンチップマイコンであるPIC用ですから、基本的な
機能しかもっていません。
しかし、複数の割り込みを処理しながら、複数のタスクをスケジューリングすることが
出来ます。 PICで一寸複雑な機能をしたいときに便利です。
【特徴と機能】
1.対象PICはPIC16F87xシリーズとPIC18シリーズ
PICROSはMicrochip社のミッドレンジの代表であるPIC16F87xシリーズとハイエンド
のPIC18シリーズに対応している汎用のリアルタイムOSです。
2.言語はCCS社のC言語がベースになっています
CCS社Cコンパイラの専用組み込み関数を多用していますので、他のCコンパイラ
では使用できません。
各タスクもC言語で作成することを基本としています。
3.タスクは最大255個まで、タスクの状態遷移は割込みかサービス関数実行時
PICROSが扱えるタスク(処理単位)は最大255個で、任意の数で動かすことが出来
ます。
タスクの状態遷移は、割込み処理かタスクからのサービス関数実行により発生し、
実際にディスパッチが実行されるのは、現在実行タスクの終了後です。
従って各タスクの実行が完了するか、サービス関数で一旦終了するまでは、タスク
切替は起きません。このため、完全なマルチタスクではありません。
4.すべての割込み処理が使えます
PICには幾つかの割り込み要因がありますが、PICROSはこの全てを扱うことが
出来ます。
インターバルタイマを基本機能として持ち、他の割り込み処理はユーザが任意に
追加することが出来ます。
5.多くのサービス関数をサポート
PICROSはタスクのスケジューリングをするためのサービス関数をサポートして
います。
このサービス関数により、タスクの起動停止や、イベントの待ち合わせ、タイマ待ち
合わせなどを制御することが出来ます。
しかしデータ領域の管理や、デバイス管理は行えません。
6.デバッグ用のツールが組み込まれています。
PICROSにはデバッグ用の関数が組み込まれていて、コンフィギュレーション指定
によりUSART経由でデバッグ用メッセージを出力します。
・初期化完了、スタートメッセージ
・タスクディスパッチ時のタスク番号
・サービス関数実行時の各種エラーメッセージ
またデバッグライブラリによりタスクの起動、停止、メモリダンプを行うことが
出来ます。
7.追加のライブラリを用意
CCSのCコンパイラが用意している各デバイスの組込み関数以外に、PICROSに
組み込めるライブラリとして下記を用意しています。
・液晶表示ライブラリ
・USB通信ライブラリ
・デバッグライブラリ