书籍详情

Linux驱动入门

Linux驱动入门

作者:魏清 著

出版社:电子工业出版社

出版时间:2014-03-01

ISBN:9787121224614

定价:¥49.00

购买这本书可以去
内容简介
  本书主要是从Linux内核、Linux总线和Linux子系统三个角度对Linux驱动进行介绍的,然后对字符设备、块设备和网络设备也分别做了大致介绍。从内容上来讲,本书包括4个部分:Linux内核部分(第1~6章),主要包括Linux进程调度与进程管理、中断机制、定时机制、并发与同步机制及内存管理,通过对本篇内容的学习,读者可以掌握Linux内核的基本概念;Linux总线部分(第7~13章),主要包括Platfrom总线、单总线、I2C总线、串口总线、PCI总线、SPI总线和USB总线,通过对本篇内容的学习,读者可以掌握设备是如何挂载到Linux内核总线上的;Linux子系统部分(第14~19章),主要包括Keyboard子系统,LED子系统、RTC子系统、Input子系统、Backlight子系统、Hwmon子系统,通过对本篇内容的学习,读者可以掌握如何使用内核中现有的子系统,给设备编写驱动;Linux驱动部分(第20~24章),主要包括看门狗驱动、LCD驱动、触摸屏驱动、块设备驱动和网络设备驱动,通过对本篇内容的学习,读者可以掌握具体的设备驱动程序的设计方法。
作者简介
  魏清,男,工学硕士,毕业于南京邮电大学通信与信息系统专业,2011至今在苏嵌从事嵌入式项目的研究和培训工作,具有丰富的Linux驱动开发的经验。
