kumamoto

SourceforgeへのCVS登録は何とか完了しました。7月28日時点の最新をkagoshimaと名づけ、以後kumamoto、kokuraとリリースを重ねていきます。

kumamoto
割り込みハンドラを改良してアプリケーション側の負担を軽くしたもの。
kokura
割り込みハンドラと同様の改良を例外ハンドラに適用したもの。
himeji
BF533用の正式リリース。

kumamotoで行う改良は静的サービスコールDEF_INHのinhno引数を変更するものです。現在この引数はイベント順位を渡しています。つまりコアで発生したイベント番号に対して割り込みハンドラを当てています。しかしながらBF533はペリフェラル起源のものとして24個の割り込み要因を持っており、割り込みハンドラ側でこれらをえり分けなければなりません。これは退屈な作業でありバグが紛れ込む可能性もあります。
そこで、inhno引数にイベント順位の変わりにペリフェラル割り込み要因番号*1を与えてやるよう変更します。こうするとユーザーは割り込みハンドラの中で実際に割り込みを起こしたデバイスを探す必要がなくなります。実際には、SIC_ISRにステータスを残さない割り込みがあるためにそれらのために特別な配慮が必要です。これにあたる割り込みは

  • ソフトウェア割り込み(RAISE命令)
  • タイマー割り込み
  • ハードウェアエラー割り込み

の三つです。これらには特別な番号を割り当て、システム側の割り込みディスパッチャで判別して適切な割り込みハンドラに割り振ります。
ここまでやれば割り込み要因のクリアもシステム側で行うことも考えられます。しかしながらPF割り込みのように割込み源が細分化されたものの場合はめったなことはできません。そこで割り込み要因のクリアはユーザーに残すことにします。

*1:SIC_ISRのビット番号