江风网

txt_epub_Kindle_azw3_mobi_pdf电子书免费下载

Linux设备驱动开发详解:基于最新的Linux4.0内核

作者: 宋宝华
出版时间: 2015-08-01
发布时间: 2020-09-08
阅读热度: 7
综合评分: 6
下载支持: TXT EPUB MOBI AZW3 PDF
在线阅读: 手机阅读 电脑阅读
《Linux设备驱动开发详解:基于最新的Linux4.0内核》内容简介

对于嵌入式工程师来说,进入更高阶段后,学习Linux设备驱动开发无疑就是职业生涯的一次“重生”。这是因为Linux设备驱动开发不仅仅涉及操作系统的转换,开发方式的转换,更重要的是思维上的转变。对于Linux这样一个复杂系统,如何从复杂的代码中抓住设备驱动开发的关键是任何一个Linux设备驱动开发者入门时需要面对的挑战。除了知识、工具之外,往往还需要思路上的指导。本书不但帮助Linux设备驱动开发的初学者厘清必要的概念,还从具体的实例、设备驱动开发的指导原则循序渐进地引导读者渐入学习佳境。为了让读者能够达到Linux设备驱动开发的至臻境界,作者更是从软件工程的角度抽象出设备驱动开发的一般思想。毫无疑问,本书将成为读者学习Linux设备驱动开发过程中的一座“灯塔”。宋宝华,Linux布道者,知名嵌入式系统专家,《Essential Linux Device Drivers》译者。作为最早从事Linux内核与设备驱动研究的专家之一,他在众多国内外知名企业开展Linux技术培训。他也是一位活跃的Linux开发者和深度实践者,为Linux官方内核贡献了大量的Linux源码并承担代码审核工作。至今已向Linux官方内核提交逾数万行代码和几百个补丁。他的《Linux设备驱动开发详解》系列书在嵌入式Linux开发者中有口皆碑,是众多Linux书籍中为数不多的畅销书。

