-
-
Linux-driver-development5.rar
作者:华清远见嵌入式学院。《Linux设备驱动开发详解》(08&09年度畅销榜TOP50)第5章、Linux文件系统与设备文件系统。由于字符设备和块设备都很好地体现了“一切都是文件”的设计思想,掌握Linux文件系统、设备文件系统的知识非常重要。首先,设备驱动最终通过操作系统的文件系统调用或C库函数(本质也基于系统调用)被访问。其次,驱动工程师在设备驱动中不可避免地会与设备文件系统打交道,如Linux 2.4内核的devfs文件系统和Linux 2.6内核的基于sysfs的udev文件系统。5.1节讲解 ...
-
Linux-driver-development6.rar
作者:华清远见嵌入式学院。《Linux设备驱动开发详解》(08&09年度畅销榜TOP50)第6章、字符设备驱动。在Linux设备驱动中,字符设备驱动较为基础。本章主要讲解Linux字符设备驱动程序的结构及其主要组成部分的编程方法。6.1节讲解了Linux字符设备驱动的关键数据结构cdev及file_operations结构体的操作方法,并分析了Linux字符设备的整体结构,给出了简单的设计模板。6.2节讲解了本章及后续各章所基于的globalmem虚拟字符设备,第6~9章都将基于该虚拟设备实例进行字符 ...
-
Linux-driver-development7.rar
作者:华清远见嵌入式学院。《Linux设备驱动开发详解》(08&09年度畅销榜TOP50)第7章、Linux设备驱动中的并发控制。Linux设备驱动中必须解决的一个问题是多个进程对共享资源的并发访问,并发访问会导致竞态。Linux提供了多种解决竞态问题的方式,这些方式适合不同的应用场景。7.1节描述了并发和竞态的概念及发生场合。7.2~7.5节分别讲解了中断屏蔽、原子操作、自旋锁和信号量等并发控制机制。7.6节讲解增加并发控制后的globalmem的设备驱动。
-
Linux-driver-development8.rar
作者:华清远见嵌入式学院。《Linux设备驱动开发详解》(08&09年度畅销榜TOP50)第8章、Linux设备驱动中的阻塞与非阻塞I/O。阻塞和非阻塞I/O是设备访问的两种不同模式,驱动程序可以灵活地支持用户空间对设备的这两种访问方式。8.1节讲解阻塞I/O和非阻塞I/O的区别,实现阻塞I/O的等待队列机制,以及在globalfifo设备驱动中增加对阻塞I/O支持的方法,并进行了用户空间的验证。8.2节讲解设备驱动的轮询(poll)操作的概念和编程方法,poll操作可以帮助用户了解是否能对设备进行无 ...
-
Linux-driver-development9.rar
作者:华清远见嵌入式学院。《Linux设备驱动开发详解》(08&09年度畅销榜TOP50)第9章、Linux设备驱动中的异步通知与异步I/O。在设备驱动中使用异步通知可以使得对设备的访问可进行时,由驱动主动通知应用程序进行访问。这样,使用无阻塞I/O的应用程序无须轮询设备是否可访问,而阻塞访问也可以被类似“中断”的异步通知所取代。
9.1节讲解了异步通知的概念和作用,9.2节讲解了Linux异步通知的编程方法,9.3节讲解了增加异步通知的globalfifo驱动及其在用户空间的验证。
-
Linux-driver-development10.rar
作者:华清远见嵌入式学院。《Linux设备驱动开发详解》(08&09年度畅销榜TOP50)第10章、中断与时钟。本章主要讲解Linux设备驱动编程中的中断与定时器处理。由于中断服务程序的执行并不存在于进程上下文,因此,要求中断服务程序的时间尽可能地短。因此,Linux在中断处理中引入了顶半部和底半部分离的机制。另外,内核中对时钟的处理也采用中断方式,而内核软件定时器最终依赖于时钟中断。10.1节讲解中断和定时器的概念及处理流程。10.2节讲解Linux中断处理程序的架构,顶半部、底半部之间的关系。10. ...
-
Linux-driver-development11.rar
作者:华清远见嵌入式学院。《Linux设备驱动开发详解》(08&09年度畅销榜TOP50)第11章、内存与I/O访问。由于Linux系统中提供了复杂的内存管理功能,所以内存的概念在Linux系统中变得相对复杂,出现了常规内存、高端内存、虚拟地址、逻辑地址、总线地址、物理地址、I/O内存、设备内存、预留内存等概念。本章将系统地讲解内存和I/O的访问编程,带您走出内存和I/O的概念迷宫。11.1节讲解内存和I/O的硬件机制,主要涉及内存空间、I/O空间和MMU。11.2节讲解Linux的内存管理、内存区域的 ...
-
Linux-driver-development12.rar
作者:华清远见嵌入式学院。《Linux设备驱动开发详解》(08&09年度畅销榜TOP50)第12章、Linux字符设备驱动综合实例。本章将分析5个典型的字符设备驱动,在这些驱动中,将灵活地运用到前面各章所讲解的内容。12.1节讲解按键的设备驱动,加深读者对字符设备驱动架构、阻塞与非阻塞、中断、定时器等相关知识的理解。12.2节讲解触摸屏的设备驱动,触摸屏的设备驱动比按键的设备驱动稍微复杂一些,但是很类似。12.3节讲解TI的DSP提供给通用CPU的HPI(主机并行接口)的设备驱动,硬件结构为ARM+ ...
-
Linux-driver-development13.rar
作者:华清远见嵌入式学院。《Linux设备驱动开发详解》(08&09年度畅销榜TOP50)第13章、Linux块设备驱动。块设备是与字符设备并列的概念,这两类设备在Linux中驱动的结构有较大差异,总体而言,块设备驱动比字符设备驱动要复杂得多,在I/O操作上表现出极大的不同,缓冲、I/O调度、请求队列等都是与块设备驱动相关的概念。本章将详细讲解Linux块设备驱动的编程方法。13.1节讲解块设备I/O操作的特点,分析字符设备与块设备在I/O操作上的差异。13.2节从整体上描述Linux块设备驱动的结构, ...
-
Linux-driver-development14.rar
作者:华清远见嵌入式学院。《Linux设备驱动开发详解》(08&09年度畅销榜TOP50)第14章、Linux终端设备驱动。在Linux系统中,终端设备非常重要,没有终端设备,系统将无法向用户反馈信息,Linux系统中包含控制台、串口和伪终端3类终端设备。14.1节阐述了终端设备的概念及分类,14.2节给出了Linux终端设备驱动的框架结构,重点讲解tty_driver结构体及其成员。14.3~14.5节在14.2节的基础上,分别讲解Linux终端设备驱动的模块加载/卸载函数和open()、close ...
-