嵌入式Linux驱动开发教程

嵌入式Linux驱动开发教程
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
2017-06
版次: 1
ISBN: 9787121313592
定价: 69.00
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 400页
字数: 640千字
226人买过
  • 本书结合大量实例,在基于ARM Cortex-A9四核处理器Exynos4412的硬件教学平台和PC机上,全面详细讲解了Linux设备驱动开发。主要内容包含开发环境的搭建,内核模块,字符设备驱动框架,高级I/O,中断和时间管理,互斥和同步,内存和DMA,Linux设备模型,外设的驱动实例,总线类设备驱动,块设备驱动,网络设备驱动和内核调试技巧。对每一个知识点都有一个对应的典型实例,大多数实例既可以在上面说到的嵌入式平台上运行,也可以在PC机上运行。 华清远见嵌入式培训中心,是国内成立较早、规模较大的专业嵌入式培训机构。为满足快速增长的移动开发领域对Android等主流嵌入式操作系统研发人才的需求,华清远见在多年高端嵌入式专业培训和丰富的企业内训实施经验的基础上,于2004年正式成立华清远见3G学院,学院充分整合行业经验及专业领域的企业合作资源优势,打造出专业、科学的实训体系,帮助合作院校时刻紧跟行业用人需求的新趋势,引导毕业生在知识结构上更好地实现与企业真实需求的对接,从而有效提高其就业竞争优势,顺利进入专业研发领域。欢迎访问华清远见教育集团官方网站:http://www.hqyj.com及3G学院官方网站:http://www.3g-edu.org获取更新资讯。 第1章  概述1

    第2章  内核模块6

    2.1  第一个内核模块程序7

    2.2  内核模块的相关工具10

    2.3  内核模块一般的形式11

    2.4  将多个源文件编译生成一个内核模块13

    2.5  内核模块参数15

    2.6  内核模块依赖17

    2.7  关于内核模块的进一步讨论20

    2.8  习题21

    第3章  字符设备驱动23

    3.1  字符设备驱动基础24

    3.2  字符设备驱动框架30

    3.3  虚拟串口设备35

    3.4  虚拟串口设备驱动35

    3.5  一个驱动支持多个设备39

    3.6  习题45

    第4章  高级I/O操作46

    4.1  ioctl设备操作47

    4.2  proc文件操作56

    4.3  非阻塞型I/O58

    4.4  阻塞型I/O60

    4.5  I/O多路复用65

    4.6  异步I/O69

    4.7  几种I/O模型总结73

    4.8  异步通知74

    4.9  mmap设备文件操作83

    4.10  定位操作88

    4.11  习题90

    第5章  中断和时间管理92

    5.1  中断进入过程93

    5.2  驱动中的中断处理98

    5.3  中断下半部101

    5.3.1  软中断102

    5.3.2  tasklet104

    5.3.3  工作队列106

    5.4  延时控制108

    5.5  定时操作109

    5.5.1  低分辨率定时器109

    5.5.2  高分辨率定时器112

    5.6 习题114

    第6章  互斥和同步116

    6.1  一种典型的竞态117

    6.2  内核中的并发117

    6.3  中断屏蔽118

    6.4  原子变量119

    6.5  自旋锁120

    6.6  读写锁122

    6.7  顺序锁123

    6.8  信号量125

    6.9  读写信号量127

    6.10  互斥量127

    6.11  RCU机制128

    6.12  虚拟串口驱动加入互斥130

    6.13  完成量134

    6.14  习题135

    第7章  内存和DMA137

    7.1  内存组织138

    7.2  按页分配内存139

    7.3  slab分配器142

    7.4  不连续内存页分配144

    7.5  per-CPU变量145

    7.6  动态内存实例146

    7.7  I/O内存147

    7.8  DMA原理及映射155

    7.8.1  DMA工作原理155

    7.8.2  DMA映射157

    7.9  DMA统一编程接口160

    7.10  习题164

    第8章  Linux设备模型166

    8.1  设备模型基础167

    8.2  总线、设备和驱动171

    8.3  平台设备及其驱动176

    8.3.1  平台设备176

    8.3.2  平台驱动178

    8.3.3  平台驱动简单实例179

    8.3.4  电源管理182

    8.3.5  udev和驱动的自动加载183

    8.3.6  使用平台设备的LED驱动184

    8.3.7  自动创建设备节点190

    8.4  Linux设备树193

    8.4.1  Linux设备树的由来193

    8.4.2  Linux设备树的目的194

    8.4.3  Linux设备树的使用195

    8.4.4  使用设备树的LED驱动202

    8.5  习题204

    第9章  字符设备驱动实例205

    9.1  LED驱动206

    9.2  基于中断的简单按键驱动209

    9.3  基于输入子系统的按键驱动213

    9.4  ADC驱动222

    9.5  PWM驱动231

    9.6  RTC驱动239

    第10章  总线类设备驱动243

    10.1  I2C设备驱动244

    10.1.1  I2C协议简介244

    10.1.2  Linux I2C驱动246

    10.1.3  I2C设备驱动实例251

    10.2  SPI设备驱动258

    10.2.1  SPI协议简介258

    10.2.2  Linux SPI驱动259

    10.2.3  SPI设备驱动范例264

    10.3  USB设备驱动268

    10.3.1  USB协议简介268

    10.3.2  Linux USB驱动271

    10.3.3  USB设备驱动实例274

    10.4  PCI设备驱动283

    10.4.1  PCI协议简介283

    10.4.2  Linux PCI驱动287

    10.4.3  PCI设备驱动实例288

    10.5  习题296

    第11章  块设备驱动298

    11.1  磁盘结构299

    11.2  块设备内核组件300

    11.3  块设备驱动核心数据结构和函数301

    11.4  块设备驱动实例308

    11.5  习题316

    第12章  网络设备驱动317

    12.1  网络层次结构318

    12.2  网络设备驱动核心数据结构和函数319

    12.3  网络设备驱动实例327

    12.4  DM9000网络设备驱动代码分析333

    12.5  NAPI340

    12.6  习题343

    第13章  内核调试技术344

    13.1  内核调试方法345

    13.1.1  内核调试概述345

    13.1.2  学会分析内核源程序346

    13.1.3  调试方法介绍346

    13.2  内核打印函数350

    13.2.1  内核镜像解压前的串口输出函数350

    13.2.2  内核镜像解压后的串口输出函数352

    13.2.3  内核打印函数353

    13.3  获取内核信息357

    13.3.1  系统请求键357

    13.3.2  通过/proc接口358

    13.3.3  通过/sys接口359

    13.4  处理出错信息362

    13.4.1  oops信息362

    13.4.2  panic364

    13.4.3  通过ioctl方法366

    13.5  内核源码调试367

    13.6  习题369

    第14章  搭建开发环境370

    14.1  准备Linux开发主机371

    14.2  安装串口相关软件375

    14.2.1  安装串口驱动375

    14.2.2  安装串口终端软件PuTTY376

    14.2.3  安装串口终端软件minicom377

    14.3  安装TFTP和NFS服务器379

    14.4  准备Linux内核源码381

    14.5  在目标板上运行Linux系统382

    14.6  源码浏览及编辑器环境386

    习题答案388

    参考文献389
  • 内容简介:
    本书结合大量实例,在基于ARM Cortex-A9四核处理器Exynos4412的硬件教学平台和PC机上,全面详细讲解了Linux设备驱动开发。主要内容包含开发环境的搭建,内核模块,字符设备驱动框架,高级I/O,中断和时间管理,互斥和同步,内存和DMA,Linux设备模型,外设的驱动实例,总线类设备驱动,块设备驱动,网络设备驱动和内核调试技巧。对每一个知识点都有一个对应的典型实例,大多数实例既可以在上面说到的嵌入式平台上运行,也可以在PC机上运行。
  • 作者简介:
    华清远见嵌入式培训中心,是国内成立较早、规模较大的专业嵌入式培训机构。为满足快速增长的移动开发领域对Android等主流嵌入式操作系统研发人才的需求,华清远见在多年高端嵌入式专业培训和丰富的企业内训实施经验的基础上,于2004年正式成立华清远见3G学院,学院充分整合行业经验及专业领域的企业合作资源优势,打造出专业、科学的实训体系,帮助合作院校时刻紧跟行业用人需求的新趋势,引导毕业生在知识结构上更好地实现与企业真实需求的对接,从而有效提高其就业竞争优势,顺利进入专业研发领域。欢迎访问华清远见教育集团官方网站:http://www.hqyj.com及3G学院官方网站:http://www.3g-edu.org获取更新资讯。
  • 目录:
    第1章  概述1

    第2章  内核模块6

    2.1  第一个内核模块程序7

    2.2  内核模块的相关工具10

    2.3  内核模块一般的形式11

    2.4  将多个源文件编译生成一个内核模块13

    2.5  内核模块参数15

    2.6  内核模块依赖17

    2.7  关于内核模块的进一步讨论20

    2.8  习题21

    第3章  字符设备驱动23

    3.1  字符设备驱动基础24

    3.2  字符设备驱动框架30

    3.3  虚拟串口设备35

    3.4  虚拟串口设备驱动35

    3.5  一个驱动支持多个设备39

    3.6  习题45

    第4章  高级I/O操作46

    4.1  ioctl设备操作47

    4.2  proc文件操作56

    4.3  非阻塞型I/O58

    4.4  阻塞型I/O60

    4.5  I/O多路复用65

    4.6  异步I/O69

    4.7  几种I/O模型总结73

    4.8  异步通知74

    4.9  mmap设备文件操作83

    4.10  定位操作88

    4.11  习题90

    第5章  中断和时间管理92

    5.1  中断进入过程93

    5.2  驱动中的中断处理98

    5.3  中断下半部101

    5.3.1  软中断102

    5.3.2  tasklet104

    5.3.3  工作队列106

    5.4  延时控制108

    5.5  定时操作109

    5.5.1  低分辨率定时器109

    5.5.2  高分辨率定时器112

    5.6 习题114

    第6章  互斥和同步116

    6.1  一种典型的竞态117

    6.2  内核中的并发117

    6.3  中断屏蔽118

    6.4  原子变量119

    6.5  自旋锁120

    6.6  读写锁122

    6.7  顺序锁123

    6.8  信号量125

    6.9  读写信号量127

    6.10  互斥量127

    6.11  RCU机制128

    6.12  虚拟串口驱动加入互斥130

    6.13  完成量134

    6.14  习题135

    第7章  内存和DMA137

    7.1  内存组织138

    7.2  按页分配内存139

    7.3  slab分配器142

    7.4  不连续内存页分配144

    7.5  per-CPU变量145

    7.6  动态内存实例146

    7.7  I/O内存147

    7.8  DMA原理及映射155

    7.8.1  DMA工作原理155

    7.8.2  DMA映射157

    7.9  DMA统一编程接口160

    7.10  习题164

    第8章  Linux设备模型166

    8.1  设备模型基础167

    8.2  总线、设备和驱动171

    8.3  平台设备及其驱动176

    8.3.1  平台设备176

    8.3.2  平台驱动178

    8.3.3  平台驱动简单实例179

    8.3.4  电源管理182

    8.3.5  udev和驱动的自动加载183

    8.3.6  使用平台设备的LED驱动184

    8.3.7  自动创建设备节点190

    8.4  Linux设备树193

    8.4.1  Linux设备树的由来193

    8.4.2  Linux设备树的目的194

    8.4.3  Linux设备树的使用195

    8.4.4  使用设备树的LED驱动202

    8.5  习题204

    第9章  字符设备驱动实例205

    9.1  LED驱动206

    9.2  基于中断的简单按键驱动209

    9.3  基于输入子系统的按键驱动213

    9.4  ADC驱动222

    9.5  PWM驱动231

    9.6  RTC驱动239

    第10章  总线类设备驱动243

    10.1  I2C设备驱动244

    10.1.1  I2C协议简介244

    10.1.2  Linux I2C驱动246

    10.1.3  I2C设备驱动实例251

    10.2  SPI设备驱动258

    10.2.1  SPI协议简介258

    10.2.2  Linux SPI驱动259

    10.2.3  SPI设备驱动范例264

    10.3  USB设备驱动268

    10.3.1  USB协议简介268

    10.3.2  Linux USB驱动271

    10.3.3  USB设备驱动实例274

    10.4  PCI设备驱动283

    10.4.1  PCI协议简介283

    10.4.2  Linux PCI驱动287

    10.4.3  PCI设备驱动实例288

    10.5  习题296

    第11章  块设备驱动298

    11.1  磁盘结构299

    11.2  块设备内核组件300

    11.3  块设备驱动核心数据结构和函数301

    11.4  块设备驱动实例308

    11.5  习题316

    第12章  网络设备驱动317

    12.1  网络层次结构318

    12.2  网络设备驱动核心数据结构和函数319

    12.3  网络设备驱动实例327

    12.4  DM9000网络设备驱动代码分析333

    12.5  NAPI340

    12.6  习题343

    第13章  内核调试技术344

    13.1  内核调试方法345

    13.1.1  内核调试概述345

    13.1.2  学会分析内核源程序346

    13.1.3  调试方法介绍346

    13.2  内核打印函数350

    13.2.1  内核镜像解压前的串口输出函数350

    13.2.2  内核镜像解压后的串口输出函数352

    13.2.3  内核打印函数353

    13.3  获取内核信息357

    13.3.1  系统请求键357

    13.3.2  通过/proc接口358

    13.3.3  通过/sys接口359

    13.4  处理出错信息362

    13.4.1  oops信息362

    13.4.2  panic364

    13.4.3  通过ioctl方法366

    13.5  内核源码调试367

    13.6  习题369

    第14章  搭建开发环境370

    14.1  准备Linux开发主机371

    14.2  安装串口相关软件375

    14.2.1  安装串口驱动375

    14.2.2  安装串口终端软件PuTTY376

    14.2.3  安装串口终端软件minicom377

    14.3  安装TFTP和NFS服务器379

    14.4  准备Linux内核源码381

    14.5  在目标板上运行Linux系统382

    14.6  源码浏览及编辑器环境386

    习题答案388

    参考文献389
