- 4
- 0
- 约 10页
- 2017-03-06 发布于贵州
- 举报
linux字符设驱动程序_笔记
4.6 linux字符设备驱动程序
[4-6-1]linux驱动程序介绍(参考课件)
驱动程序:使硬件工作的软件。
模型一的缺点:软件程序的复用性不好
模型二的缺点:如果驱动程序接口变化,则所有的应用程序就必须都改
模型三:即linux驱动程序驱动模型:如图“使用驱动程序所示”。解决了上述两种模型的缺点。
linux驱动程序的分类:
◎ 字符设备驱动(重点)
◎ 网络接口驱动(重点)
◎ 块设备驱动
1)字符设备:
字符设备是一种按字节来访问的设备,字符驱动则负责驱动字符设备,这样的驱动通
常实现open,close,read和write系统调用。
2)块设备:
◎ 在大部分unix系统,块设备不能按字节处理数据,只能一次传送一个或多个长度是
512字节(或一个更大的2次幂的数)的整块数据。
◎ 而Linux则允许块设备传送任意数目的字节。
因此块和字符设备的区别:仅仅是驱动的接口函数与内核的接口函数不同。
3)网络接口:
任何网络事物都通过一个接口来进行,一个接口通常是一个硬件(eth0),但它也可以
是一个纯粹的软件设备,比如回环接口(lo)。一个网络接口负责发送和接收数据报文。
字符设备与块设备:随机访问? 块设备随机访问,字符设备必须按顺序访问
驱动程序安装方式:有两种
模块方式(已知)(insmod, rmmod)
◎ 直接编译进内核
如何直接把驱动程序(内核模块)编译进内核?
需要修改两个文件:Kconfig,Makefile(Kconfig用来产生配置菜单,到处有Kconfig):
第一步:首先把驱动程序或内核模块源文件(hello.c)放到内核源代码相应的目录下(根据
功能选择目录)(如drivers/char下)
第二步:修改Kconfig,修改所放源文件目录下的Kconfig,在内核源代码的顶层目录执行:
vi drivers/char/Kconfig(打开Kconfig),然后在其中加上如下两行代码(照着写):
config HELLO_WORLD Bool “helloworld”
第三步:通过make menuconfig ARCH arm进入配置菜单,选中刚添加(要编译进内核)
的项。配置结果体现在(.config)中,.config文件位于内核源代码顶层目录下,通
过 vi .config可以查看。可以看到:CONFIG_HELLO_WORLD y
第四步:修改Makefile,修改所放源文件目录下的Makefile。照着写 obj-$ CONFIG_HELLO_WORLD + hello.o 加上这一项,hello.c
第五步:编译内核。修改好后,回到内核源代码顶层目录执行如下命令编译内核。:
male uImage ARCH armCROSS_COMPILE arm-linux-
***************************** hello.c代码如下:**********************************
#include
#include
static int __init hello_init printk hello world!\n ;
return 0; static void __exit hello_exit printk KERN_EMERG hello exit!\n ; module_init hello_init ;
module_exit hello_exit ;
*****************************************************************************
编译完成启动内核的过程中,会打印出:Hello World!信息。因为执行了模块初始化函数。
__init标志表示此函数将被放置到初始化代码段;内核在启动时,会依次调用初始化代码段中的函数指针。__exit类似。
驱动程序使用:
linux用户程序通过设备文件(也称:设备节点)来使用驱动程序操作字符设备和块设备(根据*fp找到在内核里面对应的sturct file结构,从而找到相应的read,write函数)
网络设备没有设备文件,设备文件在dev目录下面。
[4-6-2]字符设备驱动程序设计(参考课件)
1、主次设备号
字符设备通过字符设备文件来存取。字符设备文件由使用ls –l命令后输出的第一列的“c”标识。在dev目录下使用ls –l命令可以看到设备文件项中有2个数字,由逗号分隔,这些数字就是设备文件的主次设备编号。前主后次。
1.1设备号的作用
思考:字符设备文件与字符设备驱动如何建立联系?——通过主设备号
设备文件所对应的主设备号和驱动程序所对应的主设备号相同的话,那么这个驱动程序就对应这个设备文件。(
您可能关注的文档
- IPv6组播技术其应用研究.doc
- IPTV业务的技需求与体系架构研究.doc
- IS-95到3GEVDO,HSUPA,HSDPA, LTE通信中数据通信技术的发展.doc
- ISG型立式管道心泵故障原因及排除方法及价格.doc
- ISG型立式管道心泵型号意义及价格.doc
- ISTP(内倾、觉、思维和知觉).doc
- ISO9000认标准表格2010版.doc
- IT企业软件过程进解决方案SPIS立项建议书.doc
- IT治理与IT管有什么区别和联系.docx
- Izxnjd第十章 终结审计与审计报告.doc
- 03-2 2025年度民主生活会征求意见座谈会主持词.docx
- 03-1 2025年度民主生活会主持讲话提纲.docx
- 02-1 会前学习-《县以上党和国家机关党员领导干部民主生活会若干规定》相关要求.docx
- 在2025年度民主生活会上的总结讲话三篇.docx
- 在2025年度民主生活会上的总结讲话三篇 (3).docx
- 市委宣传部2025年度民主生活会查摆问题整改方案两篇.docx
- 在市行政审批和政务信息管理局机关2026年全体干部政绩观教育大会上的党课讲稿.docx
- X市应急管理局2026年度安全生产监督检查计划.docx
- 2025年度民主生活会领导班子对照检查材料(五个带头)三篇.docx
- 2025年度民主生活会“五个带头”个人对照检查材料三篇.docx
原创力文档

文档评论(0)