
| 由浅入深,全面、系统地介绍Linux驱动开发的基础与核心技术 基于最新的Linux 2.6.29内核,讲解最新的驱动设计方法 注重实战,重点阐述8种典型的Linux设备驱动程序的开发方法 |
郑强,毕业于西南大学,获硕士学位。现任公司项目主管,长期从事嵌入式系统开发和设计。先后开发过十几个大中型项目,涉及GPS定位系统、刷卡系统、指纹识别、手机等产品。工作之余,热心于Flash游戏引擎开发和2D游戏开发。 .. << 查看详细 |
| 第1篇 linux驱动开发基础 第1章 linux驱动开发概述 1.1 linux设备驱动的基本概念 1.1.1 设备驱动程序概述 1.1.2 设备驱动程序的作用 1.1.3 设备驱动的分类 1.2 linux操作系统与驱动的关系 1.3 linux驱动程序开发 1.3.1 用户态和内核态 1.3.2 模块机制 1.3.3 编写设备驱动程序需要了解的知识 1.4 编写设备驱动程序的注意事项 1.4.1 应用程序开发与驱动程序开发的差异 1.4.2 gunc开发驱动程序 1.4.3 不能使用c库开发驱动程序 1.4.4 没有内存保护机制 1.4.5 小内核栈 1.4.6 重视可移植性 1.5 linux驱动的发展趋势 1.5.1 linux驱动的发展 .1.5.2 驱动的应用 1.5.3 相关学习资源 1.6 小结 第2章 嵌入式处理器和开发板简介 2.1 处理器的选择 2.1.1 处理器简述 2.1.2 处理器的种类 2.2 arm处理器 2.2.1 a刚处理器简介 2.2.2 arm处理器系列 212.3 arm处理器的应用 2.2.4 arm处理器的选型 2.2.5 arm处理器选型举例 2.3 s3c2440开发板 2.3.1 s3c2440开发板简介 2.3.2 s32440开发板的特性 2.4 小结 第3章 构建嵌入式驱动程序开发环境 3.1 虚拟机和linux安装 3.1.1 在windows上安装虚拟机 3.1.2 在虚拟机上安装linux 3.1.3 设置共享目录 3.2 代码阅读工具sorece insight 3.2.1 source insighl简介 3.2.2 阅读源代码 3.3 小结 第4章 构建嵌入式linux操作系统 4.1 linux操作系统的介绍 4.1.1 linux操作系统 4.1.2 linux操作系统的优点 4.2 linux内核子系统 4.2.1 进程管理 4.2.2 内存管理 4.2.3 文件系统 4.2.4 设备管理 4.2.5 网络功能 4.3 linux源代码结构分析 4.3.1 arch目录 4.3.2 drivers目录 4.3.3 fs目录 4.3.4 其他目录 4.4 内核配置选项 4.4.1 配置编译过程 4.4.2 常规配置 4.4.3 模块配置 4.4.4 块设备层配置 4.4.5 cpu类型和特性配置 4.4.6 电源管理配置 4.4.7 总线配置 4.4.8 网络配置 4.4.9 设备驱动配置 4.4.10 文件系统配置 4.5 嵌入式文件系统基础知识 4.5.1 嵌入式文件系统 4.5.2 嵌入式系统的存储介质 4.5.3 jffs文件系统 4.5.4 yaffs文件系统 4.6 构建根文件系统 4.6.1 根文件系统概述 4.6.2 linux根文件系统目录结构 4.6.3 busy box构建根文件系统 4.7 小结 第5章 构建第一个驱动程序 5.1 开发环境配置之内核升级 5.1.1 为什么升级内核 5.1.2 内核升级 5.1.3 make menconfig的注意事项 5.2 hello world驱动程序 5.2.1 驱动模块的组成 5.2.2 hello world模块 5.2.3 编译hello world模块 5.2.4 模块的操作 5.2.5 hello world模块加载后文件系统的变化 5.3 模块参数和模块之间通信 5.3.1 模块参数 5.3.2 模块的文件格式elf 5.3.3 模块之间的通信 5.3.4 模块之间的通信实例 5.4 将模块加入内核 5.4.1 向内核添加模块 5.4.2 kconfig 5.4.3 kconfig的语法 5.4.4 应用实例:在内核中新增加add-sub模块 5.4.5 对add-sub模块进行配置 5.5 小结 第6章 简单的字符设备驱动程序 6.1 字符设备驱动程序框架 6.1.1 字符设备和块设备 6.1.2 主设备号和次设备号 6.1 13申请和释放设备号 6.2 初识cdev结构 6.2.1 cdev结构体 6.2.2 file-opelmions结构体 6.2.3 cdev和file-opermions结构体的关系 6.2.4 inode结构体 6.3 字符设备驱动的组成 6.3.1 字符设备加载和卸载函数 6.3.2 fileopelations结构体和其成员函数 6.3.3 驱动程序与应用程序的数据交换 6.3.4 字符设备驱动程序组成小结 6.4 vinualdisk字符设备驱动 6.4.1 virtualdisk的头文件、宏和设备结构体 6.4.2 加载和卸载驱动程序 6.4.3 cdev的初始化和注册 6.4.4 打开和释放函数 6.4.5 读写函数 6.4.6 seek()函数 6.4.7 ioctl()函数 6.5 小结 第2篇 linux驱动开发核心技术 第7章 设备驱动中的并发控制 7.1 并发与竞争 7.2 原子变量操作 7.2.1 原子变量操作 7.2.2 原子整型操作 7.2.3 原子位操作 7.3 自旋锁 7.3.1 自旋锁概述 7.3.2 白旋锁的使用 7.3.3 白旋锁的使用注意事项 7.4 信号量 7.4.1 信号量概述 7.4.2 信号量的实现 7.4.3 信号量的使用 …… 第3篇 linux驱动开发实用实战 |
商品评论(0条)