OSEK/VDXは国際標準になっている組込み用OSです。
このOSを用いた演習を行なうには、通常は組込みマイコンの評価キットなどを用います。
しかし、評価キットは案外寿命が短く、MPUもボードもあっという間に入手難になったりするので、演習の組み立てに苦労します。
OSEKはせっかくの国際標準なので、APIより上の層の演習を行なうには、マイコンである必要もないだろうと、演習用にCygwin/Linuxへ実装することにしました。
実装のターゲットOSの選択として、ToppersのATK1か、OpenSource RTOSのTrampolineを調べていましたが、日本で行なう演習には、コメントが日本語で入っているToppersの方が簡易だと判断し、ToppersATK1をCygwin/Linux上に移植しました。
移植したコードは、例によって、IP ARCH, Inc.から配布します。
割込みは、シグナルを捉えて実装していますが、Cygwinは非同期IOでSIGPOLLを発生させることができないようなので、非同期の割込みはタイマとSIGINTの二つで、SIGUSR1とSIGUSR2をアプリケーションが発行可能な割込みとして割込みエントリを定義しています。
この移植にあたっては、友人のKSU水野先生のnxtOSEK移植コードを参考にさせていただいています。