Andriod深度探索—HAL与驱动开发 第七章 读书笔记and一点心得

建立LED驱动的设备文件数组

1步:使用cdev_init函数初始化cdev函数

2步:指定设备号。直接在代码指定或动态分配学习

3步:使用cdev_add函数将字符设备添加到内核中的字符设备数组中spa

4步:使用class_create宏建立struct classblog

第5步:使用device_create函数建立设备文件接口

卸载LED驱动的设备文件字符串

须要依次调用device_destroyclass_destroyunregister_chrdev_region方法博客

void device_destroy(struct class *class, dev_t devt)it

void class_destroy(struct class *cls)io

void unregister_chrdev_region(dev_t from, unsigned count)

控制LED

LED驱动能够使用以下两种方式控制LED

1.经过字符串控制LED

2.经过I/O命令控制LED

 要想使用上述两种方式控制LEDLED驱动必需要接收相应数据。若是经过字符串控制LED须要使用file_operations.write函数。若是经过I/O命令控制LED,须要使用file_operations.ioctl函数。

移植Linux驱动有一条很是重要。就是在修改Linux驱动源代码时,应尽可能不修改Linux驱动的接口。

本章主要学习了LED驱动,它是一个真正和硬件打交道的Linux驱动。虽然LED驱动并不复杂,只是控制了几个LED,可是LED驱动已经包括了Linux驱动全部必要的部分。一个完整的Linux驱动主要由内部处理和硬件交互两部分组成。其中内部处理主要是指Linux驱动的装载、卸载、与设备文件相关的动做处理(读写设备文件、向设备文件发送I/O命令等动做)以及业务逻辑等。Linux驱动在不一样的平台的移植也是处理这两部分。

 

本人博客地址:http://home.cnblogs.com/u/jie617530/

相关文章
相关标签/搜索