《Linux驱动入门》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:魏清主编;梁庚,徐志国副主编
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2014
  • ISBN:9787121224614
  • 页数:309 页
图书介绍:本书包括4个部分:Linux内核部分,主要包括Linux进程调度与进程管理、中断机制、定时机制、并发与同步机制以及内存管理;Linux总线部分,主要包括Platfrom总线、单总线、I2C总线、串口总线、PCI总线、SPI总线和USB总线;Linux子系统部分,主要包括Keyboard子系统,LED子系统、RTC子系统、Input子系统、Backlight子系统、Hwmon子系统;Linux驱动部分,主要包括看门狗驱动、LCD驱动、触摸屏驱动、块设备驱动和网络设备驱动。

第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脱离子系统的DS 18B20驱动 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