SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

[組込み開発入門] ロボットを作ろう

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


  • X ポスト
  • このエントリーをはてなブックマークに追加

 今回は、この連載で使用するRTOSについて説明した後、RTOSを使ってリアルタイム性を考慮した簡単なアプリを作ってみましょう。

  • X ポスト
  • このエントリーをはてなブックマークに追加

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機能を使用する)がある。また、割込みの禁止・許可の機能も提供している
イベント機能 タスク間等で同期を取る手段として使用される。拡張タスクで使用可能
リソース ミューテックス相当のロックとして使用可能。リソースを使用することで、クリティカルセクションを作り排他制御を実現できる
アラーム タイマ相当の機能。アラーム満了時のハンドラとしてタスク、イベント、ユーザ定義関数を設定できる
フック処理 タスク切替前後など決められたタイミングでユーザー定義の処理を実行させることができる

次のページ
OIL

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
[組込み開発入門] ロボットを作ろう連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3703 2009/03/16 19:10

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング