5.0 用户推荐指数
科技
类型
6.9
豆瓣评分
可以朗读
语音朗读
659千字
字数
2015-08-01
发行日期
展开全部
主编推荐语
本书既可作为面向计算机工程、软件工程、信息工程等IT相关学科的信息安全实训教材,还可作为信息安全相关人员的培训教材。
内容简介
本书介绍了Linux设备驱动开发理论、框架与实例,详细说明了自旋锁、信号量、完成量、中断顶/底半部、定时器、内存和I/O映射以及异步通知、阻塞I/O、非阻塞I/O等Linux设备驱动理论,以及字符设备、块设备、tty设备、I2c设备、LCD设备、音频设备、USB设备、网络设备、PCI设备等Linux设备驱动架构中各个复杂数据结构和函数的关系,并讲解了Linux驱动开发的大量实例,使你能够独立开发各类Linux设备驱动。
目录
- 版权信息
- 赞誉
- 推荐序一
- 推荐序二
- 前言
- 第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 I2C体系结构
- 15.2 Linux I2C核心
- 15.3 Linux I2C适配器驱动
- 15.4 Linux I2C设备驱动
- 15.5 Tegra I2C总线驱动实例
- 15.6 AT24xx EEPROM的I2C设备驱动实例
- 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章 I2C、SPI、USB驱动架构类比
- 17.1 I2C、SPI、USB驱动架构
- 17.2 I2C主机和外设眼里的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 内核打印信息
- 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 总结
展开全部
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。