Linux 设备驱动开发详解(第2版)高清.pdf
Linux 设备驱动开发详解(第2版)高清.pdf,学习linux设备驱动的最好最全的资料。前Linux设备驱动的调试(第22章)Linux设备驱动的移植(第23章)内核调试方法( printk、开发环境Linux性能2426|im与共他内核构建GDB移植的巧借类似内核系统间的po、 Oops. strace分析与优化|设备驱动代码|驱动移植驱动移植移植kgd、仿真器)调试与移植Linux Ic核心、LinI块设备驱动 Linux终端设备坐动(第14章总线与设备驱动Linux树络设备驱动第13章(第15章〕(第16章Linux音频设备驱动Linux lcd设备驱动Linux usB主机制第18章)设备驱动器、设备驱动与Linux PC没备驱动 OSS/ALSA/ASOC(第18章)gadge驱动(第20章(第21章)复杂设备驱动Liux内核模块iux文件系统与Lmux字符设备驱动Lin设备驱动中的 Linux设备驱动中的(第4章)设备文件系统(第5章第6章)开发控制阻塞与非阻塞lO(第7章〕第8章)Linux设备驱动的工程化(第12章)Linux设备驱动中的异步通知与异步IO中断与时钟内存与IO访问(第9章)第10章第11章platform mise分层分离 Android思想思想驱动字符设备驱动与驱动开发Linux设备设备驱动开发的硬件基础(第2章)Linuⅸx内核及内核开发基础(第3章)处理器,存储器原理图、硬时序、仪器仪表内核的发展内核的内核的编译m以下的接口与总线手册分使用驱动开发基础TINUX目录目录第1篇 Linux设备驱动入门第1章 Linux设备驱动概述及开发环境构建1.设备驱动的作用…2无操作系统时的设各驱动…1.3有操作系统时的设备驱动14 Linux设备驱动…14.1设备的分类及特点14.2 Linux设备驱动与整个软硬件系统的关系14.3 Linux设备驱动的重点、难点…23356678881.5 Linux设备驱动开发环境构建1.5.1PC上的 Linux环境…1.5.2IDD6410开发板1.3工具链安装13154主机端nfs和ttp服务安装141.55源代码阅读和编辑1.6设备驱动 Hello world:LED驱动16.1无操作系统时的LLD驱动…1516.2 Linux下的LED驱动161.7全书结构…19第g章驱动设计的硬件基础……212.1处理器…222.1.1通用处理器……21.2数字信号处理器232.2存储器………2523接口与总线…………292.3.1串29TINUX1Lhux设备驱动开发详解(第2版)2.3.2IC302.3.3USB234以太网接口……332.3.5ISA23.6PCI和cPCI3524CPLD和FPGA……3825原理图分析………………4125.1原理图分析的内容412.5.2原理图的分析方法…42.6硬件时序分析………2.6.1时序分析的概念………………432.6.2典型硬件时序……27芯片手册阋读方法452.8仪器仪表使用2.81万用表2.82示波器…28.3逻辑分析仪…2.9总第s章 Linux内核及内核编程533.1 Linux内核的发展与演变3.2 Linux26内核的特点…5533 Linux内核的组成……331 Linux内核源代码目录结构…………………563.3.2 Linux内核的组成部分733.3 Linux内核空间与用户空间34 Linux内核的编译夂加载……中,3.4.1 Linux内核的编译342 Kconfig和 Makefile34.3inux内核的引导…3.5Linuⅸx下的C编程特点…713.51 Linux编码风格………………………71352GNUC与△NSIC…………7335.3do{} while(0)…TINUX目录3.5.4goto…7836总结……第2篇 Linux设备驱动核心理论第±章 Linux内核模块……4.Ⅰ Linux内核模块简介……4,2 Linux内核模块程序结构……………854.3模块加载函数·………8544模块卸载函数…864.5模块参数……874.6导出符号884.7模块声明与描述……8948模块的使用计数4.9模块的编译………904.10使用模块绕开GPL…9191第5章 Linux文件系统与设备文件系统………925.1 Linux文件操作……935.1.1文件操作系统调用935.1.2C库文件操作9552 Linux文件系统975.21 Linux文件系统目录结构…………9752.2 Linux文件系统与设备驱动………9853 devfs设备文件系统10154udev改备文件系统…5.4.1udev与 devfs的区别…102542 systs文件系统与 Linux设备模型…]04543udev的组成110544udev规则文件11154.5创建和配置mdev…55LDD6410的SD和NAND文件系统114TINUXLinux设备驱动开发详解(第2版)56总结117第G章字符设备驱动1186.1 Linux字符设备驱动结构…1196.1.1cev结构体……6.1.2分配和释放设备号非·,丰………120613 file_operations结构体···**12061.4 Linux字符设备驱动的组成1226.2 globalmem虚拟设备实例描述1246.3 globalmem设各驱动…12563.1头文件、宏及设备结构体1256.3.2加载与卸载设备驱动…1266.33读写函数…………1276.34sck函数……1286.3.5ioct函数………““+12963.6使用文件私有数据……13064 globalmem驱动在用户空间的验证…6.5总结··中·138第7章 Linux设备驱动中的并发控制1397.1并发与竞态1407.2中断屏蔽417.3原子操作14273.1整型原子操作…14273.2位原子操作…………14274自旋锁14374.1自旋锁的使用…14374.2读写自旋锁……14574.3顺序锁………………l47744读-拷贝-更新14875信号量15275.1信号量的使用152752信号量用于同步……………非,154TINUX目录753完成量用于同步154754自旋锁v信号量……155755读写信号量…1557.6互斥体…………77增加并发控制后的 globalmem驱动…15778总结160第8章 Linux设备驱动中的阻塞与非阻塞I/O16l81阻塞与非阻塞IO……16281.1等待队列…1628.1.2支持阻塞操作的 globalfifo设备驱动+·++++·““·813在用户空间验证 globalfifo的读写17182轮询操作…………17282.1轮询的概念与作用………8.22应用程序中的轮询编程1722.3设备驱动中的轮询编程…………………1728.3支持轮询操作的 globalitY驱动……17383.1在 globalfifo驱动中增加轮询操作…………173832在用户空间验证 globalfifo设备的轮询17484总结…175第9章 Linux设备驱动中的异步通知与异步I/Ol769.1异步通知的概念与作用…………17792 Linux异步通知编程………17792.1 Linux信号……17792.2信号的接收……179923信号的释放…93支持异步通知的 globallifo驱动…1829.31在 globalfifo驱动中増加异步通知…18293.2在用户空间验证 globalfifo的异步通知18494 Linux2.6异步I/O…185941AIO概念与GNUC库函数………““““++185942使用信号作为AIO的通知943使用回调函数作为AO的通知189TINUXLhux设备驱动开发详解(第2版)944AIO与设备驱动1909.5总结……192第10章中断与时钟19310.1中断与定时器…………………19410.2 Linux屮断处理程序架构………19510.3 Linux中断编程……10.3.1申请和释放中断19610.3.2使能和屏蔽中断…………………19710.3.3底半部机制……19710.3.4实例:S3C6410实时钟中断··++“++++·““··++……200104中断共享……………20210.5内核定时器……………………20310.51内核定时器编程…20310.52内核中延迟的工作 delayed work20510.53实例:秒字符设备………+“+………20610.6内核延时21010.6.1短延迟…21010.6.2长延迟21010.6.3睡着延迟自:10.7总结第11章内存与IO访问2131.1CPU与内存和IO……11.1.1内存空间与IO空间…1.⊥.2内存管理单元MMU21511.2 Linux内存管理…………11.3内存存取……………………22011.3.1用户空间内存动态申请22011.3.2内核空间内存动态申请22111.3.3虚拟地址与物理地址关系2241.4设备IO端口和IO内存的访问22511.4 1 Linux i/o端口和IO内存访问接口…22511.4.2申请与释放设备IO端口和IO内存226TINUX目录114.3设备l0端口和IO内存访问流程2271144将设备地址映射到用户空间………11.5ⅠO内存静态映射l.6DMA…11.6.,1DMA与 Cache-致性23611.6.2 Linux下的DMA编程………………………………………23711.7总结…241第19章工程中的 Linux设备驱动12.1 platform设备驱动……24312.11 platfor总线、设各与驱动……2431212将 globalfifo作为 platform设备12.1.3 platform设备资源和数据…24612.2设备驱动的分层思想……““+2481221设备驱动核心层和例化…1222输入设备驱动249122.3RTC设备驱动…25412.3主机驱动与外设驱动分离思想……255123.1主机、外设驱动分离的意义255123.2 Linux spi主机和设备驱动12.4设备驱动中的电源管理………260125misc设备驱动26212.6基于 systs的设备驱动………263127 Linux设备驱动的固件加载265128 Android设备驱动129总结…第3篇 Linux设备驱动实例第13章 Linux块设备驱动……27213.1块设备的I/O探作特点……273132 Linux块设备驱动结构…27313.2.1 block device operations结构体……………………27313.2.2 gendisk结构体274TINUX
用户评论