第七章
编写LED驱动,创建led驱动的设备文件第一,使用cdev_init函数初始化cdev 第二步,指定设备号,多个Linux设备文件可以拥有同一个主设备号,但两个设备的主设备号和次设备号不能都一样,在使用alloc_chrdev_region函数主动分配设备号时,baseminor和count参数不要设置的太大,否则此设备号就会溢出,并且设备号会进位,从而变成了下一个主设备号。第三步使用cdev_add函数将字符设备添加到内核中的字符设备数组中。第四步,使用class_create宏创建struct_class第五步,使用cdev_create函数创建设备文件
写咋LED驱动的设备文件 卸载Linux驱动的设备文件稍微简单一些,需要一次调用device_destory,class_destory,unregister-chrdev_region方法。
LED驱动可以使用如下两种方式控制LED 一。通过字符串控制LED 二 。 通过I/O命令控制LED要想使用以上两种方式控制LED ,LED驱动必须接收相应的数据,如果通过字符串控制LED 需要使用file_operations.write。如果通过I/O命令控制LED,需要使用file_operations.ioctl函数,Linux驱动在装载时会将参数值写入参数文件。如果未指定参数值,Linux会将默认的参数值写入参数文件。在Linux驱动工作的过程中,参数值会和参数文件同步内容,也就是说,修改参数变量值后参数文的内容就会改变。