《Linux设备驱动开发详解:基于最新的Linux4.0内核》章节目录
  • 赞誉
  • 推荐序一
  • 推荐序二
  • 前言
  • 第1章 Linux设备驱动概述及开发环境构建
  • 1.1 设备驱动的作用
  • 1.2 无操作系统时的设备驱动
  • 1.3 有操作系统时的设备驱动
  • 1.4 Linux设备驱动
  • 1.5 Linux设备驱动的开发环境构建
  • 1.6 设备驱动Hello World:LED驱动
  • 第2章 驱动设计的硬件基础
  • 2.1 处理器
  • 2.2 存储器
  • 2.3 接口与总线
  • 2.4 CPLD和FPGA
  • 2.5 原理图分析
  • 2.6 硬件时序分析
  • 2.7 芯片数据手册阅读方法
  • 2.8 仪器仪表使用
  • 2.9 总结
  • 第3章 Linux内核及内核编程
  • 3.1 Linux内核的发展与演变
  • 3.2 Linux 2.6后的内核特点
  • 3.3 Linux内核的组成
  • 3.4 Linux内核的编译及加载
  • 3.5 Linux下的C编程特点
  • 3.6 工具链
  • 3.7 实验室建设
  • 3.8 串口工具
  • 3.9 总结
  • 第4章 Linux内核模块
  • 4.1 Linux内核模块简介
  • 4.2 Linux内核模块程序结构
  • 4.3 模块加载函数
  • 4.4 模块卸载函数
  • 4.5 模块参数
  • 4.6 导出符号
  • 4.7 模块声明与描述
  • 4.8 模块的使用计数
  • 4.9 模块的编译
  • 4.10 使用模块“绕开”GPL
  • 4.11 总结
  • 第5章 Linux文件系统与设备文件
  • 5.1 Linux文件操作
  • 5.2 Linux文件系统
  • 5.3 devfs
  • 5.4 udev用户空间设备管理
  • 5.5 总结
  • 第6章 字符设备驱动
  • 6.1 Linux字符设备驱动结构
  • 6.2 globalmem虚拟设备实例描述
  • 6.3 globalmem设备驱动
  • 6.4 globalmem驱动在用户空间中的验证
  • 6.5 总结
  • 第7章 Linux设备驱动中的并发控制
  • 7.1 并发与竞态
  • 7.2 编译乱序和执行乱序
  • 7.3 中断屏蔽
  • 7.4 原子操作
  • 7.5 自旋锁
  • 7.6 信号量
  • 7.7 互斥体
  • 7.8 完成量
  • 7.9 增加并发控制后的globalmem的设备驱动
  • 7.10 总结
  • 第8章 Linux设备驱动中的阻塞与非阻塞I/O
  • 8.1 阻塞与非阻塞I/O
  • 8.2 轮询操作
  • 8.3 支持轮询操作的globalfifo驱动
  • 8.4 总结
  • 第9章 Linux设备驱动中的异步通知与异步I/O
  • 9.1 异步通知的概念与作用
  • 9.2 Linux异步通知编程
  • 9.3 支持异步通知的globalfifo驱动
  • 9.4 Linux异步I/O
  • 9.5 总结
  • 第10章 中断与时钟
  • 10.1 中断与定时器
  • 10.2 Linux中断处理程序架构
  • 10.3 Linux中断编程
  • 10.4 中断共享
  • 10.5 内核定时器
  • 10.6 内核延时
  • 10.7 总结
  • 第11章 内存与I/O访问
  • 11.1 CPU与内存、I/O
  • 11.2 Linux内存管理
  • 11.3 内存存取
  • 11.4 设备I/O端口和I/O内存的访问
  • 11.5 I/O内存静态映射
  • 11.6 DMA
  • 11.7 总结
  • 第12章 Linux设备驱动的软件架构思想
  • 12.1 Linux驱动的软件架构
  • 12.2 platform设备驱动
  • 12.3 设备驱动的分层思想
  • 12.4 主机驱动与外设驱动分离的设计思想
  • 12.5 总结
  • 第13章 Linux块设备驱动
  • 13.1 块设备的I/O操作特点
  • 13.2 Linux块设备驱动结构
  • 13.3 Linux块设备驱动的初始化
  • 13.4 块设备的打开与释放
  • 13.5 块设备驱动的ioctl函数
  • 13.6 块设备驱动的I/O请求处理
  • 13.7 实例:vmem_disk驱动
  • 13.8 Linux MMC子系统
  • 13.9 总结
  • 第14章 Linux网络设备驱动
  • 14.1 Linux网络设备驱动的结构
  • 14.2 网络设备驱动的注册与注销
  • 14.3 网络设备的初始化
  • 14.4 网络设备的打开与释放
  • 14.5 数据发送流程
  • 14.6 数据接收流程
  • 14.7 网络连接状态
  • 14.8 参数设置和统计数据
  • 14.9 DM9000网卡设备驱动实例
  • 14.10 总结
  • 第15章 Linux I2C核心、总线与设备驱动
  • 15.1 Linux I²C体系结构
  • 15.2 Linux I2C核心
  • 15.3 Linux I²C适配器驱动
  • 15.4 Linux I²C设备驱动
  • 15.5 Tegra I²C总线驱动实例
  • 15.6 AT24xx EEPROM的I²C设备驱动实例
  • 15.7 总结
  • 第16章 USB主机、设备与Gadget驱动
  • 16.1 Linux USB驱动层次
  • 16.2 USB主机控制器驱动
  • 16.3 USB设备驱动
  • 16.4 USB UDC与Gadget驱动
  • 16.5 USB OTG驱动
  • 16.6 总结
  • 第17章 I²C、SPI、USB驱动架构类比
  • 17.1 I²C、SPI、USB驱动架构
  • 17.2 I²C主机和外设眼里的Linux世界
  • 第18章 ARM Linux设备树
  • 18.1 ARM设备树起源
  • 18.2 设备树的组成和结构
  • 18.3 由设备树引发的BSP和驱动变更
  • 18.4 常用的OF API
  • 18.5 总结
  • 第19章 Linux电源管理的系统架构和驱动
  • 19.1 Linux电源管理的全局架构
  • 19.2 CPUFreq驱动
  • 19.3 CPUIdle驱动
  • 19.4 PowerTop
  • 19.5 Regulator驱动
  • 19.6 OPP
  • 19.7 PM QoS
  • 19.8 CPU热插拔
  • 19.9 挂起到RAM
  • 19.10 运行时的PM
  • 19.11 总结
  • 第20章 Linux芯片级移植及底层驱动
  • 20.1 ARM Linux底层驱动的组成和现状
  • 20.2 内核节拍驱动
  • 20.3 中断控制器驱动
  • 20.4 SMP多核启动以及CPU热插拔驱动
  • 20.5 DEBUG_LL和EARLY_PRINTK的设置
  • 20.6 GPIO驱动
  • 20.7 pinctrl驱动
  • 20.8 时钟驱动
  • 20.9 dmaengine驱动
  • 20.10 总结
  • 第21章 Linux设备驱动的调试
  • 21.1 GDB调试器的用法
  • 21.2 Linux内核调试
  • 21.3 内核打印信息——printk()
  • 21.4 DEBUG_LL和EARLY_PRINTK
  • 21.5 使用“/proc”
  • 21.6 Oops
  • 21.7 BUG_ON()和WARN_ON()
  • 21.8 strace
  • 21.9 KGDB
  • 21.10 使用仿真器调试内核
  • 21.11 应用程序调试
  • 21.12 Linux性能监控与调优工具
  • 21.13 总结
版权免责声明
《Linux设备驱动开发详解:基于最新的Linux4.0内核》为网络收集或网友自行上传,本站不对内容负责,《Linux设备驱动开发详解:基于最新的Linux4.0内核》版权归原作者所有,仅供学习交流,请勿商业使用,本站不提供任何下载,储存服务,如无意侵犯了你对《Linux设备驱动开发详解:基于最新的Linux4.0内核》的版权,请联系我们,我们将在第一时间删除相关内容!