设为首页 加入收藏

TOP

Linux驱动之按键中断
2014-11-24 11:33:35 来源: 作者: 【 】 浏览:0
Tags:Linux 驱动 按键 中断

该按键驱动原理虽简单,但是在处理中却运用到了Linux驱动中中断的一些关键技术,比如“顶半部”和“底半部”使用,等待队列的设置。


这里“顶半部”即中断处理函数运行时间很短,基本就做了两件事:1、关中断;2、调用定时器。具体代码如下:


这里“底半部”通过设置内核定时器实现,“顶半部”调用定时器后便马上退出了,而定时器等待定时时间到达时调用设定的函数完成中断处理函数应该完成的事,即去抖动情况,确定按键被按下后,保存该按键序号,并唤醒被睡眠的进程,读取按键序号值。具体代码:


当上层应用调用read接口时,若按键缓存区头尾不相等时表明有数据可读,但是在读取数据前调用local_irq_save( )函数将中断关闭,读取完毕之后在恢复中断;相反,如果按键缓存区头尾相等则说明没有数据可读,该进程就会被睡眠,实现如下:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇JAVA语言之基础篇 下一篇用Qt实现一个简单的Shell (Qt5+V8)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Python爬虫教程(从 (2025-12-26 16:49:14)
·【全269集】B站最详 (2025-12-26 16:49:11)
·Python爬虫详解:原 (2025-12-26 16:49:09)
·Spring Boot Java: (2025-12-26 16:20:19)
·Spring BootでHello (2025-12-26 16:20:15)