字符设备驱动
字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。
Linux应用程序调用驱动程序的步骤:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/11231ada5984c00546edef1d4a83d762.png)
在Linux中一切皆文件,驱动加载成功之后,会在/dev/
目录下生成一个相应的文件。以led驱动为例,有个/dev/led
的驱动文件,应用程序通过open
函数来打开/dev/led
文件,使用完成后,使用close
函数关闭文件。如果向此驱动写入数据,就使用write
函数,read
函数可以从驱动中读取相应的状态。
应用程序运行在用户空间,而驱动运行在内核空间。用户空间不能直接对内核进行操作,因此必须使用系统调用来实现对底层驱动的操作。操作流程许下:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/00584d80212af8a29fe45765b59941c8.png)