Renesas Synergy™

FAQ 3000130 : 割り込み関数の処理開始までの時間短縮方法(CC-RL)

Q: 質問

RL78コンパイラCC-RLを使用しています。
割り込み関数の処理を開始するまでの時間を短くしたいのですが、何か方法はありますか?
割り込み関数から他の関数を呼ばない対処はしています。

 


A: 回答

割り込み関数の始めには、汎用レジスタを退避するコードが入ります。
割り込み関数の汎用レジスタの退避/復帰部分のコードを削減するには、#pragma interruptにて、レジスタバンクを指定する方法があります。
レジスタバンクを指定することにより、レジスタの退避/復帰のpush/pop命令の代わりに、レジスタバンクを切り替えるsel命令を出力します。これにより、命令数が少なくなり、処理を開始するまでの時間が短くなります。
ただし、同じレジスタバンクを指定した割り込み関数が、多重で実行された場合には、指定したレジスタバンクの汎用レジスタに入っている値を上書きしてしまいますので、ご注意ください。
(例)レジスタバンク1を指定
#pragma interrupt   inter (vect=INTP0, bank=RB1)

 

適用製品

e² studio
CS+ (旧 CubeSuite+)
RL78ファミリ用Cコンパイラパッケージ
他にご質問がございましたら、リクエストを送信してください