目录
目 录
第1章 内核基础 1
1.1 Linux内核组成 1
1.2 Linux内核的引导 2
1.3 处理器 3
1.4 存储器 4
第2章 进程管理 5
2.1 进程调度 5
2.2 Linux调度的实现 5
2.3 抢占和上下文切换 6
2.4 进程概念 6
2.5 进程上下文 7
2.6 进程与线程的创建 7
2.7 孤儿进程 8
2.8 系统调用 8
2.9 内核设计系统调用 9
第3章 中断处理 11
3.1 中断和中断处理 11
3.2 中断的下半部分 11
3.3 中断下半部分的实现 12
第4章 定时计数 14
4.1 定时器基本概念 14
4.2 动态定时器的使用 15
第5章 并发同步 16
5.1 内核同步与死锁问题 16
5.2 解决并发同步的方法 17
第6章 内存管理 19
6.1 内存管理中基本概念 19
6.2 申请内存的几种方法 19
6.3 内核栈 20
6.4 进程地址空间的基本概念 21
6.5 创建和撤销内存区域 22
6.6 页表 22
6.7 页高速缓存与页回写 23
第7章 Platform总线 25
7.1 Platform设备驱动概念 25
7.1.1 Platform总线 25
7.1.2 Platform设备 26
7.1.3 Platform驱动 29
7.2 平台设备的资源 29
7.2.1 平台数据和私有数据的区别 29
7.2.2 Platform设备资源的读取 30
7.3 平台设备驱动测试 30
7.3.1 Platform设备模块代码 31
7.3.2 Platform驱动模块代码 32
7.3.3 应用层测试代码 37
第8章 单总线 39
8.1 单总线驱动概述 39
8.2 单总线驱动移植 39
8.3 单总线驱动内核代码分析 40
8.3.1 master驱动分析 40
8.3.2 slave驱动分析 48
8.4 单总线驱动测试 52
8.5 脱离子系统的DS18B20驱动 53
第9章 I2C总线 58
9.1 系统理论 58
9.1.1 I2C驱动体系概述 58
9.1.2 驱动工程师需要做的事 58
9.2 内核代码 58
9.2.1 内核/drivers/i2c目录下文件分析 58
9.2.2 I2C核心 59
9.2.3 I2C总线驱动 59
9.2.4 I2C设备驱动 73
9.3 测试代码 80
第10章 串口总线 83
10.1 系统理论 83
10.2 串口内核配置 83
10.3 UART层内核代码 85
10.4 TTY层内核代码 88
10.5 线路规程内核代码 97
10.6 串口测试代码 103
第11章 PCI总线 109
11.1 PCI总线理论 109
11.1.1 PCI总线的特点 109
11.1.2 PCI设备概述 109
11.1.3 查询PCI总线和设备的命令 110
11.1.4 PCI总线架构 110
11.2 PCI驱动 111
11.2.1 PCI寻找空间 111
11.2.2 PCI总线支持的设备 112
11.2.3 PCI驱动其他API 112
11.3 PCI驱动模型 112
11.4 PCI设备的枚举过程 114
第12章 SPI总线 132
12.1 SPI理论介绍 132
12.2 SPI驱动移植 132
12.3 SPI设备和驱动的注册 135
12.3.1 SPI主控设备的注册 135
12.3.2 SPI接口设备的添加 136
12.3.3 SPI主控设备驱动的注册 137
12.3.4 SPI接口设备的注册 137
12.3.5 SPI接口设备驱动的注册 138
12.4 SPI内核代码分析 139
12.5 SPI测试代码 159
第13章 USB总线 162
13.1 USB总线理论 162
13.1.1 USB概述 162
13.1.2 USB主机控制器 162
13.1.3 USB设备与USB驱动的匹配 162
13.1.4 USB设备的逻辑结构和端点的传输方式 163
13.1.5 USB的URB请求块 163
13.1.6 USB的枚举过程 164
13.2 USB总线驱动分析 164
13.2.1 USB驱动框架usb-skeleton.c 164
13.2.2 USB鼠标驱动 usbmouse.c 174
13.2.3 USB键盘驱动usbkbd.c 178
13.2.4 U盘驱动分析 183
13.3 U盘驱动测试 197
第14章 Keyboard子系统 198
14.1 Keyboard子系统移植与分析 198
14.2 Keyboard驱动测试 200
第15章 LED子系统 201
15.1 LED子系统移植与分析 201
15.2 LED驱动测试 205
第16章 RTC子系统 206
16.1 RTC子系统的移植与分析 206
16.2 RTC驱动测试 210
第17章 Input子系统 211
17.1 Input子系统系统理论 211
17.1.1 Input子系统概述 211
17.1.2 Input子系统几个重要数据结构 211
17.1.3 Input子系统核心层和事件处理层函数概述 214
17.2 内核代码 214
17.2.1 输入子系统设备驱动层 214
17.2.2 输入子系统核心层 224
17.2.3 输入子系统事件处理层 227
17.3 测试代码 229
17.3.1 设备驱动层代码 230
17.3.2 应用层测试代码 232
17.3.3 测试过程和结果 233
第18章 Backlight背光子系统 234
18.1 Backlight背光子系统概述 234
18.2 PWM核心驱动 234
18.3 Backlight核心驱动 239
18.4 基于PWM&Backlight的蜂鸣器驱动 242
18.5 驱动测试 246
第19章 Hwmon子系统 247
19.1 Hwmon子系统概述 247
19.2 ADC核心驱动 247
19.3 Hwmon核心驱动 251
19.4 基于ADC&Hwmon的A/D驱动 252
19.5 驱动测试 258
第20章 看门狗驱动 259
20.1 看门狗驱动移植与分析 259
20.2 看门狗驱动测试 260
第21章 LCD驱动 261
21.1 LCD屏理论 261
21.1.1 LCD屏基本概念 261
21.1.2 帧缓冲的理解 261
21.2 Mini2440的X35型LCD移植 262
21.3 LCD文件层和驱动层设计思路 264
21.3.1 LCD驱动中几个重要的数据结构 265
21.3.2 LCD驱动层 268
21.3.3 LCD文件层 279
21.4 LCD驱动测试 284
第22章 触摸屏驱动 286
22.1 触摸屏理论概述 286
22.2 触摸屏驱动分析 286
22.3 触摸屏驱动测试 294
第23章 Linux下的块设备驱动 296
23.1 块设备驱动概论 296
23.2 块设备驱动中几个重要的数据结构 296
23.3 使用I/O调度的块设备驱动 298
23.4 块设备驱动的测试 302
第24章 Linux下的网络设备驱动 305
24.1 网络设备驱动基础 305
24.1.1 以太网基础理论 305
24.1.2 Linux网络驱动层次 305
24.2 网络设备驱动移植 307
24.3 网络设备驱动测试 308
参考文献 309
猜您喜欢

读书导航