当前位置:  技术问答>linux和unix

中断上半部不会被中断,它处在中断处理的第几步?

    来源: 互联网  发布时间:2017-04-18

    本文导语:  中断处理: 1.关中断:由硬件自动实现,在此中断处理完成前,不处理其它中断; 2.保存断点:将当前的程序计数器PC中的内容保存起来; 3.识别终端源,转向中断服务程序:在多个中断源同时请求中断的情况下,...

中断处理:
1.关中断:由硬件自动实现,在此中断处理完成前,不处理其它中断;

2.保存断点:将当前的程序计数器PC中的内容保存起来;

3.识别终端源,转向中断服务程序:在多个中断源同时请求中断的情况下,实际响应的只能是优先权最高的那个;

4.保存现场,交换屏蔽字:现场信息一般是指程序状态字、中断屏蔽寄存器和CPU中某些寄存器的内容;

5.开中断:开中断将允许更高级的中断请求得到响应,实现中断嵌套;——所谓的可以被其他中断打断? 不想被打算就将处理放在上半部? 4算上半部?

6.执行中断服务程序主体

7.关中断:为了在回复现场和屏蔽字时不要被中断打断;

8.恢复现场和屏蔽字

9.开中断

10.中断返回:由一条IRET指令实现


一:
中断上半部不会被中断,它处在中断处理的第几步?
二:
第6步: 执行中断服务程序主体 —— 指的是中断上半部还是下半部?

|
中断上半部是不可中断的实际意义是,在中断上半部不能调用可能导致进程调度的函数。

第5步的作用你自己的文字里其实已经有说明了,就是要允许其他的中断能够处理,也就是说如果request_irq()时没有指定IRQF_DISABLED(实际上越新的内核,越要求尽量不要用IRQF_DISABLED,因为这样可以让系统的性能更高,从设计的整体趋势来说就是要让锁的颗粒度尽量小),在执行当前的ISR时,如果来了其他的中断,也还能响应。

建议找个具体架构的内核代码,实际看看,只是看这种介绍没法真正理解里面的含义的。

|
中断上半部在第六步,
中断下半部不在这里面,是第六步提交了一个任务,让内核稍后执行。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,