C言語によるリアルタイム
組み込みソフトウェア開発の理論と実践
-ロボット制御演習による実践力強化-
コース番号:223P 5日間
この研修では次のスキルが習得できます
- 状態遷移図およびステート・チャートによるリアクティブシステムの仕様の記述法
- 状態遷移テーブルを用いたC言語による状態遷移図の実装法
- 組み込み機器実装に必要な高度なC言語の機能・実装の詳細
- リアルタイム組み込み機器開発に必須な知識である並行プログラムと同期の基礎
- BrickOSのソースコードの主要な部分を解読することによる、OSの内部の構造および動作の詳細の理解
- 組み込みシステムの主な駆動法であるControl-Loop型、Event-Triggered型,そして周期タスク型の3つのシステム構成およびそれらの長所・短所の詳細比較
- リアルタイムのスケジューリング理論およびその実装への応用
- 以上学習した知識・技術を全て使い、Lego MindStorms®のロボット上に制御・駆動プログラムを実装し実践力を鍛える。
研修コースの概要
ユビキタス社会の到来にともない、ますます組み込みソフトウェア開発の重要性が高まっています。しかし、そのようなソフトウェアの開発には非常に広範囲な分野にわたる深い知識と技術が必要で、優れた開発者を育てるのは大変難しいことが知られています。このコースは、C言語でリアルタイムの組み込みソフトウェアを設計・実装するのに必要な知識・技術について、理論から実践まで一貫して学ぶことを目的としたコースです。
コースを通した演習でLego社MindStorms®で作ったTippySrというロボットの制御・駆動系のプログラムを実装します。講義で新たな知識・技術を学ぶごとにそれを利用した演習として、TippySrの一部ずつを段階的に実装していきます。そのようにして最後にコースで学習した知識・技術を全て駆使したロボットのプログラムを完成させます。
一般にリアクティブ・システム(外部からの入力に対してなんらかのアクションを起こすシステム)の制御系の仕様記述には状態遷移図が使われます。ここでは状態遷移図による記述法を学び、それを状態遷移テーブルにより機械的にC言語で実装する方法を学習します。さらに状態遷移図のUML(Unified Modeling Language)における拡張版であるステート・チャートにてモデル化する技法を理解します。
次に制御プログラムの実行時の動作を完全に把握するためにコンパイラーおよびOSに対する理解を深めます。ここではまずCのプログラムがどのようにメモリー上に展開され実行されるのか、あるいはポインタ演算の詳細といった言語の重要な機能および実装メカニズムの理解を深めます。
次に複数スレッドの実行環境およびそれらの間のインタラクションといった並行プログラムの基礎や同期の問題を学習し、さらにOSが「どのような」並行プログラム環境を「どのようにして」提供しているのかをより深く理解するため、MindStorms®用のC言語OSであるBrickOSのソースコードの主要部分を読解します。
続いて組み込みシステムの標準的な駆動法であるContorl-Loop型、Event-Triggered型、周期タスク型の3つのタイプの構成を学びそれらの長所・短所を理解します。さらにハードリアルタイムシステム設計に必要なリアルタイム・スケジューリング理論を学習し、高信頼性ハード・リアルタイム・システムの標準スケジューリングアルゴリズムであるRate Monotonicを周期タスク方式によりOS上に複数スレッドを使い実装する方法を学びます。
この研修の対象者
最新のリアルタイム組み込みソフトウェア開発の理論から実践まで一貫して体系的に学ぼうと考えていらっしゃる組み込み機器の設計者、プログラマ、ソフトウェア・エンジニアの方々に最適です。受講には6ヶ月以上のC言語によるプログラムの経験が必要です。
研修コースの内容
状態遷移図とその実装
組み込み機器実装のためのC言語の上級技能
並行プログラムと同期
BrickOSソースコードの読解と解析
|
リアルタイム・システム構成とスケジューリング理論
Legoロボット(TippySr)のBrickOS上での実装演習
|