読者です 読者をやめる 読者になる 読者になる

FIQの最速処理

ベクタテーブル最後にあるFIQを最高速で処理するには、要因をひとつにして、ベクタテーブルの最後のアドレスから処理を開始すればいいが、その時に制約が出てくる。まずコードサイズ、ベクタテーブルのジャンプテーブルをしてる場合にジャンプできる幅も決まってるし、ldr PC [PC 定数]な時も呼べる定数の範囲は決まってるので、それ以上のアドレスを確保はできない(といってもそこまで大きな割り込み処理をすること自体ナンセンスだけどな。)
とりあえず現実的なのは割り込み処理の前処理(レジスタ待避とか)をそのFIQベクタ先頭から書いて待避処理終了後に、実際の割り込み処理にジャンプするって所かな?ジャンプ命令分無駄があるけど。これじゃないと不便かなと思う。FIQもたぶん多重できるンだけど、それは基本的に意味ないしな。