天天看点

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

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

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

以按键驱动为例

读取数据方式有如下几种:

1、查询:read函数中不断读取数据并返回。这种方法CPU的占用率高

2、休眠唤醒:在read函数中休眠,当按下按键,触发中断,在中断服务程序中唤醒。这种方法在没有唤醒事件时,会一直休眠,进程无法做其他事情

3、poll机制:与休眠唤醒方式不同的是,如果没有唤醒事件,定期唤醒进程。这种方法在没有事件发生时,进程按一定周期可以做其他的事情

4、fasync机制:异步通知机制,当有事件发生,驱动程序通知应用程序读取数据。这种方法在没有事件发生时,进程可以做其他的事情

我们使用这几种方式往往比较难编写一个通用性好的驱动程序,这时又引入了input子系统、fbmem等框架

这些框架用的也是前面那些基础知识,在编写驱动程序时,只要将硬件相关代码融入这些框架即可