- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
电子与电气工程学院设备驱动程序设计教师:程蔚正大气象厚德载物MinnanUniversityofScienceandTechnology嵌入式系统原理与应用
目录CONTENTS01.驱动开发概述02.内核模块03.字符设备驱动正大气象厚德载物MinnanUniversityofScienceandTechnology
01PARTONELinux驱动概述正大气象厚德载物MinnanUniversityofScienceandTechnology
正大气象厚德载物MinnanUniversityofScienceandTechnology设备驱动程序(DeviceDriver),简称驱动程序(Driver)。它是一个允许计算机软件与硬件交互的程序。这种程序建立了一个硬件与硬件,硬件与软件形成连接,这样的连接使得硬件设备之间的数据交换成为可能。设备驱动程序是计算机硬件与应用程序的接口,是软件系统与硬件系统沟通的桥梁。字符设备块设备网络设备设备驱动分类
02PARTTWO内核模块正大气象厚德载物MinnanUniversityofScienceandTechnology
1、字符设备--c正大气象厚德载物MinnanUniversityofScienceandTechnology一、Linux设备驱动分类应用程序和驱动程序进行数据读写时,是以“字节”为单位,按照固定的顺序传输;数据是实时传输,没有缓存。字符设备是没有文件系统的。绝大部分设备驱动是字符设备:LED、BEEP、按键、键盘、触摸屏、摄像头、液晶屏、声卡、IIC、SPI、...应用程序:系统IO函数open(/dev/led_drv,O_RDWR)read()write()ioctl()mmap()close()
2、块设备--b正大气象厚德载物MinnanUniversityofScienceandTechnology一、Linux设备驱动分类应用程序和驱动程序之间进行数据读写时,数据是以“块”为单位,1block=1024KB。块设备是有缓存的,块设备是有文件系统的。大容量的存储设备一般都是块设备:nandflash、eMMC、SD、U盘、硬盘、....#cat/proc/partitionsmajorminor#blocksname17907634944mmcblk0179165536mmcblk0p1应用程序访问块设备[root@GEC6818/]#ls/dev/sda*-lbrw-rw-rw-1rootroot8,0Jan100:11/dev/sda---U盘1)挂载---块设备是有文件系统的。2)像访问普通文件一样访问块设备的内容。
3、网络设备正大气象厚德载物MinnanUniversityofScienceandTechnology一、Linux设备驱动分类网卡类的设备:有线网卡、无线网卡、...,网络设备是没有设备文件的。应用程序: socket套接字:IP+端口号
正大气象厚德载物MinnanUniversityofScienceandTechnology二、内核模块的定义1、linuxkernelmodule2、module编译后会生成一个*.ko安装驱动:#insmodled_drv.ko卸载驱动:#rmmodled_drv.ko查看系统中,已安装的module:#lsmod驱动程序在内核中是独立的模块例如:beep驱动和LED驱动,beep和led间没有任何联系,可以通过应用程序将两个驱动联系在一起。beep驱动和led驱动各自是独立的module。说明:每个驱动程序都是一个独立模块,每设计一个驱动程序,首先设计一个module,驱动程序是包含在module中。
三、Sourceinsight创建工程1、SI设置Options---DocumentOptions---DocumentType:CSourceFile:*.c;*.h;*.S;*.sX86AsmSourceFile:*.asm;*.inc;*.S;*.s2、创建一个工程project--newproject--工程文件放在源码包中(I:\GEC6818物联网综合实验箱(多模块版本)-201708\1、嵌入式6818网关平台\源码\kernel6818\kernel6818)addtree(稍微等一下)---close3、文件的同步project---s
您可能关注的文档
- 嵌入式系统原理与应用-基于Cortex-A53微处理器 课件 第1章 绪论.pptx
- 嵌入式系统原理与应用-基于Cortex-A53微处理器 课件 第2章 Linux基本操作.pptx
- 嵌入式系统原理与应用-基于Cortex-A53微处理器 课件 第3章 文件IO编程.pptx
- 嵌入式系统原理与应用-基于Cortex-A53微处理器 课件 第4章 进程与线程.pptx
- 嵌入式系统原理与应用-基于Cortex-A53微处理器 课件 第5章 硬件平台.pptx
- 嵌入式系统原理与应用-基于Cortex-A53微处理器 课件 第7章 Linux系统移植.pptx
- 嵌入式系统原理与应用-基于Cortex-A53微处理器 课件 第8章 Qt编程 .pptx
- 嵌入式系统原理与应用-基于Cortex-A53微处理器 课件 第9章 嵌入式项目实践.pptx
- 《嵌入式系统原理及应用》_郑洪庆(习题解答) 第一章习题1-4.docx
- 2021年证券从业考试《金融市场基础知识》PPT讲义三.pptx
文档评论(0)