Android深度探索第六章

本文详细介绍了Linux驱动程序的开发步骤,包括驱动程序的基本结构、设备文件的注册与销毁、回调函数的指定等内容,并概述了几种常见的开源协议。

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协议

转载于:https://www.cnblogs.com/myd907011701/p/5563442.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值