Linux驱动开发入门与实战-(第2版)
本书特色
[
“linux典藏大系”自2010年陆续出版以来,因其内容丰富、讲解细腻、通俗易懂和实用性强等特色而深受广大读者的喜爱,长期位居同类图书销售排行榜的前列,累计销量近10万册。丛书中部分图书荣获51cto读书频道“*受读者喜爱的原创it技术图书奖”,还有多种图书的中文繁体字版权输出到了中国台湾地区出版发行。丛书中的多个品种被国内几十所培训机构和大中专院校选为教材。丛书的出版还得到了国内linux领域*知名的技术社区chinaunix的大力支持。读者在chinaunix社区的论坛上与社区中的linux爱好者进行了广泛的交流,取得了良好的学习效果。2014年2月“linux典藏大系“全新升级版(第2版)正式出版,第2版图书迎合了linux技术的*新发展,全部采用当前*流行和稳定的linux发行版或者相关工具,是linux爱好者学习linux的好帮手。
《linux典藏大系:linux驱动开发入门与实战(第2版)》是获得了大量读者好评的“linux典藏大系”中的《linux驱动开发入门与实战》的第2版。本.书由浅入深,全面、系统地介绍了linux驱动开发技术,并提供了大量实例供读者实战演练。另外,作者在实例讲解中详细分析了各种重要的理论知识,让读者能够举一反三。
《linux典藏大系:linux驱动开发入门与实战(第2版)》共分3篇。第1篇介绍了linux驱动开发概述、嵌入式处理器和开发板简介、构建嵌入式驱动程序开发环境、构建嵌入式linux操作系统、构建**个驱动程序、简单的字符设备驱动程序等内容;第2篇介绍了设备驱动中的并发控制、设备驱动中的阻塞和同步机制、中断与时钟机制、内外存访问等内容;第3篇介绍了设备驱动模型、rtc实时时钟驱动程序、看门狗驱动程序、iic设备驱动程序、lcd设备驱动程序、触摸屏设备驱动程序、输入子系统设计、块设备驱动程序、usb设备驱动程序等内容。
《linux典藏大系:linux驱动开发入门与实战(第2版)》重点突出,涉及面广,实用性强,从基本知识到核心原理,再到实例开发,几乎涉及linux驱动开发的所有重要知识。《linux典藏大系:linux驱动开发入门与实战(第2版)》适合所有想学习linux驱动开发的入门人员阅读,也适合作为驱动工程师的参考书,对于linux驱动开发的专业开发人员也有很高的参考价值。
]
内容简介
[
linux驱动发精品图书全面升级,china unix社区鼎力推荐,由浅入深、全面、系统地介绍linux驱动开发的基础与核心技术,注重实战,重点阐述8种典型的linux设备驱动程序的开发方法,赠送教学ppt
内容新颖:基于当前*流行的linux 2.6.34内核,讲解*新的驱动开发
内容全面:涵盖linux驱动开发的基础知识、核心技术与典型应用
讲解详细:结合典型开发实例与案例讲解各知识点,并力求详尽和透彻
注重实战:介绍了看门狗、lcd、触摸屏等8种典型设备的驱动开发方法
技巧性强:讲解时融入了作者多年的项目开发经验和实战技巧
推荐阅读(请点丛书链接查看)
“linux典藏大系”(丛书畅销10万册,全面、详细、深入、实用,linux爱好者必读经典)
入门很简单丛书 (精品畅销丛书,有口皆碑,新手必读)
零点起飞学编程 (新手学编程好帮手,编程其实并不难)
web开发典藏大系 (涵盖众多web开发的前言技术,由一线web开发人员打造)
《程序员的数学思维修炼(趣味解读)》 (专门为程序员而写的数学书,生动有趣,程序员必读!)
]
作者简介
[
郑强,毕业于西南大学,获硕士学位。长期从事嵌入式系统开发和设计。现任职于某公司的项目主管,先后开发过十几个大中型项目,涉及GPS定位系统、刷卡系统、指纹识别和手机等产品。工作之余,热心于Flash游戏引擎开发和2D游戏开发。
]
目录
第1篇linux驱动开发基础第1章linux驱动开发概述1.1linux设备驱动的基本概念1.1.1设备驱动程序概述1.1.2设备驱动程序的作用1.1.3设备驱动的分类1.2linux操作系统与驱动的关系1.3linux驱动程序开发1.3.1用户态和内核态1.3.2模块机制1.3.3编写设备驱动程序需要了解的知识1.4编写设备驱动程序的注意事项1.4.1应用程序开发与驱动程序开发的差异1.4.2gunc开发驱动程序1.4.3不能使用c库开发驱动程序1.4.4没有内存保护机制1.4.5小内核栈1.4.6重视可移植性1.5linux驱动的发展趋势1.5.1linux驱动的发展1.5.2驱动的应用1.5.3相关学习资源1.6小结第2章嵌入式处理器和开发板简介2.1处理器的选择2.1.1处理器简述2.1.2处理器的种类2.2arm处理器2.2.1arm处理器简介2.2.2arm处理器系列2.2.3arm处理器的应用2.2.4arm处理器的选型2.2.5arm处理器选型举例2.3s3c2440开发板2.3.1s3c2440开发板简介2.3.2s3c2440开发板的特性2.3.3其他开发板2.4小结第3章构建嵌入式驱动程序开发环境3.1虚拟机和linux安装3.1.1在windows上安装虚拟机3.1.2在虚拟机上安装linux3.1.3设置共享目录3.2代码阅读工具sourceinsight3.2.1sourcelnsight简介3.2.2阅读源代码3.3小结第4章构建嵌入式linux操作系统4.1linux操作系统的介绍4.1.1linux操作系统4.1.2linux操作系统的优点4.2linux内核子系统4.2.1进程管理4.2.2内存管理4.2.3文件系统4.2.4设备管理4.2.5网络功能4.3linux源代码结构分析4.3.1arch目录4.3.2drivers目录4.3.3fs目录4.3.4其他目录4.4内核配置选项4.4.1配置编译过程4.4.2常规配置4.4.3模块配置4.4.4块设备层配置4.4.5cpu类型和特性配置4.4.6电源管理配置4.4.7总线配置4.4.8网络配置4.4.10 文件系统配置4.5 嵌入式文件系统基础知识4.5.1 嵌入式文件系统4.5.2 嵌入式系统的存储介质4.5.3 jffs文件系统4.5.4 yaffs文件系统4.6 构建根文件系统4.6.1 根文件系统概述4.6.2 linux根文件系统目录结构4.6.3 busybox构建根文件系统4.7 小结5.1 开发环境配置之内核升级5.1.1 为什么升级内核5.1.2 内核升级5.1.3 make menconfig的注意事项5.2 hello world驱动程序5.2.1 驱动模块的组成5.2.2 hello world模块5.2.3 编译hello world模块5.2.4 模块的操作5.2.5 hello world模块加载后文件系统的变化5.3 模块参数和模块之间通信5.3.1 模块参数5.3.2 模块的文件格式elf5.3.3 模块之间的通信5.3.4 模块之间的通信实例5.4 将模块加入内核5.4.1 向内核添加模块5.4.2 kconfig5.4.3 kconfig的语法5.4.4 应用实例:在内核中新增加add_sub模块5.4.5 对add_sub模块进行配置5.5 小结第6章 简单的字符设备驱动程序6.1 字符设备驱动程序框架6.1.1 字符设备和块设备6.1.2 主设备号和次设备号6.1.3 申请和释放设备号6.2 初识cdev结构6.2.1 cdev结构体6.2.2 file_operations结构体6.2.3 cdev和file_operations结构体的关系6.2.4 inode结构体 1026.3 字符设备驱动的组成 1036.3.1 字符设备加载和卸载函数 1036.3.2 file_operations结构体和其成员函数6.3.3 驱动程序与应用程序的数据交换6.3.4 字符设备驱动程序组成小结6.4 virtualdisk字符设备驱动6.4.1 virtualdisk的头文件、宏和设备结构体6.4.2 加载和卸载驱动程序6.4.3 cdev的初始化和注册6.4.4 打开和释放函数6.4.5 读写函数6.4.6 seek()函数6.4.7 ioctl()函数6.5 小结第7章 设备驱动中的并发控制7.1 并发与竞争7.2 原子变量操作7.2.1 原子变量操作7.2.2 原子整型操作7.2.3 原子位操作7.3 自旋锁7.3.1 自旋锁概述7.3.2 自旋锁的使用7.3.3 自旋锁的使用注意事项7.4 信号量7.4.1 信号量概述7.4.2 信号量的实现7.4.3 信号量的使用7.4.4 自旋锁与信号量的对比7.5 完成量7.5.1 完成量概述7.5.2 完成量的实现7.5.3 完成量的使用7.6 小结8.1 阻塞和非阻塞8.2 等待队列8.2.1 等待队列概述8.2.2 等待队列的实现8.2.3 等待队列的使用8.3 同步机制实验8.3.1 同步机制设计8.3.2 实验验证8.4 小结第9章 中断与时钟机制9.1 中断简述9.1.1 中断的概念9.1.2 中断的宏观分类9.1.3 中断产生的位置分类9.1.4 同步和异步中断9.1.5 中断小结9.2 中断的实现过程9.2.1 中断信号线(irq)9.2.2 中断控制器9.2.3 中断处理过程9.2.4 中断的安装与释放9.3 按键中断实例9.3.1 按键设备原理图9.3.2 有寄存器设备和无寄存器设备9.3.3 按键设备相关端口寄存器9.4 按键中断实例程序分析9.4.1 按键驱动程序组成9.4.2 初始化函数s3c2440_buttons_init()9.4.3 中断处理函数isr_button()9.4.4 退出函数s3c2440_buttons_exit()9.5 时钟机制9.5.1 时间度量9.5.2 时间延时9.6 小结10.1 内存分配10.1.1 kmalloc()函数10.1.2 vmalloc()函数10.1.3 后备高速缓存10.2 页面分配10.2.1 内存分配10.2.2 物理地址和虚拟地址之间的转换10.3 设备i/o端口的访问10.3.1 linux i/o端口读写函数10.3.2 i/o内存读写10.3.3 使用i/o端口10.4 小结第12章 rtc实时时钟驱动第15章 lcd设备驱动程序第16章 触摸屏设备驱动程序第17章 输入子系统设计第18章 块设备驱动程序4.4.9 设备驱动配置第5章 构建**个驱动程序第2篇 linux驱动开发核心技术第8章 设备驱动中的阻塞和同步机制第10章 内外存访问第3篇 linux驱动开发实用实战第11章 设备驱动模型第13章 看门狗驱动程序第14章 iic设备驱动程序 第19章 usb设备驱动程序
封面
书名:Linux驱动开发入门与实战-(第2版)
作者:郑强
页数:435
定价:¥69.0
出版社:清华大学出版社
出版日期:2014-02-01
ISBN:9787302337768
PDF电子书大小:44MB 高清扫描完整版
本文标题:《Linux驱动开发入门与实战-(第2版)》PDF下载
资源仅供学习参考,禁止用于商业用途,请在下载后24小时内删除!