C言語によるリアルタイム
組み込みソフトウェア開発の理論と実践
-ロボット制御演習による実践力強化-
コース番号:223P 5日間
研修コースの概要
このコースは、C言語でリアルタイムの組み込みソフトウェアを設計・実装するのに必要な知識・技術について、理論から実践まで一貫して学習して頂くことを目的としています。フォーマルな動作仕様の記述やリアルタイム・スケジューリングといった理論から、それらを実際にCのプログラムに落とし込む技術を、講義およびTippySrというロボットを利用した演習を通して学習します。
さらにコンパイラーおよびOSの動作や役割を、コンパイラーの生成コードやOSのカーネルソースコードを読解することにより深いレベルで理解します。 これらにより、理論から実行時のプログラムの動作まで完全に把握した設計・実装が出来る高度な知識・技術が身につきます。
この研修の対象者
最新のリアルタイム組み込みソフトウェア開発の理論から実践まで、一貫して体系的に学ぼうと考えていらっしゃる組み込み機器の設計者、プログラマ、ソフトウェアエンジニアの方々に最適です。受講には2年ほどのC言語によるプログラムの経験が必要です。
スケジュール
第1日
実習用ロボット(TippySr)の紹介
- 行動制御理論
- TippySrの行動制御定義
TippySrの開発環境と駆動補助メソッド
- Cygwin、BrickOS
- 駆動補助メソッド
ステートマシン、状態遷移図、UMLステートマシン図
- 状態遷移図によるTippySrの行動定義
- 状態遷移図のCによる実装
- ステートマシン図の作成
第2日
ステートマシン、状態遷移図、UMLステートマシン図(続き)
組み込みソフトウェア開発のための上級C技術
- コンピュータの基本構成
- Cプログラムの実行環境
第3日
組み込みソフトウェア開発のための上級C技術(続き)
- Cコンパイラー生成コードの理解
- 配列とポインタ演算の詳細
第4日
並行プログラムと同期の基礎
- プロセスとスレッド
- セマフォーによる同期
BrickOSの内部構成とカーネルソースコードの解読
組み込みソフトウェアの構成とリアルタイム·スケジューリング理論
- リアルタイム・システム
- コントロール・ループ型
- イベントトリガー型
- 周期タスク型による実装
- レート・モノトニック・スケジューリングとその理論
- プライオリティ逆転問題とプライオリティ継承・プライオリティ上限プロトコル
TippySrの駆動系の実装
- 周期タスク
- レート・モノトニックによる実装と排他制御の解説
実習の内容
コースを通した演習でLego社MindStorms(R)で作ったTippySrというロボットの制御・駆動系のプログラムを実装します。
- TippySr駆動補助メソッドの実装の小演習
- 状態遷移図作成とCによる実装の小演習
- TippySr制御系の状態遷移図の作成とCによる実装
- TippySr制御系のUMLステートマシン図の作成
- Cポインターの最高難易度問題の演習
- 並行プログラム上でのセマフォーによる同期コード作成の演習
- BricksOSのソースコード解読演習
- リアルタイム・スケジューリング理論に基づくTippySr駆動系の実装
担当講師のコメント
このコースは、信頼性の高いリアルタイムの組み込み機器の設計・実装をするために必要な知識を、正確に身につけていただくことを目的にしています。それらには、一般の書籍ではなかなか見つけるのが難しいような内容を多く含みます。コース・テキストではそれらをできる限り分かり易く説明しました。また全ての説明を概念・概要だけで終わらせず、実行可能なCあるいはアセンブラーのプログラムのレベルで行います。
正確な知識があれば、仕事を通して経験を積むことにより、それらの知識を完全に自分の技術として使いこなすことができるようになります。一方、正確な知識がなければ、仕事を通しての技術の習得の効果はあまり期待できません。あるいは内容によっては技術の習得は全く望めません。
私は組み込み機器開発に携わる技術者の方々にこのコースを通して必要な知識を正しく身につけていただき、それらをすぐに開発に役立てるとともにその後の仕事を通しての技術の習得をより効果的なものとしていただきたいと考えています。

