您的位置:首页 > 其它

PRIMASK与 FAULTMASK,以及CPSID/CPSIE

2013-12-19 15:32 190 查看
PRIMASK用于除能在 NMI和硬 fault之外的所有异常,它有效地把当前优先级改为 0(可编程 优先级中的最高优先级)。该寄存器可以通过 MRS和MSR以下例方式访问:

1. 关中断

MOV R0,#1

MSR PRIMASK,R0

或者:

CPSID i;等价上面语句

2.开中断

MOV R0,#0

MSR PRIMASK,R0

或者:

CPSIE i;等价上面语句

与之类似,FAULTMASK的操作也有如下等价功能:

CPSIE f; / CPSID f;

MSR FAULTMASK,R0

FAULTMASK更绝,它把当前优先级改为-1。这么一来,连硬fault都被掩蔽了。使用方案与

PRIMASK的相似。但要注意的是,FAULTMASK会在异常退出时自动清零。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: