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

通过对这一章的学习,我学会了一个完整的Linux驱动:统计单词数的word_count驱动,并学会了如同使用不同的方法来测试Linux驱动,也对Linux的驱动开发过程有了更深刻的了解。

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

1.建立Linux驱动骨架

Module_init处理驱动初始化,module_exit处理驱动退出

2.注册和注销设备文件

 

Misc_register函数创建和misc_deregister移除设备文件

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

4.指定回调函数

5.编写业务逻辑

6.编写makefile文件

7.编译Linux驱动程序

8.安装和卸载Linux驱动

二.Linux驱动:统计单词个数

1.开始前的准备工作

1)建立存放Linux驱动程序的目录

mkdir –p /root/drivers/ch06/word_count

cd /root/drivers/ch06/word_count

2)建立驱动源代码文件

echo ‘’>word_count.c

3)编写makefile文件

Echo obj-m := word_count.o> Makefile  (obj-m表示将Linux驱动作为模块编译,obj-y表示编译进Linux内核)

Linux驱动依赖其它程序则需要这样编写makefile文件

Obj-m:=word_count.o

Word_count-y :=process.o data.o

2.编写Linux驱动程序的骨架(初始化和退出驱动)

Printk函数,Linux程序中出现,该函数用于输出显示日志信息

测试编译Linux驱动源代码

make –C /usr/src/linux-headers-3.0.0-15-generic M=/root/driver/ch06/word_count

安装Linux驱动

insmod word_ount.ko

查看word_count是否安装成功

lsmod | grep word_count

卸载Linux驱动

rmmod word-count

查看Linux驱动输出的日志信息

dmessg |grep word_count | tail n 2 或者cat /var/log/syslog | grep word_count | tail n 2

3.开源协议、GPL协议、LGPL协议、BSD协议、Apachelicence2.0协议、MIT协议

4、注册和注销设备

extern int misc_register(struct miscdevice * misc)

extern int misc_deregister(struct miscdevice * misc)

还需要修改word_count.c文件中的word_count_initword_count_exit这两个函数

设备文件由主设备号和次设备号来标记的。主设备号统一都设置为10,是Linux系统中拥有共同特性的简单字符设备,称为misc设备,当成功注册了设备文件,misc_register函数返回非0的整数,失败返回0.

insmod word_count.ko

rmmod word_count

ls –a /dev

ls –l /dev

时间: 2024-10-07 03:43:17

第六章、第一个Linux驱动程序:统计单词个数的相关文章

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

6章: 第一个Linux驱动程序统计单词个数 编写Linux驱动的程序的步骤: 第1步:建立 Linux 驱动骨架(装载和卸载 Linux 驱动) 第2步:注册和注销设备文件 第3步:指定与驱动相关的信息 第4步:指定回调函数 第5步:编写业务逻辑 第6步:编写 Makefile 文件 第7步:编译 Linux 驱动程序 第8步:安装和卸载 Linux 驱动 Linux驱动测试的方法多种多样: 1.使用Ubuntu Linux测试Linux驱动 2.在Android模拟器上通过原(Native)

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

Linux驱动的工作和访问方式是Linux的亮点之一,Linux系统将每一个驱动都映射成一个文件.这些文件称为设备文件或驱动文件,都保存在/dev目录中,这种设计理念使得与Linux驱动进行交互就像与普通文件进行交互一样容易,当然也比访问LinuxAPI更容易. 编写Linux驱动的程序的步骤: 第1步:建立 Linux 驱动骨架(装载和卸载 Linux 驱动) 第2步:注册和注销设备文件 第3步:指定与驱动相关的信息 第4步:指定回调函数 第5步:编写业务逻辑 第6步:编写 Makefile

Android深度探索(卷1)HAL与驱动开发 第六章 第一个Linux驱动程序:统计单词个数

Android深度探索(卷1)HAL与驱动开发 第六章 第一个Linux驱动程序:统计单词个数 统计单词个数的功能是封装在Linux驱动中的. Linux驱动的工作和访问方式是Linux亮点之一,同时受到了业界大防范好评.Linux系统将每一个驱动都映射成一个文件.这些文件称为设备文件或者驱动文件,都保存在 /dev 目录中.这种设计理念使得与Linux驱动进行交互就像与普通文件进行交互一样容易.当然,也比访问Linux API 更容易.由于大多数Linux驱动都有与其对应的设备文件,因此与Li

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

