一、字符设备驱动简介
字符设备是Linux驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。
比如最常见的点灯、按键、IIC、SPI、LCD等等都是字符设备。
Linux应用程序对驱动程序的调用如图所示:
二、字符设备驱动框架
字符设备驱动的编写主要就是驱动对应的open、close、read等,其实就是file_operations结构体的成员变量的实现。
三、驱动模块的加载与卸载
Linux驱动程序可以编译到kernel里面,也就是zImage,也可以编译为ko。测试的时候只需要加载ko就可以。
模块的加载和卸载注册函数如下:
module_init(xxx_init);//注册模块加载函数
module_exit(xxx_exit);//注册模块卸载函数
编写驱动的时候注意事项:
1、编译驱动的时候需要用到linux内核源码,因此要解压缩linux内核源码。编译linux内核源码,得到zImage和.dtb