Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103587
  • 博文数量: 32
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 318
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-30 09:58
个人简介

经过长期对C语言的研究,目前只有两个方面不懂:这也不懂,那也不懂。 本人擅长 Ai、Fw、Fl、Br、Ps 等软件的安装卸载,精通 CSS、Java、PHP、C、C++、C#、Java、Ruby、Python、Objective-C等单词的拼写,熟悉 Windows、Linux、Mac、Android、iOS等系统的开关机 https://github.com/ianhom

文章分类

全部博文(32)

我的朋友

分类: 嵌入式

2015-01-05 08:56:34

源链接:http://blog.csdn.net/lanmanck/article/details/17416585

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会在异常退出时自动清零。
阅读(2283) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~