码迷,mamicode.com
首页 > 移动开发 > 详细

Android深度探索(卷1)HAL与驱动开发阅读心得6

时间:2016-05-29 23:10:44      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

第一个Linux驱动程序:统计单词个数

一.编写Linux驱动程序的步骤

1.建立Linux驱动骨架(装载和卸载Linux驱动)

Linux驱动程序需要提供两个函数来分别处理驱动初始化和退出的工作,用module_init和module_exit宏指定。

驱动程序的头文件一般会包括 linux/module.h,linux/init.h,linux/kernel.h,linux/fs.h,linux/miscdevice.h和asm/uaccess.h。

printf与printk的区别:printf运行在用户空间,printk运行在内核空间

2.注册和销毁设备文件

使用misc_register创建设备文件,使用misc_deregister移除设备文件。

3.指定与驱动相关的信息

驱动程序是自描述的,需要在驱动源代码中指定。

MODULE_AUTHOR指定作者姓名

MODULE_LICENSE指定所使用的开源协议

MODULE_ALIAS指定驱动程序的别名

MODULE_DESCRIPTION指定驱动的描述

查看.ko文件信息:modinfo .ko文件

4.指定回调函数

一个驱动程序并不一定要指定所有的回调函数;回调函数会通过相关机制进行注册

5.编写业务逻辑

业务逻辑可能由多个函数,多个文件甚至多个linux驱动模块组成

6.编写Makefile文件

7.安装和卸载Linux驱动

linux驱动程序以模块单独存在,需要使用insmod或modprobe命令装载linux驱动模块,使用rmmod命令卸载linux驱动程序

安装驱动:insmod .ko文件

卸载驱动:rmmod 模块名

查看驱动输出的日志信息:dmesg | grep 模块名| tail -n 2

二.开源协议

1.GPL协议

2.LGPL协议

3.BSD协议

4.Apache Licence2.0协议

5.MIT协议

具体内容参考: http://www.oschina.net/question/54100_9455

 

Android深度探索(卷1)HAL与驱动开发阅读心得6

标签:

原文地址:http://www.cnblogs.com/liuqiling/p/5540595.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!