H8(その26)

8thステップで躓き中。

あまりに難しくて、3行くらい読んだら寝てしまうを繰り返している。

打開策が必要だ。

H8(その25)

8thステップよみ中

 

あんまり進んでいない、生存報告のみ。

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]をポインタ関数に入れて、実行する。

 

次に進もう。

 

 

H8(その22)

7thステップを読み終えた。

結構頭がこんがらがってる。

 

とりあえず、プログラムを打ち込んでみる。

 

H8(その21)

7thステップ中

 

RAMの先頭から256バイト空ける理由が書いてあった。

ソウフトウェア割り込みベクタを配置している様だ。

えー。

悩んだのに...。

 

アセンブラ忘れてる。p158を見よ。

mov.l レジスタへの値設定

er6,@er7:er6をスタックポインタ(er7)の指す先にに格納

@ er7: er7のアドレス

@-er7:er7を減算したアドレス

 

H8(その20)

7thステップ読み中。

本を横から見ると7th分量が多いので、時間がかかりそう。