当前位置:首页 > 工业技术
嵌入式Linux驱动程序设计从入门到精通
嵌入式Linux驱动程序设计从入门到精通

嵌入式Linux驱动程序设计从入门到精通PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:冯国进编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2008
  • ISBN:9787302169420
  • 页数:316 页
图书介绍:本书介绍嵌入式Linux驱动程序设计方法。
《嵌入式Linux驱动程序设计从入门到精通》目录

第1章 Linux驱动程序基础 1

1.1 驱动程序的概念 1

1.2 Linux驱动程序模型 1

1.3 最基本的调试手段 5

1.4 导出符号的方法 5

1.5 动态加载驱动程序 6

1.6 在内核中加入新驱动 6

1.7 应用程序操作接口 7

1.8 第一个驱动 10

第2章 Linux驱动开发核心技术 17

2.1 同步机制 17

2.1.1 自旋锁 17

2.1.2 信号量 18

2.1.3 原子操作 18

2.1.4 读写锁(rwlock) 19

2.1.5 seqlock机制 21

2.1.6 RCU 22

2.2 完成事件 24

2.3 阻塞与非阻塞 25

2.4 时间 27

2.4.1 Linux下延迟 27

2.4.2 内核定时器 27

2.5 内存分配与映射 28

2.5.1 内存分配与释放 28

2.5.2 用户态和内核态内存交互 29

2.5.3 内存池 30

2.5.4 物理地址到虚拟地址的映射 31

2.5.5 内核空间到用户空间的映射 31

2.6 中断处理 32

2.6.1 硬件中断 32

2.6.2 软中断机制 35

2.7 /proc系统 36

2.8 工作队列 38

2.9 异步I/O 39

2.10 DMA 42

2.11 platform概念 43

2.12 简单驱动例程 45

2.12.1 信号量同步 45

2.12.2 阻塞式读写 46

2.12.3 定时器 48

2.12.4 内存映射 49

2.12.5 /proc访问 53

2.12.6 工作队列 55

第3章 GPIO驱动 57

3.1 ARM体系结构概述 57

3.1.1 RISC结构 57

3.1.2 处理器模式 58

3.1.3 寄存器组织 58

3.1.4 异常处理 60

3.2 S3C2410X处理器 61

3.3 S3C2410X I/O端口 63

3.4 最简单的设备驱动——LED灯驱动 64

3.5 S3C2410X GPIO键盘驱动 66

第4章 串行总线驱动 73

4.1 串行总线综述 73

4.1.1 I2C总线 73

4.1.2 SMBus总线 75

4.1.3 SPI总线 76

4.1.4 CAN总线 76

4.2 CAN接口芯片MCP2510 79

4.2.1 数据发送 79

4.2.2 数据接收 81

4.2.3 中断 83

4.2.4 波特率设置 84

4.2.5 工作模式 85

4.3 MCP2510驱动开发 86

4.4 Linux的I2C驱动架构 96

4.5 Linux I2C驱动开发 100

第5章 USB驱动程序 102

5.1 USB总线 102

5.1.1 USB总线概述 102

5.1.2 USB系统组成 102

5.1.3 USB传输模式 104

5.1.4 主机规范 105

5.1.5 USB设备描述符 105

5.1.6 HID类规范 110

5.2 Linux下的USB驱动框架 111

5.3 USB请求块urb 114

5.4 USB骨架程序 118

5.5 USB文件系统 126

5.6 USB摄像头驱动 127

5.6.1 USB摄像头原理 127

5.6.2 Video4Linux规范 128

5.6.3 OV511驱动分析与编译 132

5.6.4 spca5xx编译与使用 139

5.7 USB Gadget 140

5.7.1 USB设备控制器驱动 142

5.7.2 Gadget驱动 146

第6章 Linux Framebuffer驱动 150

6.1 LCD原理 150

6.2 Linux下LCD驱动架构 151

6.3 S3C2410X LCD控制器 157

6.4 S3C2410X LCD驱动开发 163

6.5 基于Framebuffer的界面系统开发 168

第7章 输入子系统驱动 174

7.1 Linux输入设备驱动 174

7.2 键盘输入设备驱动 179

7.3 在MiniGUI中加入键盘驱动 184

7.4 LED输入设备驱动 188

7.5 USB鼠标输入设备驱动 190

第8章 触摸屏驱动 196

8.1 触摸屏原理 196

8.2 S3C2410X触摸屏控制器 197

8.3 S3C2410X触摸屏驱动设计 200

8.4 校准原理及编程思路 204

8.4.1 线性校准原理 205

8.4.2 三点校准原理 205

8.5 利用tslib库校准 207

8.6 在MiniGUI中加入触摸屏驱动 211

第9章 块设备驱动 213

9.1 Linux块设备驱动 213

9.2 简单块设备驱动 217

9.3 Linux文件系统 221

9.4 MTD驱动分析 223

9.5 cramfs文件系统 224

9.6 NAND和NOR Flash 225

9.7 在系统中添加JFFS2分区 226

第10章 SD卡驱动 229

10.1 SD卡概述 229

10.2 SD卡的通信 231

10.3 SD卡寄存器 233

10.4 Linux对SD卡的支持 235

10.4.1 重要数据结构 236

10.4.2 MMC/SD卡块设备驱动 238

10.4.3 SD卡扫描 243

10.5 如何开发一个SD驱动 244

第11章 网络设备驱动 249

11.1 网络驱动基础 249

11.2 sk_buff 253

11.3 Linux网络设备驱动架构 256

11.4 一个虚拟网络设备驱动 259

11.5 DM9000网卡芯片 262

11.6 DM9000网卡驱动程序分析 265

第12章 红外设备驱动 276

12.1 红外通信协议规范 276

12.2 S3C2410X红外接口 277

12.3 S3C2410X红外设备驱动 279

12.4 Linux对红外网络通信的支持 282

12.5 红外SOCKET通信 285

第13章 音频设备驱动 291

13.1 Linux音频体系 291

13.2 UDA1341TS音频原理 292

13.3 S3C2410X的音频接口 294

13.4 UDA1341TS驱动开发 302

13.5 音频应用层编程 308

13.5.1 OSS音频编程接口 308

13.5.2 ALSA音频编程接口 310

附录:深圳优龙科技YL2410开发板简介 313

主要参考文献 316

返回顶部