今回は、この連載で使用するRTOSについて説明した後、RTOSを使ってリアルタイム性を考慮した簡単なアプリを作ってみましょう。
TOPPERS/OSEK
この連載では、RTOSに「TOPPERS/OSEK」(LEJOS OSEKで使用されている)を使用します。TOPPERS/OSEKはTOPPERSプロジェクトで開発されているOSEK/VDX OS仕様 Version2.2.1に準拠したOSです。OSEK/VDXとは、欧州で開発された車載機器制御用のOSで自動車産業の分野で広く利用されています。
また、TOPPERS/OSEKにはOSEK/VDX OIL仕様 Version2.4.1準拠のシステムジェネレータが附属しており、OSの設定ファイルであるOILファイルからOSで使用するコードを生成します。
OSEKでの開発手順
OSEKでの開発手順は、図1のようになります。ユーザプログラムに依存するOSコードは、OILからSGで生成されます。
OSEKの機能
OSEKには、表1の機能が準備されています。このように、OSEKはリアルタイム性を保障するための有用な機能を準備してくれていますが、実際にリアルタイム性を保障できるかは開発者の設計によります。
| 機能 | 内容 |
|---|---|
| タスク管理機能 | スレッドと同等の機能。基本タスクと拡張タスクがあり、拡張タスクはイベント待ちを行える。実行中のタスクは常に1つとなる |
| 割込み処理 | あるプログラムの処理を実行中に、外部要因等をトリガに別の処理を行いたい時に制御する処理。割込みには、ISRカテゴリ1(割込みにOSを使用しない)とISRカテゴリ2(割込みにOS機能を使用する)がある。また、割込みの禁止・許可の機能も提供している |
| イベント機能 | タスク間等で同期を取る手段として使用される。拡張タスクで使用可能 |
| リソース | ミューテックス相当のロックとして使用可能。リソースを使用することで、クリティカルセクションを作り排他制御を実現できる |
| アラーム | タイマ相当の機能。アラーム満了時のハンドラとしてタスク、イベント、ユーザ定義関数を設定できる |
| フック処理 | タスク切替前後など決められたタイミングでユーザー定義の処理を実行させることができる |
この記事は参考になりましたか?
- [組込み開発入門] ロボットを作ろう連載記事一覧
-
- 【第4回】レゴマインドストームNXTでライントレーサを作成しよう
- 【第3回】NTXでRTOSを動かそう
- 【第2回】リアルタイムOS(RTOS)とは
- この記事の著者
-
藤井 律行(フジイ ノリユキ)
(株)永和システムマネジメント所属。組込み・計測制御システム開発、Webアプリ開発を経て、現在は再び組込み開発に従事。元々はメカエンジニアで、かつてはコーディングより機械図面を引く方が速かった。チームマイナス6%会員。会社までの往復30Kmを愛車ビアンキ号で通勤する自転車人。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

