第六章、第一个linux驱动程序:统计单词个数 读书笔记

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

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

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

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

2.注册和注销设备文件

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

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

modinfo

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

建立驱动源代码文件

Echo ‘’>word_count.c

编写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驱动源代码(不一定在Android设备上完成)

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_init和word_count_exit函数

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

Insmod word_count.ko

Rmmod word_count

Ls –a /dev

Ls –l /dev

Cat /proc/devices(获取主设备及其主设备号)

5、指定回调函数 word_count_read 和word_count_write

最常用的交互方式就是读写设备文件。

6.实现

单词数使用int类型变量存储。Mem数组的长度为10000,而最后一个字符为“\0”,因此带统计的字符串最大长度为999

7.编译、安装、卸载Linux驱动程序

三、使用多种方式测试Linux驱动

1.使用Ubuntu Linux测试Linux驱动

2.在Android模拟器上通过原生(Native)C程序测试Linux驱动

3.使用Android NDK测试Linux驱动

4.使用Java代码直接操作设备文件来测试Linux驱动

5.使用S3C6410开发板侧试Linux驱动

6.将驱动编译经Linux内核进行测试

四、使用eclipse开发和测试Linux驱动程序

1.在eclipse中开发Linux驱动程序

建立C工程

建立C源代码文件链接

设置include路径

编译Linux驱动

2.在eclipse中测试Linux驱动

导入test-word_count.c

设置include路径

建立Target

Build工程

运行测试程序

时间: 2024-10-03 22:15:32

第六章、第一个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是应用软件.设备