对于单cpu中断的理解
2012-09-04 15:52
190 查看
对于中断来说,我们要解决的问题大致如下
Cpu如何判断中断?
我cpu就检测一根信号线,有我就认为有中断。在这根线上发出信号是中断管理器的任务
有哪些中断?(这里的一根信号新应该理解成与最终要处理的中断相对应的信息)
所有的中断构成了一个中断源的集合。
允许哪些中断(中断屏蔽问题)?
被允许的中断同时来了怎么办?(优先级问题)。
例如cc2430有18个中断源。
一般来说,中断的屏蔽可能是分层次结构的。但是不论层次结构是什么样的,最终的任务还是允许哪些中断请求,不允许哪些中断请求。
在cc2430中,先要把ien0打开;再把ien0,ien1,ien2中相应中断源的中断标志打开;然后如果有sfr控制中断的屏蔽的话再打开相应的sfr。
当中断发生时,不管该中断是否在该时刻是被允许的(未被屏蔽的),都会把相应的中断标志位置位。
中断优先级
在cc2430中,中断有一个全序的优先级(可以查找资料)。同时,所有的中断被分成了6个组,每一个组都可以被设置为4个中断优先级之一。中断优先级的判定问题如下:首先找到有中断的优先级最高的组的集合;然后再这些集合中按照全序优先级最高的中断。这样就完成了优先级的判定。
我们在分析某一款cpu时不应该被他的复杂的机制牵着走,而是应该在脑袋里形成这样一个更高抽象的模型。
Cpu如何判断中断?
我cpu就检测一根信号线,有我就认为有中断。在这根线上发出信号是中断管理器的任务
有哪些中断?(这里的一根信号新应该理解成与最终要处理的中断相对应的信息)
所有的中断构成了一个中断源的集合。
允许哪些中断(中断屏蔽问题)?
被允许的中断同时来了怎么办?(优先级问题)。
例如cc2430有18个中断源。
一般来说,中断的屏蔽可能是分层次结构的。但是不论层次结构是什么样的,最终的任务还是允许哪些中断请求,不允许哪些中断请求。
在cc2430中,先要把ien0打开;再把ien0,ien1,ien2中相应中断源的中断标志打开;然后如果有sfr控制中断的屏蔽的话再打开相应的sfr。
当中断发生时,不管该中断是否在该时刻是被允许的(未被屏蔽的),都会把相应的中断标志位置位。
中断优先级
在cc2430中,中断有一个全序的优先级(可以查找资料)。同时,所有的中断被分成了6个组,每一个组都可以被设置为4个中断优先级之一。中断优先级的判定问题如下:首先找到有中断的优先级最高的组的集合;然后再这些集合中按照全序优先级最高的中断。这样就完成了优先级的判定。
我们在分析某一款cpu时不应该被他的复杂的机制牵着走,而是应该在脑袋里形成这样一个更高抽象的模型。
相关文章推荐
- 对于不可屏蔽中断NMI,CPU响应中断的条件有哪些
- 对于cc2530GPIO中断的一点理解。
- 对于中断的理解
- 按键和CPU的中断系统
- java新手对于值传递和引用传递的理解
- 对于NAT类型的理解
- React高级教程(es6)——(2)对于Refs最新变动的理解
- 对于django的tastypie的理解
- 对于数据库范式的一点理解
- 笔记本cpu 和 显卡排行榜(对于要买笔记本的小白可以借鉴)
- 深入理解CPU和异构计算芯片GPU/FPGA/ASIC (上篇)
- 谈谈对于企业级系统架构的理解
- OpenCV中对于cvCreateImage和cvReleaseImage的一些小理解
- 关于51单片机学习中计数器/定时器中断的理解
- 对于String类中的"abc"与new String("abc")的一些理解
- 对于application一点理解
- 对于为什么要使用接口的个人理解
- 理解Linux中断 (2)【转】
- 对于中断函数返回值的分析
- 深入理解Linux网络技术内幕——中断与网络驱动程序