SHで、処理中の割込み禁止、許可処理をどう実現すれば良いか迷っています。
SuperH C/C++コンパイラパッケージ アプリケーションノート(RJJ05B0557-0700)には以下のコードが記載されています。
#define disable() { save_cr=get_cr(); set_imask(0x0f); }#define enable() { set_cr(save_cr); }
この処理で疑問なのが、なぜステータスレジスタをまるごと退避、戻しを
しているのか?という点です。
禁止時はget_imaskでIビットの値を退避、許可時はset_imaskで
退避したIビットの値をIビットに戻せば良い気がするのですが。。。
みなさまはどのような処理で割込み禁止/許可を行っていますでしょうか?
みなさまコメントありがとうございました。
お礼が遅くなり申し訳ありませんでした。
コードサイズが小さいという点から
私もget_cr/set_crを使って行こうと思います。