CodeZine(コードジン)

特集ページ一覧

【第3回】NTXでRTOSを動かそう

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/06/20 13:42

 今回は、この連載で使用する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で生成されます。

図1:OSEKでの開発手順
図1:OSEKでの開発手順

OSEKの機能

 OSEKには、表1の機能が準備されています。このように、OSEKはリアルタイム性を保障するための有用な機能を準備してくれていますが、実際にリアルタイム性を保障できるかは開発者の設計によります。

表1:OSEKの機能
機能 内容
タスク管理機能 スレッドと同等の機能。基本タスクと拡張タスクがあり、拡張タスクはイベント待ちを行える。実行中のタスクは常に1つとなる
割込み処理 あるプログラムの処理を実行中に、外部要因等をトリガに別の処理を行いたい時に制御する処理。割込みには、ISRカテゴリ1(割込みにOSを使用しない)とISRカテゴリ2(割込みにOS機能を使用する)がある。また、割込みの禁止・許可の機能も提供している
イベント機能 タスク間等で同期を取る手段として使用される。拡張タスクで使用可能
リソース ミューテックス相当のロックとして使用可能。リソースを使用することで、クリティカルセクションを作り排他制御を実現できる
アラーム タイマ相当の機能。アラーム満了時のハンドラとしてタスク、イベント、ユーザ定義関数を設定できる
フック処理 タスク切替前後など決められたタイミングでユーザー定義の処理を実行させることができる

  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

  • 藤井 律行(フジイ ノリユキ)

    (株)永和システムマネジメント所属。組込み・計測制御システム開発、Webアプリ開発を経て、現在は再び組込み開発に従事。元々はメカエンジニアで、かつてはコーディングより機械図面を引く方が速かった。チームマイナス6%会員。会社までの往復30Kmを愛車ビアンキ号で通勤する自転車人。

バックナンバー

連載:[組込み開発入門] ロボットを作ろう
All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5