XINU
02-IRQ-enable_disable

割り込み(IRQ)を許可/禁止する。

割り込み許可 enable:ソースコード(intr.S)

enable:
cpsie i /* 割り込みを許可する */
mov pc, lr /* enableを呼び出す前のアドレスに戻る */

割り込み禁止 disable:ソースコード(intr.S)

C 言語上は、割り込みマスクビット(cpsr)が disable()の返り値(r0)として渡される。
この返り値は、 resume()suspend()の復帰時に cpsr の状態を元に戻すために使用する。

disable:
mrs r0, cpsr /* CPSRレジスタの内容をr0にコピー */
cpsid i /* 割り込み禁止状態に遷移 */
mov pc, lr /* diableを呼び出す前のアドレスに戻る */