OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4723|回复: 4

关于NVIC中断的理解

[复制链接]

18

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
193
金钱
193
注册时间
2014-11-13
在线时间
10 小时
发表于 2014-12-12 16:16:24 | 显示全部楼层 |阅读模式
5金钱
1-NVIC_Configuration();   //设置NVIC中断分组2:2位抢占优先级,2位相应优先级
   能不能形象的解释一下呢?
2-我知道为什么中断会有优先级,可是不知道为什么这里要这么设置


感谢您的回答!

最佳答案

查看完整内容[请看2#楼]

Cortex-M3最多可以支持256级中断优先级,其中0-15号属于系统内部中断也叫异常,16号之后的中断属于外部中断。 我们在使用内部中断(也就是异常)的时候是不需要配置中断分组或者优先级之类的操作的,比如说使用SysTick,其实除了SysTick之外其他的系统异常都有默认的处理方式,一般我们在编程的时候是不用管的。 在使用外部中断(比如说串口中断等)的时候则需要首先设置中断分组,然后再给这个中断设置一个优先级之后才能使用, ...
站在巨人的肩膀上,奋力向前!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

24

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
241
金钱
241
注册时间
2014-10-29
在线时间
4 小时
发表于 2014-12-12 16:16:25 | 显示全部楼层
Cortex-M3最多可以支持256级中断优先级,其中0-15号属于系统内部中断也叫异常,16号之后的中断属于外部中断。
我们在使用内部中断(也就是异常)的时候是不需要配置中断分组或者优先级之类的操作的,比如说使用SysTick,其实除了SysTick之外其他的系统异常都有默认的处理方式,一般我们在编程的时候是不用管的。

在使用外部中断(比如说串口中断等)的时候则需要首先设置中断分组,然后再给这个中断设置一个优先级之后才能使用,当然必要的使能配置和中断处理函数肯定也是要做的。

楼主要问为什么要进行中断分组,为什么又要分抢占优先级、响应优先级?

ST在设计STM32的时候对于外部中断只实现了64个并且有一个默认的优先级(中断号的顺序)。但是手册上明确指出所有的外部中断的优先级都是可编程的(当然这也是ARM在Cortex-M3的编程手册上明确标出的),所以中断分组就是针对“中断优先级可编程”这个特点而设计的,中断分组的目的是把一些优先级较高的中断放在一起便于管理,同时也实现了动态优先级的功能。

举个例子:
在汽车控制系统中 我们对发动机(20号)和制动系统(18号)的实时性要求是较高的,而对于来自多媒体系(10号)统或者语音等功能的实时性要求相对较低,那么不管是来自发动机的中断还是来自制动系统的中断优先级都高于来自多媒体系统的中断,此时我们可以把前者(0组)的抢占优先级设定的高于后者(1组)这样处于(0组)中所有的中断优先级都高于(1组),这样的话就比较便于管理,但是在同组内的中断也有优先级划分(依靠响应优先级来区分),如果两个中断在设置的时候被设置了相同的抢占优先级和响应优先级时则根据默认的终端号进行区分优先级,终端号小的优先级高。

以上属于个人理解,如有错误还请见谅。
详细关于中断的设置你要好好看一下《Cortex-M3权威指南》第7章和第8章的内容,或者参考ARM官方的说明书
酒逢知己千杯少,学有良师欢乐多。
回复

使用道具 举报

3

主题

24

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
241
金钱
241
注册时间
2014-10-29
在线时间
4 小时
发表于 2014-12-12 16:16:25 | 显示全部楼层
回复【4楼】三两二锅头:
---------------------------------
补充一下 系统中必须设置一种固定中断的分组方式才能正常使用中断,中断分组只需设置一次即可。
酒逢知己千杯少,学有良师欢乐多。
回复

使用道具 举报

8

主题

125

帖子

0

精华

高级会员

Rank: 4

积分
844
金钱
844
注册时间
2013-4-27
在线时间
120 小时
发表于 2014-12-12 16:37:36 | 显示全部楼层
STM32有很多东西能产生中断,当来了多个中断请求时CPU只能先响应中断优先级高的,然后再响应低的,具体看STM32中断那章吧
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2014-12-12 16:39:28 | 显示全部楼层
我觉得,例程里面随便怎么设置都行
小小蜗牛
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-27 23:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表