CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

割込みルーチン

Am29030での割込み本体のコーディングをしています

最初に割込みハンドラですが、これはADSP21xxでの割込み実験と同じ。汎用レジスタのインクリメントだけ行っています。コード内でのcountという変数は汎用レジスタGR66エイリアスです

またタイマ割込みが起きるとリロードレジスタTMRの第25ビット目にある割込み発生フラグINが立つのでリロード値0xfffffと同時にクリアしてリタンしています

原振は14.7456MHzなので、割込み周波数は14745600/(0xfffff+1)=約14Hzとなります

 

f:id:O3I:20210808104529j:plain

 

次に割込みベクタテーブルの記述です。割込みタイプは256種類、アドレス表現に4バイト必要なのでベクタエリアは256*4=0x400バイト必要になります。割込みベクタベースレジスタVABの下位10ビットを発生した割込みタイプによりベクタアドレスを補完するので、ベクタエリアは疑似命令align 0x400で0x400境界に配置します。

割込みタイプ14がタイマ割込みなのでここにハンドラのアドレスをセットしています

f:id:O3I:20210808104543j:plain