驱动程序之_1_字符设备_14_小结
每当应用程序调用open、read、write等接口函数,会进入内核层,调用sys相关的函数,最终调用到驱动程序实现的open、read、write
以按键驱动为例
读取数据方式有如下几种:
1、查询:read函数中不断读取数据并返回。这种方法CPU的占用率高
2、休眠唤醒:在read函数中休眠,当按下按键,触发中断,在中断服务程序中唤醒。这种方法在没有唤醒事件时,会一直休眠,进程无法做其他事情
3、poll机制:与休眠唤醒方式不同的是,如果没有唤醒事件,定期唤醒进程。这种方法在没有事件发生时,进程按一定周期可以做其他的事情
4、fasync机制:异步通知机制,当有事件发生,驱动程序通知应用程序读取数据。这种方法在没有事件发生时,进程可以做其他的事情
我们使用这几种方式往往比较难编写一个通用性好的驱动程序,这时又引入了input子系统、fbmem等框架
这些框架用的也是前面那些基础知识,在编写驱动程序时,只要将硬件相关代码融入这些框架即可