第六章介绍如何在多种平台,使用多种方法测试Linux驱动. 本章主讲统计单词个数的算法的实现技术:Linux驱动.统计单词个数的功能是封装在Linux驱动中的.驱动不一定是直接和硬件打交道的,还可以喝普通的library一样提供其他程序的调用来实现特定功能的. 第一节Linux驱动到底是个什么东西 Linux驱动和普通的Linux API没有本质上的区别,只是使用Linux驱动的方式和使用Linux API的方法不同. Linux系统将每一个驱动都映射成一个文件,这些文件称为设备文件或驱动文件,

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

在本章将进入了最令人激动的时刻,为了是读者在刚开始学习Linux驱动开发时充满期待,没有只提供Helloworld程序. 首先介绍Linux驱动到底是个什么东西,它和我们以前接触过的windows类型差不多,但是操作和工作方式有很大的区别,Linux系统将每一个驱动都映射成一个文件.这些文件成为设备文件或这驱动文件,都保存在/dev目录中. 接下来给出编写Linux驱动程序的步骤:第一步:建立Linux驱动骨架,Linux驱动程序中需要提供两个函数来分别处理驱动初始化和退出的工作.这两个函数分别

Android深度探索(卷1)HAL与驱动开发 第六章 第一个Linux驱动程序:统计单词个数 读书笔记

本章是一个具体的例子,来详细的介绍开发和测试Linux驱动程序的完整过程.尤其是测试Linux驱动.在这个统计单词个数的实例中,重点是该算法的实现技术:即Linux驱动,而不是如何统计的. 6.1Linux驱到底是什么 Linux驱动的工作方式和访问方式是Linux的特点之一.Linux系统将每一个驱动都映射成一个文件,这些文件被称为驱动文件或设备文件,保存在dev目录中.由于大多数Linux驱动都有与其对应的设备文件,因此与Linux驱动交换数据就变成了与设备文件交换数据.事实上,编写Linu

第六章 第一个Linux驱动程序:统计单词个数 心得笔记

一.Linux系统将每个驱动都映射成一个文件.这些文件称为设备文件或驱动文件,都保存在/dev目录中.这使得与Linux驱动进行交互就向与普通文件进行交互一样容易.大多数Linux驱动都有与其对应的设备文件,因此与Linux驱动交换数据变成与驱动设备交换数据. 二.编写Linux驱动程序 1.建立Linux驱动骨架           Linux内核在使用驱动时需要装载与卸载驱动        装载驱动:建立设备文件.分配内存地址空间等:module_init 函数处理驱动初始化        

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

本章作为实战第一章,首先要做的就是了解linux驱动到底是个什么东西,首先了解linux驱动的工作方式,linux系统将每一个驱动都映射成一个文件,保存在/dev中,再使用c语言函数ioctl向驱动的设备文件发送打印命令. 一.编写Linux驱动程序 1.建立Linux驱动骨架 Linux内核在使用驱动时需要装载与卸载驱动 装载驱动:建立设备文件.分配内存地址空间等:module_init 函数处理驱动初始化 卸载驱动:删除设备文件.释放内存地址空间等:module_exit函数处理退出 包含这

六、第一个Linux驱动程序:统计单词个数 ——学习笔记

第6章 第一个Linux驱动程序:统计单词个数 ——学习笔记 一.首先了解一下: 打印机驱动写入数据:对于打印机驱动来说,需要接收这些被写入的数据,并将它们通过PC的并口.USB等端口发送给打印机.要实现这一过程就需要Linux驱动可以响应应用程序传递过来的数据.这就是Linux驱动的事件,虽然在C语言里没有事件的概念,但却有与事件类似的概念,这就是回调(callback)函数.因此,编写Linux驱动最重要的一步就是编写回调函数,否则与设备文件交互的数据将无法得到处理.图6-1是应用软件.设备

第六章 第一个linux个程序:统计单词个数

从本章就开始实战,实例是统计一片文章或者一段文字中的单词个数.还介绍了用不同的方法去测试linux驱动,这些方法主要使用平台来区分. 一.linux:linux跟普通的linux API没什么区别,只是使用方式不同而已.Linux系统每一个驱动都映射成一个文件,这些被映射的文件被称为设备文件或映射文件,并且都保存在./dev目录下. Linux驱动的工作方式:Linux是Unix操作系统的一种变种,在Linux下编写驱动程序的原理和思想完全类似于其他的Unix系统.在Linux环境下设计驱动程序