Android驱动开发权威指南

出版日期:2014-3-1
ISBN:9787111451821
作者:杨柳
页数:321页

内容概要

杨柳,国内某著名大型通信公司资深嵌入式系统工程师,CSDN正式会员、GooglePlay签约注册开发者;国家863计划某项目主要成员,该项目开发了国内第一款Linux智能手机。作者拥有丰富的Linux、WindowsPhone以及Android手机研发经验。

书籍目录

前言
第一篇 Android的前世今生——Android概述篇
第1章 Android的前世今生2
1.1 Android的起源2
1.2 开放手机联盟2
1.3 开源与相关协议3
1.4 系统的升级与发展3
第2章 Android体系结构4
2.1 四层空间基本结构4
2.1.1 Android系统底层开发6
2.1.2 应用程序开发7
2.2 Android代码目录结构7
2.3 Android开发环境搭建8
第二篇 勿于浮砂筑高台——Linux驱动基础篇
第3章 Linux内核综述14
3.1 OS基本概念14
3.1.1 多用户系统15
3.1.2 用户和组15
3.1.3 进程16
3.1.4 Linux单核架构16
3.2 Linux内核综述18
3.2.1 进程/内核模型综述18
3.2.2 内存管理综述26
3.2.3 文件系统综述29
3.2.4 设备驱动简述34
第4章 Linux内核编程与内核模块35
4.1 Linux内核源代码目录结构35
4.2 Linux内核的编译与启动36
4.3 Linux内核的C编程37
4.4 Linux内核模块基础与骨架43
4.5 Linux模块的加载与卸载46
4.6 Linux模块的参数与导出符号46
4.7 Linux模块的使用计数48
第5章 Linux文件系统50
5.1 Linux文件系统概述50
5.1.1 Linux文件系统的目录结构50
5.1.2 设备驱动与Linux文件系统的关联51
5.2 Linux设备文件系统55
5.2.1 devfs设备文件系统55
5.2.2 udev设备文件系统56
5.2.3 sysfs文件系统与Linux设备57
5.2.4 udev的组成67
5.2.5 udev规则文件68
第6章 Linux字符设备驱动70
6.1 Linux字符设备驱动结构70
6.1.1 cdev结构体70
6.1.2 分配和释放设备号71
6.1.3 file_operations结构体72
6.1.4 Linux字符设备驱动的组成74
6.2 一个字符设备驱动例子——virtualchar77
6.2.1 头文件、宏及设备结构体77
6.2.2 加载与卸载设备驱动78
6.2.3 驱动函数实现79
6.2.4 驱动设备私有数据83
6.3 对virtualchar设备的访问90
第7章 Linux设备驱动中的内存与I/O访问92
7.1 CPU与内存和I/O之间的故事92
7.1.1内存空间与I/O空间92
7.1.2 内存管理单元MMU93
7.2 Linux内存管理97
7.3 Linux内存访问99
7.4 LinuxI/O访问102
7.4.1 访问I/O102
7.4.2 申请与释放I/O资源105
7.4.3 I/O访问流程107
7.4.4 设备地址与用户空间的映射107
7.5 DMA114
7.5.1 DMA与Cache的一致性114
7.5.2 Linux下的DMA编程114
第8章 Linux设备驱动中的中断125
8.1 Linux中断及中断处理架构125
8.2 Linux中断编程126
8.2.1 申请和释放中断126
8.2.2 使能与屏蔽中断127
8.2.3 底半部机制127
8.2.4 中断共享130
8.3 Linux定时器132
8.4 Linux延时处理134
8.4.1 短延时135
8.4.2 长延时135
8.4.3 睡眠延时136
第9章 Linux设备驱动中的并发138
9.1 Linux中的并发与竞争138
9.2 Linux中常用的同步访问技术139
9.2.1 中断屏蔽139
9.2.2 原子操作140
9.2.3 自旋锁142
9.2.4 信号量147
9.2.5 互斥灯152
9.3 增加并发控制的virtualchar驱动153
第10章 Linux设备的阻塞式与非阻塞式访问157
10.1 阻塞式与非阻塞式访问157
10.1.1 等待队列158
10.1.2 支持阻塞操作的virtualfifo设备驱动162
10.2 Linux的轮询访问167
10.2.1 应用程序中的轮询编程167
10.2.2 设备驱动中的轮询编程168
10.2.3 支持轮询操作的virtualfifo驱动169
第11章 Linux设备驱动中的异步访问171
11.1 Linux2.6中的异步访问171
11.1.1 异步访问概念与GNUC库函数171
11.1.2 使用信号作为异步访问的通知175
11.1.3 使用回调函数作为异步访问的通知177
11.1.4 异步访问与设备驱动178
11.2 异步Fifo驱动例子180
11.2.1 在virtualfifo驱动中增加异步通知180
11.2.2 在用户空间验证virtualfifo的异步通知182
第12章 Linux块设备驱动184
12.1 块设备的I/O操作特点184
12.2 Linux块设备驱动结构184
12.2.1 block_device_operations结构体184
12.2.2 gendisk结构体186
12.2.3 request与bio结构体188
12.2.4 块设备驱动注册与注销197
12.3 Linux块设备驱动的模块加载与卸载198
12.4 块设备的打开/释放/IOCTL200
第13章 Linux网络设备驱动202
13.1 Linux网络设备驱动体系结构202
13.2 Linux网络设备驱动结构203
13.3 Linux网络设备驱动I/O实现204
13.3.1 网络设备初始化204
13.3.2 网络数据包的收发205
第三篇 实践出真知——Android驱动实践篇
第14章 AndroidHAL层的设计208
14.1 AndroidHAL概述208
14.2 为Android开发虚拟驱动virtualio209
14.3 Android集成C程序访问virtualio220
14.4 Android通过HAL访问virtualio222
14.4.1 virtualioHAL模块实现222
14.4.2 实现访问virtualioHAL模块JNI226
14.4.3 在Framework层增加virtualio服务229
第15章 Framebuffer子系统231
15.1 LinuxFramebuffer一般子系统231
15.1.1 Framebuffer数据结构231
15.1.2 Framebuffer驱动237
15.2 AndroidFramebuffer子系统实践238
15.2.1 硬件基础238
15.2.2 CPU侧显示驱动模块240
15.2.3 LCM驱动模块242
15.3 Android系统对Framebuffer的使用247
第16章 Input子系统249
16.1 LinuxInput一般子系统249
16.1.1 Input数据结构250
16.1.2 Input内核模块252
16.2 AndroidInput子系统实践257
16.2.1 硬件基础258
16.2.2 Input驱动模块258
16.3 Android系统对Input的使用263
第17章 V4L2子系统266
17.1 LinuxV4L2一般子系统266
17.1.1 V4L2数据结构266
17.1.2 V4L2接口268
17.1.3 V4L2虚拟驱动vivi273
17.2 AndroidV4L2实践279
17.2.1 硬件基础280
17.2.2 CPU侧CCIC驱动模块281
17.2.3 OV5642模组驱动模块283
17.3 Android系统对V4L2的使用286
第18章 BinderIPC通信子系统288
18.1 Binder驱动概述288
18.2 Binder通信模型288
18.3 Binder驱动291
18.3.1 Binder相关的结构体292
18.3.2 AndroidBinder子系统的架构设计292
18.4 Binder的工作流程293
第19章 USB子系统295
19.1 USB协议基础知识295
19.1.1 USB物理连接295
19.1.2 USB通信协议297
19.2 USB子系统底层299
19.2.1 USBCore299
19.2.2 LinuxUSBgadget三层架构303
19.3 AndroidUSB子系统实践305
19.3.1 AndroidIPC通信补充305
19.3.2 AndroidUSBMassStorage流程分析309
第20章 Bootloader引导子系统312
20.1 Bootloader流程分析312
20.1.1 Bootloader概述312
20.1.2 U—Boot启动流程分析314
20.2 Bootloader修改指南317
20.2.1 开机第一帧图的修改317
20.2.2 开机模式的定制318
参考文献321

作者简介

《Android驱动开发权威指南》根据作者(杨柳)多年的从业经验,从开发实战出发,全面深入地讲解了Android驱动开发。全书以Android驱动本质为源,深入浅出地剖析了Android驱动程序开发要用到的DMA、中断、同步、等待队列与signal等多项技术。还从系统的角度描述了Android驱动与Android其他部分的有机结合,为Android用户提供各类智能输入/输出服务。


 Android驱动开发权威指南下载



发布书评

 
 


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024