VIC

どうやらVICというのがLPC系のARMでは割り込みの鍵を握ってるみたい。

見た感じだとVICは16個のアドレスが保持できてそこに割り込み処理の先頭アドレスを入れてやってるみたい。後は割り込み要求が入ればVICが勝手に処理してくれて割り込みのハンドラに飛ばしてくれるという感じか?

割り込み優先度とかはその16個のアドレスで決まるみたい。


ARMの割り込みに関する残りの疑問

  • 多重の場合はどうすだろう?
  • FIQの発生要因の設定?

FIQに関して

FIQはどうやら、ベクタテーブルの最後にあるためジャンプ命令を省略して実行できることで最速の処理が可能らしい。そして一つの割り込み要因にすることでより高速に実行することを狙ってるらしい。
んでその設定方法は、
VICIntSelectというレジスタで可能になる。
割り込み要因が32ビットのレジスタにおいて1ビットに割り振られてて、1でFIWQ、0でIRQになるみたい。