《嵌入式LINUX驱动程序实战开发》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:奚海蛟,谌利,吕铁军编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2012
  • ISBN:9787512409255
  • 页数:341 页
图书介绍:驱动程序,是连接上层应用层和底层硬件层之间的桥梁,负责直接对硬件进行操作,是嵌入式系统开发中不可或缺的重要组成部分。本书以SAMSUNG公司的S3c2440为代表的ARM9为核心,以广州天嵌科技有限公司的TQ2440为硬件平台,讲述了驱动程序的开发流程和必备的知识。并针对TQ2440开发板的各个外设接口,为读者提供了简单而又直观的驱动程序实例,以加深读者的理解。本书可分为两个部分:一是驱动程序开发的基础,二是驱动程序开发实例。通过理论和实践相结合,让读者更容易掌握。

第1章Linux设备驱动概述 1

1.1设备驱动的作用 1

1.2 Linux设备驱动的分类 2

1.3内核空间与用户空间 3

1.4编译驱动程序 4

本章小结 7

第2章 开发环境的搭建 8

2.1目标系统的选择 8

2.2主机服务配置 10

2.2.1交叉编译环境的搭建 10

2.2.2网络服务配置 12

2.3 Makefile解析 16

本章小结 18

第3章Linux设备驱动开发基础 19

3.1字符设备驱动程序框架 19

3.1.1加载和卸载 19

3.1.2主、次设备号 21

3.1.3数据结构 24

3.1.4设备注册 28

3.1.5 open和release 30

3.1.6读和写 32

3.1.7 License问题 35

3.2竞争与并发 36

3.2.1竞争与并发概述 36

3.2.2并发控制机制原理 37

3.2.3信号量的实现 39

3.2.4 completion的实现 45

3.2.5其他并发控制机制简介 50

3.3阻塞和异步 52

3.3.1休眠 52

3.3.2 Demo驱动测试 56

3.3.3异步通知 60

3.4时间度量 66

3.4.1测量时间 66

3.4.2获取当前时间和延时 68

3.4.3内核定时器 70

3.4.4 Tasklets机制 76

3.4.5时间度量驱动实例 78

3.4.6驱动程序测试 81

3.5 LED驱动开发实例 82

3.5.1驱动代码分析 83

3.5.2驱动程序测试 90

本章小结 91

第4章Linux设备驱动调试 92

4.1 GDB调试器使用 92

4.2 Linux内核调试和内核打印 98

4.2.1内核中的调试支持 98

4.2.2打印调试信息 102

4.3监视工具 104

4.4内核调试器 110

4.5仿真器调试 116

4.6应用程序测试 117

本章小结 117

第5章 键盘驱动程序设计 118

5.1 Linux中断处理体系结构 118

5.1.1中断的初始化 121

5.1.2注册中断 121

5.1.3中断的处理过程 123

5.1.4中断处理函数卸载 125

5.2按键驱动程序实例 125

5.2.1 S3C2440A的中断控制器 125

5.2.2按键电路连接和工作原理 130

5.2.3驱动程序实现与分析 131

5.2.4测试程序情景分析 139

本章小结 141

第6章A/D驱动程序设计 142

6.1 AD7490介绍 142

6.2 S3C2440与AD7490的硬件连接 143

6.3 SPI通信原理 144

6.4 S3C2440的SPI控制器 145

6.4.1 SPI控制寄存器(SPCONn) 145

6.4.2 SPI状态寄存器(SPSTAn) 146

6.4.3 SPI引脚控制寄存器(SPPINn) 146

6.4.4 SPI波特率预分频寄存器(SPPREn) 147

6.4.5 SPI发送数据寄存器(SPTDATn) 148

6.4.6 SPI接收数据寄存器(SPRDATn) 148

6.5 AD驱动程序实例 149

6.5.1工作原理分析 149

6.5.2驱动程序源码与分析 149

6.5.3测试程序情景分析 154

本章小结 155

第7章 串口驱动程序设计 156

7.1 Linux中的终端设备 156

7.1.1 Linux中的终端设备分类 156

7.1.2 Linux中的终端设备驱动 157

7.1.3 Linux中的UART设备驱动移植 159

7.2串口驱动程序实例 173

7.2.1 S3C2440串口硬件 174

7.2.2 S3C2440串口驱动程序源码与分析 180

7.2.3 S3C2440串口测试程序情景分析 185

本章小结 187

第8章I2C驱动程序设计 188

8.1 I2C总线及其通信 188

8.1.1 I2C总线的特点 188

8.1.2 I2 C总线的通信 189

8.2 S3C2440的I2 C接口硬件原理 191

8.3 S3C2440 I2 C设备驱动程序设计实例 194

8.3.1 AT24C02硬件结构介绍 194

8.3.2 S3C2440与AT24C02的连接与分析 195

8.3.3 AT24C02驱动编写实例 197

8.3.4测试程序编写 203

本章小结 204

第9章RTC时钟驱动程序设计 205

9.1 Linux下的RTC时钟 205

9.1.1 Linux下的时钟系统简介 205

9.1.2 Linux对时间的表示 205

9.2 S3C2440中的RTC控制器 206

9.3 Linux中的RTC驱动功能实现分析 210

9.3.1 RTC平台设备 210

9.3.2 RTC平台设备驱动 212

9.4 S3C2440 RTC设备驱动程序设计实例 214

9.4.1 RTC驱动编写实例 214

9.4.2测试程序编写 220

本章小结 222

第10章 触摸屏设备驱动程序设计 223

10.1触摸屏结构和工作原理 223

10.1.1触摸屏设备概述 223

10.1.2触摸屏设备的工作原理 223

10.2 S3C2440触摸屏接口 226

10.2.1 S3C2440触摸屏接口概述 226

10.2.2 S3C2440触摸屏接口工作模式 227

10.2.3 S3C2440触摸屏接口寄存器 228

10.3 Linux的input子系统驱动架构 232

10.3.1 input子系统核心层 233

10.4 S3C2440触摸屏设备驱动实例 239

10.4.1硬件连接和驱动实现步骤 239

10.4.3测试实例 247

本章小结 250

第11章 网络设备驱动程序设计 251

11.1网络设备驱动简介 251

11.1.1网络结构模型简介 251

11.1.2 Linux下的网络设备概述 252

11.1.3 Linux网络设备驱动的关键数据结构 254

11.1.4 Linux网络设备驱动设计流程 264

11.2 DM9000驱动程序设计 267

11.2.1 DM9000介绍 267

11.2.2 DM9000和S3C2440接口电路设计 272

11.2.3 DM9000驱动程序实例 272

本章小结 289

第12章USB驱动程序设计 290

12.1 USB设备概述 290

12.1.1 USB规范 291

12.2 URB(USB数据传输块) 298

12.3 USB主机驱动 303

12.3.1 S3C2440中的USB主机驱动控制器 303

12.3.2 USB主机驱动结构 303

12.3.3 S3C2440的OHCI HCD实现 315

12.4 USB设备驱动 320

12.4.1 S3C2440中的USB设备驱动控制器 320

12.4.2 USB设备驱动结构 320

12.4.3 USB骨架程序 322

12.4.4 USB串口驱动分析 333

12.5 Linux中的USB驱动移植 336

本章小结 340

参考文献 341