文档详情

第一章 Linux设备驱动简介.ppt

发布:2017-06-20约8.13千字共35页下载文档
文本预览下载声明
Linux设备驱动的现状 高需求 Linux内核的绝大多数代码为设备驱动 新设备、新芯片、新驱动的需求 高门槛 涉及到大量硬件操作 涉及到内核基础知识 涉及到并发控制与同步 复杂的软件结构框架 高回报 内核空间和用户空间 系统态:在Linux系统中,内核在最高级执行,也称为“系统态”,在这一级任何操作都可以执行。 用户态:而应用程序则用户态执行在最低级,所谓的“用户态”,在这一级处理器禁止对硬件的直接访问和对内存的未授权访问。 内核空间:模块运行的空间是在所谓的“内核空间”; 用户空间:应用程序运行的空间是在“用户空间” 。 它们分别引用不同的内存映射,也就是程序代码使用不同的“地址空间”。 嵌入式Linux的设备管理 嵌入式Linux驱动程序介绍 嵌入式Linux驱动已经支持的设备门类齐全,已成为linux相对其他嵌入式操作系统的一大优势 工业控制常用的串口,并口 人机输入设备鼠标、键盘,触摸屏 彩色、黑白液晶显示输出 网络的完善支持,包括tcp/ip,udp,firewall, WLAN,ip forwarding,ipsec,vpn Usb的全面支持,包括usb硬盘、u盘,usb摄像头 支持丰富的文件系统,包括fat32,ntfs 嵌入式驱动程序的作用 驱动程序直接操控硬件 收发通讯数据 读写存储介质,比如flash或硬盘 操作输出设备和执行机,例如打印,开关门襟等等 PDF 文件使用 pdfFactory Pro 试用版本创建 嵌入式驱动程序的作用 驱动程序提供软件访问硬件的机制 应用软件通过驱动程序安全高效的访问硬件 驱动程序文件节点可以方便的提供访问权限 控制 驱动程序作为一个隔离的中间层软件,将底 层细节隐藏起来,提高了软件的可移植性 访问Linux设备驱动的方法 设备提供dev文件系统节点和proc文件系统节点 应用程序通过dev文件节点访问驱动程序 应用程序通过proc文件节点可以查询设备驱动的信息 驱动程序在哪儿 驱动程序位于drivers目录下 驱动程序占kernel代码50%或以上 Linux驱动程序编译方式 Linux下设备驱动程序组成 小结:Linux驱动程序  在Linux操作系统中驱动程序是操作系统内核与硬件设备之间的桥梁,它屏蔽了硬件的细节 (如总线协议、DMA操作等),在应用程序看来硬件设备只是一个特殊的文件。  驱动程序的基本功能主要有以下几点: 对设备的初始化和释放。如对音频设备而言包括向内核注册设备,设置音频的输入输出参数 (采样频率、采样宽度等)、分配音频设备使用的内核内存等工作。 对设备进行管理。包括实时参数设置以及提供对设备的操作接口服务。 负责内核和设备之间的数据交换 。这需要在用户空间、内核空间、总线及外设之间传输数据。 检测和处理设备工作过程中出现的错误。 小结: Linux驱动程序  Linux设备驱动程序一般集成在操作系统内核中,这样,不同的应用程序就可以共享这些代码。设备驱动程序实际是处理或操作硬件控制器的软件,从本质上讲,它们是内核中具有高特权级的、驻留内存的、可共享的底层硬件处理例程。  设备驱动程序的一个基本特点就是对设备的抽象处理。系统中的所有硬件设备看起来都与一般的文件一样,它们可以使用处理文件的标准系统调用来打开、关闭和读写。即, Linux下的设备驱动程序被组织成一组完成不同任务的函数的集合,通过这些函数使得Linux的设备操作犹如文件一般。在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作,如open ( )、close ( )、read ( )、write ( ) 等。 小结: Linux驱动程序 .config配置文件 运行make menuconfig时,配置工具首先分析与体系结构对应的/arch/xxx/Kconfig文件,该文件除包含一些与体系结构相关的配置项外,通过source语句引入一系列Kconfig文件,而这些Kconfig可再次通过source引入下一层Kconfig… 一般地,驱动工程师在drivers目录的相应子目录增加新设备驱动代码,并增加或修改Kconfig配置文件和Makefile脚本 Linux下对外设的访问只能通过驱动程序来进行; Linux具有统一的驱动程序接口,以文件操作的方式管理驱动程序,如:open、read、write… 驱动程序是内核的一部分,可以使用中断、DMA等操作; 驱动程序需要在用户态和内核态之间传递数据; Linux屏蔽了应用层对外设的直接访问; Linux在用户态时不能处理中断。 * IF: InterFace * * 嵌入式linux下常见
显示全部
相似文档