需要が拡大する自動車制御OSを知る ――機能向上に対応するには開発効率向上が必須
4.TOPPERS/OSEKカーネルの開発
ヴィッツと名古屋大学は,OSEK/VDX仕様準拠のリアルタイム・カーネル「TOPPERS/OSEKカーネル注11」をオープン・ソース・ソフトウェアとして共同開発しました(表1).カーネルの開発にあたっては,将来的な仕様拡張に対応しやすいように読みやすさを重視し,できる限りC言語で記述しました(逆に言うと,実行速度や省メモリを目的としたぎりぎりのチューニングはしていない).また,ターゲット・プロセッサに依存する部分と依存しない部分を明確に分離して実装したため,移植しやすい構造になっています.
TOPPERS/OSEKカーネルの原形は,名古屋大学大学院 情報科学研究科情報システム学専攻 高田・冨山研究室 (組み込みリアルタイムシステム研究室)が開発したものです.組み込みリアルタイム研究室は,以前よりトヨタ自動車と車両制御用のソフトウェアについて共同研究を進めており,その研究比較対象として「OSEK/VDX」のシステム・コール部分を開発していました.ただし,実際のターゲット・ボード上では稼働させていませんでした.
筆者ら(ヴィッツ)は,成果物をオープン・ソースとして公開することを条件に利用許諾を得て,組み込みリアルタイム研究室と共同で「TOPPERS/OSEKカーネル」として開発し,プロセッサ上で稼働させました.また,名古屋市工業研究所とルネサステクノロジの協力を得て,MISRA-CやMODISTARCにも対応させました.
注11;TOPPERS/OSEKカーネルは,NPO法人であるTOPPERSプロジェクトからオープン・ソースとして一般公開される予定.一般公開日程は現在検討中だが,プロジェクトの会員向けには2004年7月末にリリース済み.TOPPERSプロジェクトのURLは「http://www.toppers.jp/」.
準拠した仕様 | OSEK/VDX仕様 Version 2.2.1に準拠 (ただし,厳密に言うと異なる部分あり)*1 |
適合クラス | ECC-2*2に対応 |
対応プロセッサ | ルネサス テクノロジ製M32C(M32C/83),M16C,H8S*3 |
開発ツール | 統合開発環境:TM V.3.20A*4
Cコンパイラ :NC308WA V.5.10 シミュレータ・デバッガ:PD308S V.1.00 |
使用ROM領 | 約6Kバイト |
使用RAM領域 | 59バイト |
その他 | MISRA-Cに対応(一部逸脱あり) MODISTARCに対応 |
*1 p.104のコラム「待ち状態のタスクの起動順序」を参照.
*2 OSEK-OSには,対応するタスクの種類や多重要求の有無などにより,4段階のコンフォーマンス(適合)クラス(BCC-1,BCC-2,ECC-1,ECC-2)がある.ECC-2は最上位のクラスであり,OSEK-OSの全機能を利用できる.
*3 ただし,最初に公開するのはM32C対応版のみ.ほかは用意が整いしだい,順次公開する予定.
*4 GNU CコンパイラがM32Cプロセッサに対応していなかったため,無償で入手できるルネサス テクノロジの開発ツール(試用版)を使用した.