H8(その23)

7thステップ終了

プログラムエラーが沢山でて、結構苦戦した。

f:id:Aluminium:20170524224856j:plain

 

まとめようとして、うまくまとめられない。

以下に記す。

 

main.cに、割り込みハンドラ関数 (voidがinterrupt.hで変換されて、関数ポインタになっている)を作る。

 

softvec_setintrで、ramの先頭に、

割り込みタイプと割り込みハンドラ(関数ポインタ)を登録

SOFTVECS[type] = handler;

(SOFTVECSは、ramの先頭のアドレス)

 

CPUが、割り込みベクタ(intr_serintr)を呼び出す。

intr.Sで、レジスタを保存し、関数ポインタinterrupt()を呼び出す。

(割り込みタイプとspを送る)

interrupt()は、登録されているSOFTVECS[type]をポインタ関数に入れて、実行する。

 

次に進もう。