中断的禁止和使能以及处理例程

本文介绍了嵌入式系统中中断处理例程的工作原理和限制,强调了中断处理程序不能与用户空间交互、不能休眠和调用schedule()。同时,详细阐述了中断处理例程的经典任务,如清除中断标志位和唤醒休眠进程。此外,还讨论了中断的禁止和使能,包括disable_irq()、enable_irq()函数以及local_irq_save()、local_irq_restore()等宏的使用,用于在特定时间内阻止或允许中断的发生。
摘要由CSDN通过智能技术生成

【中断处理例程】

中断处理器例程即中断处理函数,其作用是根据被服务的中断的含义进行适当的操作,通常是读、写数据。中断处理例程与普通C函数没有什么差别,但是中断处理装置有以下限制:

中断处理装置不能与用户空间传递数据,因为它不在进程上下文执行;

中断处理程序也不能做任何可能休眠的事情,例如,调用wait_event(),除了使用GFP_ATOMIC之外的任何东西来分配内存,或者锁住一个信号量;

中断处理例程不能调用schedule()。


中断处理例程的第一步常常包括清除设备的一个中断标志位,大部分硬件设备在清除中断挂起位前不会再产生中断。这也要根据硬件的工作原理决定,这一步也可能需要最后做而不是开始,没有通用的规则。一些设备不需要这一步,因为他们没有中断挂起位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值