查看详情
相关图书 / 更多
嵌入式Linux驱动开发教程
嵌入与网络:西南民族地区禁毒社会组织制度结构优化的路径选择
谢勇 著
嵌入式Linux驱动开发教程
嵌入式金融:金融技术应用新革命
[美]斯嘉丽·西贝尔(Scarlett Sieber);[英]苏菲·吉博(Sophie Guibaud)
嵌入式Linux驱动开发教程
嵌入式系统及应用
付少华主编
嵌入式Linux驱动开发教程
嵌入式系统应用开发——基于NI LabVIEW&myRIO的设计与实现
杨帆;张彩丽;刘晋东;李宁
嵌入式Linux驱动开发教程
嵌入式技术入门与实战(基于STM32)
尹静
嵌入式Linux驱动开发教程
嵌入式单片机技术实战教程
郭海如;熊曾刚;李志敏;赵恒;谈怀江;刘江华;万青;万兴
嵌入式Linux驱动开发教程
嵌入城市:农民工永久迁移意愿及其影响因素研究
陆文荣
嵌入式Linux驱动开发教程
嵌入式Linux系统开发 ——基于ARM处理器通用平台(第2版)
冯新宇;蒋洪波;程坤
嵌入式Linux驱动开发教程
嵌入式系统集成开发
代红英;李奇兵;董旭斌;陆鹏;陶翠微
嵌入式Linux驱动开发教程
嵌入式技术及应用(STM32CubeMX版)
李文华
嵌入式Linux驱动开发教程
嵌入地方的市场--对一个西南村镇集市的人类学考察
张琪 著
嵌入式Linux驱动开发教程
嵌入式Linux驱动开发实践
朱文伟 李建英
您可能感兴趣 / 更多
嵌入式Linux驱动开发教程
Java编程详解(微课版)
华清远见教育集团 季久峰 刘洪涛
嵌入式Linux驱动开发教程
嵌入式Linux C语言应用开发教程(移动学习版 第2版)
华清远见嵌入式学院、刘洪涛、苗德行、高明旭、刘宗鑫 著
嵌入式Linux驱动开发教程
嵌入式Linux C语言程序设计基础教程(微课版)
华清远见嵌入式学院、刘洪涛、苗德行 著
嵌入式Linux驱动开发教程
ARM嵌入式体系结构与接口技术(Cortex-A9版)(微课版)
华清远见嵌入式学院 刘洪涛 秦山虎
嵌入式Linux驱动开发教程
嵌入式操作系统(Linux篇)(微课版)
华清远见嵌入式学院 刘洪涛 高明旭
嵌入式Linux驱动开发教程
嵌入式应用程序设计综合教程(微课版)
华清远见嵌入式学院、刘洪涛、熊家 著
嵌入式Linux驱动开发教程
嵌入式Linux系统开发教程
华清远见嵌入式学院 编
嵌入式Linux驱动开发教程
从实践中学嵌入式Linux应用程序开发(第2版)
华清远见嵌入式学院、苗德行、冯建、刘洪涛、潘启勇 著
嵌入式Linux驱动开发教程
嵌入式 Linux C 编程入门(第2版)
华清远见嵌入式培训中心 著;华清远见嵌入式培训中心 编
嵌入式Linux驱动开发教程
Windows CE嵌入式开发标准教程
华清远见嵌入式培训中心 编
嵌入式Linux驱动开发教程
Linux2.6内核标准教程
华清远见嵌入式培训中心、河秦、王洪涛 编
嵌入式Linux驱动开发教程
嵌入式Linux C语言应用程序设计
华清远见嵌入式培训中心