字符驱动的联系
框架
软件支持:驱动
驱动类型
1、字符驱动(每次读取一个字节)
2、块驱动(每次读取多个字节)
3、网络设备驱动(协议栈)
设备号dev_t
内核中使用类型dev_t来描述设备号,就是一个硬件设备的身份证,其本质就是一个unsigned
int 32 位整数
要是同一种类别设备,前12位就是一样的,但后20位不同
设备号注册
驱动创建设备号,然后调用下面的函数向内核注册
设备信息描述结构体
设备行为描述结构体
注册函数
当执行insmod 就会把驱动加载到内核中,开始执行驱动程序
当执行rmmod就会卸载驱动
我们获得设备号,然后就可以获得设备号信息结构体,从而调用下面上函数实现多硬件的打开、读、写
下面这个是我们建立设备号与硬件的联系(创建出设备文件),一般将这个放在驱动初始化过程中
第四步是手动创建设备号与设备文件之间的联系,然后就可以操作设备文件控制硬件
项目实践
1、卸载原来的驱动
2、编译新的驱动文件,然后将生成的文件安装到内核中去,这样就完成了驱动的安装
3、创建对应的设备节点(根据驱动来创建也就是驱动程序中的设备号)
查看可执行文件的属性
file xx
内核编译原理
将驱动添加到内核中
1、make menuconfig
显示出所有的config选项,做出一些配置的参数修改
2、make
参考我们上面的config的选项进行编译