《嵌入式Linux驱动开发教程?

图书作者:华清远??先? 刘洪? 丛书名称? 高等院校嵌入式人才培养?划教材 出版日期?2017?5?

编辑推荐理由

推荐评分?5.0?

多年嵌入式人才培养及项目研发经验总结

数百家企业嵌入式研发岗位人才需求汇?

数十所嵌入式专业大学院校教学现状调?

侧重实践及?例分析并辅以代码加以?解

图书简?

《嵌入式Linux驱动开发教程》结合大量实例,在基于ARM Cortex-A9四核处理器Exynos4412的硬件教学平台和PC上,全面详细地?解了Linux设?驱动开发。主要内容包?开发环境的?建、内核模块、字符??驱动?架、高?I/O、中?和时间?理、互斥和同?、内存和DMA、Linux设?模型、??的驱动实例、总线类??驱动、块设?驱动、网络??驱动和内核调试技?。每一?知识点都有一?对应的典型实例,大?数实例既可以在上面说到的嵌入式平台上运行,也可以在PC上运行。另外,《嵌入式Linux驱动开发教程》也引入了新内核的一些新特性,比?高分辨率定时器、针对嵌入式平台的dmaengine和??树。在需要重点关注的地方还加入了大量的内核源码分析,使?者能够快速并深刻理解Linux设?驱动的开发? 《嵌入式Linux驱动开发教程》可作为大?院校电子、通信、?算机、自动化等专业的嵌入式Linux设?驱动开发?程的教材,也可供嵌入式Linux驱动开发人员参考?

图书??

  • ※??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/O 58
  • 4.4 阻?型I/O 60
  • 4.5 I/O多路复用 65
  • 4.6 异??I/O 69
  • 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 tasklet 104
  • 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? 内存和DMA 137

  • 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 NAPI 340
  • 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 panic 364
  • 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 安?串口终??件PuTTY 376
  • 14.2.3 安?串口终??件minicom 377
  • 14.3 安?TFTP和NFS服务? 379
  • 14.4 准?Linux内核源码 381
  • 14.5 在目标板上运行Linux系统 382
  • 14.6 源码浏?及编辑器环? 386
  • 习?答? 388
  • 参考文? 389