驱动程序之_1_字符设备_14_小结

本文深入探讨按键驱动的设计原理,解析应用程序通过open、read、write等接口与内核层交互的过程,对比查询、休眠唤醒、poll机制及fasync机制的优劣,并介绍input子系统、fbmem框架的应用,为读者提供编写高效驱动程序的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

驱动程序之_1_字符设备_14_小结

每当应用程序调用open、read、write等接口函数,会进入内核层,调用sys相关的函数,最终调用到驱动程序实现的open、read、write

以按键驱动为例
读取数据方式有如下几种:
1、查询:read函数中不断读取数据并返回。这种方法CPU的占用率高
2、休眠唤醒:在read函数中休眠,当按下按键,触发中断,在中断服务程序中唤醒。这种方法在没有唤醒事件时,会一直休眠,进程无法做其他事情
3、poll机制:与休眠唤醒方式不同的是,如果没有唤醒事件,定期唤醒进程。这种方法在没有事件发生时,进程按一定周期可以做其他的事情
4、fasync机制:异步通知机制,当有事件发生,驱动程序通知应用程序读取数据。这种方法在没有事件发生时,进程可以做其他的事情

我们使用这几种方式往往比较难编写一个通用性好的驱动程序,这时又引入了input子系统、fbmem等框架
这些框架用的也是前面那些基础知识,在编写驱动程序时,只要将硬件相关代码融入这些框架即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值