Linux设备驱动程序(中文版 文字版 第三版).pdf
前言
第一章 设备驱动程序简介
设备驱动程序的作用
内核功能划分
设备和模块的分类
安全问题
版本编号
许可证条款
加入内核开发社团
本书概要
第二章 构造和运行模块
设置测试系统
Hello world模块
核心模块与应用程序的对比
编译和装载
内核符号表
预备知识
初始化和关闭
模块参数
在用户空间编写驱动程序
快速参考
第三章 字符设备驱动程序
scull的设计
主设备号和次设备号
一些重要的数据结构
字符设备的注册
open和release
scull的内存使用
read和write
试试新设备
快速参考
第四章 调试技术
内核中的调试支持
通过打印调试
通过查询调试
通过监视调试
调试系统故障
调试器和相关工具
第五章 并发和竞态
scull的缺陷
并发及其管理
信号量和互斥体
completiOn
自旋锁
锁陷阱
除了锁之外的办法
快速参考
第六章 高级字符驱动程序操作
ioctl
阻塞型I/O
poll和select
异步通知
定位设备
设备文件的访问控制
快速参考
第七章 时间、延迟及延缓操作
度量时间差
获取当前时间
延迟执行
内核定时器
tasklet
工作队列
快速参考
第八章 分配内存
kmalloc函数的内幕
后备高速缓存
get—free—page和相关函数
vmalloc及其辅助函数
per-CPU变量
获取大的缓冲区
快速参考
蓝牙协议及其源代码分析.pdf
目录编辑
第一章 蓝牙概述和金瓯蓝牙开发平台介绍
1.1 蓝牙概述
1.2 金瓯蓝牙开发平台介绍
第二章 射频协议
2.1 概述
2.2 频段及信道分配
2.3 发射机特性
2.4 接收机特性
第三章 基滞协议
3.1 概述
3.2 物理信道
3.3 物理链路
3.4 逻辑传输
3.5 逻辑链路
3.6 分组
3.7 比特流流程
3.8 链路控制操作
3.9 音频
第四章 链路管理协议
4.1 概述
4.2 一般规则
4.3 设备特征
4.4 过程规则
第五章 主机控制器接口协议
5.1 主机控制接口协议概述
5.2 主机控制传输层概述
5.3 HCI流控制
5.4 HCI数据格式
5.5 开发平台上的命令和事件及其详细分析
5.6 HCI分组中数据的详细解释说明
5.7 实现HCI的部分源代码及其分析
第六章 逻辑链路控制和适配协议
第七章 串口仿真协议
第八章 对象交换协议
第九章 服务发展协议
第十章 电话控制协议
第十一章 蓝牙操作模式
TD-LTE技术原理与系统设计 第一部份 .pdf
目录编辑
第1章 背景与概述 1
1.1 移动通信系统发展与演进 1
1.2 TD-SCDMA标准与技术 3
1.2.1 TD-SCDMA物理层信号结构 3
1.2.2 TD-SCDMA系统的关键技术 5
1.2.3 TD-SCDMA标准演进 7
1.3 新一代宽带移动通信基本技术 7
1.3.1 OFDM传输 7
1.3.2 多天线技术 9
1.4 移动通信标准化组织 10
1.4.1 ITU 10
1.4.2 3GPP 12
1.4.3 3GPP2 13
1.4.4 IEEE 13
1.4.5 中国通信标准化协会(CCSA) 13
1.5 LTE需求与技术特点 15
1.5.1 LTE需求分析 15
1.5.2 TD-LTE系统的技术特点 19
1.6 TD-LTE标准化历程 24
1.6.1 LTE的提出 24
1.6.2 TD-LTE R8的研究及标准化 24
1.6.3 LTE R9版 26
1.6.4 LTE-Advanced、TD-LTE Advanced和ITU-R IMT-Advanced 27
1.6.5 TD-LTE重要的里程碑 28
参考文献 29
第2章 TD-LTE协议架构与标准体系 30
2.1 LTE系统架构 30
2.1.1 LTE系统网络架构 30
2.1.2 E-UTRAN与EPC的功能划分 32
2.2 无线接口协议栈 33
2.2.1 控制平面协议栈 33
2.2.2 用户平面协议栈 34
2.2.3 协议栈功能划分 35
2.3 LTE标准体系与规范 40
2.4 小结 44
参考文献 44
第3章 物理层关键技术 45
3.1 TDD双工技术 45
3.2 多址传输方式 48
3.2.1 多址传输方式概述 48
3.2.2 TD-LTE下行多址传输 52
3.2.3 TD-LTE上行多址传输 53
3.3 帧结构和物理信道 55
3.3.1 TD-LTE系统帧结构 55
3.3.2 载波带宽和物理信道映射 58
3.4 多天线技术 59
3.4.1 发送分集 59
3.4.2 预编码技术 62
3.4.3 下行多用户MIMO 69
3.4.4 波束赋形 72
3.4.5 上行虚拟MIMO 75
3.5 信道编码 76
3.5.1 卷积编码 76
3.5.2 Turbo码 80
3.5.3 其他编码技术 85
3.6 链路自适应技术 88
3.6.1 自适应调制与编码 89
3.6.2 混合自动重传请求 90
3.6.3 功率控制 95
3.6.4 信道选择性调度 96
3.7 控制信道设计 98
3.7.1 下行控制信道 98
3.7.2 上行控制信道 104
3.8 初始接入和同步 111
3.8.1 小区搜索 111
3.8.2 物理层随机接入 113
3.9 干扰协调 115
3.9.1 概述 115
3.9.2 干扰随机化 118
3.9.3 干扰抑制 119
3.10 小结 120
参考文献 120
第4章 TD-LTE基本过程 125
4.1 随机接入 125
4.1.1 概述 125
4.1.2 竞争随机接入过程 126
4.1.3 非竞争随机接入过程 128
4.1.4 随机接入模型 128
4.2 系统广播 129
4.2.1 概述 129
4.2.2 系统广播消息 130
4.2.3 广播消息传输 131
4.2.4 系统广播修改机制 131
4.3 寻呼 132
4.3.1 概述 132
4.3.2 寻呼传输 132
4.3.3 寻呼接收 133
4.4 移动性管理 134
4.4.1 概述 134
4.4.2 小区选择/重选 134
4.4.3 切换 138
4.5 小区间同步 143
4.5.1 概述 143
4.5.2 同步方法简介及标准规定 143
4.6 无线资源管理 145
4.6.1 概述 145
4.6.2 调度算法 145
4.6.3 接纳控制 147
4.6.4 负荷均衡 149
4.6.5 小区间干扰协调 150
4.7 安全机制 151
4.7.1 概述 151
4.7.2 认证与密钥协商 153
4.7.3 安全模式命令 153
4.7.4 加密和完整性保护 155
4.8 小结 156
参考文献 157
第5章 TD-LTE系统若干应用新特性 158
5.1 多媒体广播/多播 158
5.1.1 概述 158
5.1.2 架构、流程及特性 158
5.1.3 空中接口 163
5.1.4 网络接口 167
5.2 家庭基站 168
5.2.1 概述 168
5.2.2 系统网络架构与实体功能 169
5.2.3 Home eNode B系统技术特征 173
5.3 网络自配置与自优化 179
5.3.1 概述 179
5.3.2 自配置 181
5.3.3 自优化 183
5.4 定位 188
5.4.1 概述 188
5.4.2 定位架构 188
5.4.3 TA+AoA 190
5.4.4 OTDOA 193
5.4.5 A-GNSS 195
5.5 电路交换业务支持 198
5.5.1 概述 198
5.5.2 电路交换回退技术 199
5.5.3 单一无线语音呼叫连续性技术 202
5.6 小结 205
参考文献 205
第6章 TD-LTE物理层协议 208
6.1 物理层信道与调制 208
6.1.1 上行部分 208
6.1.2 下行部分 230
6.2 复用与信道编码 258
6.2.1 信道编码的基本过程 258
6.2.2 上行传输信道与控制信息 263
6.2.3 下行传输信道与控制信息 265
6.3 物理层过程 272
6.3.1 同步过程 272
6.3.2 功控控制 274
6.3.3 随机接入过程 279
6.3.4 下行业务传输相关过程 281
6.3.5 上行业务传输相关过程 290
6.3.6 下行控制相关过程 300
6.3.7 上行控制相关过程 303
6.4 小结 307
……
第7章 TD-LTE空中接口高层协议 308
第8章 TD-LTE网络功能与接口 358
第9章 TD-LTE射频规范 388
第10章 TD-LTE-Advanced需求和关键技术 431
第11章 TD-LTE-Advanced性能评估及ITU提交 479
蓝牙核心技术及应用.pdf
很好的一本学习蓝牙的经典书籍,适合研究蓝牙技术的入门和提高。
征服C指针完整版--文字版.pdf
第0章 本书的目标与结构——引言 1
0.1 本书的目标 1
0.2 目标读者和内容结构 3
第1章 从基础开始——预备知识和复习 7
1.1 C是什么样的语言 7
1.1.1 比喻 7
1.1.2 C的发展历程 8
1.1.3 不完备和不统一的语法 9
1.1.4 ANSI C 10
1.1.5 C的宝典——K&R 11
1.1.6 C的理念 12
1.1.7 C的主体 14
1.1.8 C是只能使用标量的语言 15
1.2 关于指针 16
1.2.1 恶名昭著的指针究竟是什么 16
1.2.2 和指针的第一次亲密接触 17
1.2.3 指针和地址之间的微妙关系 23
1.2.4 指针运算 26
1.2.5 什么是空指针 27
1.2.6 实践——swap函数 31
1.3 关于数组 34
1.3.1 运用数组 34
1.3.2 数组和指针的微妙关系 37
1.3.3 下标运算符[]和数组是没有关系的 39
1.3.4 为什么存在奇怪的指针运算 42
1.3.5 不要滥用指针运算 43
1.3.6 试图将数组作为函数的参数进行传递 45
1.3.7 声明函数形参的方法 48
第2章 做个实验见分晓——C是怎么使用内存的 51
2.1 虚拟地址 51
2.2 C的内存的使用方法 56
2.2.1 C的变量的种类 56
2.2.2 输出地址 58
2.3 函数和字符串常量 61
2.3.1 只读内存区域 61
2.3.2 指向函数的指针 62
2.4 静态变量 64
2.4.1 什么是静态变量 64
2.4.2 分割编译和连接 64
2.5 自动变量(栈) 66
2.5.1 内存区域的“重复使用” 66
2.5.2 函数调用究竟发生了什么 66
2.5.3 可变长参数 73
2.5.4 递归调用 80
2.6 利用malloc()来进行动态内存分配(堆) 84
2.6.1 malloc()的基础 84
2.6.2 malloc()是“系统调用”吗 88
2.6.3 malloc()中发生了什么 89
2.6.4 free()之后,对应的内存区域会怎样 91
2.6.5 碎片化 93
2.6.6 malloc()以外的动态内存分配函数 94
2.7 内存布局对齐 98
2.8 字节排序 101
2.9 关于开发语言的标准和实现——对不起,前面的内容都是忽悠的 102
第3章 揭秘C的语法——它到底是怎么回事 105
3.1 解读C的声明 105
3.1.1 用英语来阅读 105
3.1.2 解读C的声明 106
3.1.3 类型名 109
3.2 C的数据类型的模型 111
3.2.1 基本类型和派生类型 111
3.2.2 指针类型派生 112
3.2.3 数组类型派生 113
3.2.4 什么是指向数组的指针 114
3.2.5 C语言中不存在多维数组! 116
3.2.6 函数类型派生 117
3.2.7 计算类型的大小 119
3.2.8 基本类型 121
3.2.9 结构体和共用体 122
3.2.10 不完全类型 123
3.3 表达式 125
3.3.1 表达式和数据类型 125
3.3.2 “左值”是什么——变量的两张面孔 129
3.3.3 将数组解读成指针 130
3.3.4 数组和指针相关的运算符 132
3.3.5 多维数组 133
3.4 解读C的声明(续) 137
3.4.1 const修饰符 137
3.4.2 如何使用const?可以使用到什么程度? 139
3.4.3 typedef 141
3.5 其他 143
3.5.1 函数的形参的声明 143
3.5.2 关于空的下标运算符[] 146
3.5.3 字符串常量 148
3.5.4 关于指向函数的指针引起的混乱 151
3.5.5 强制类型转换 152
3.5.6 练习——挑战那些复杂的声明 153
3.6 应该记住:数组和指针是不同的事物 157
3.6.1 为什么会引起混乱 157
3.6.2 表达式之中 158
3.6.3 声明 160
第4章 数组和指针的常用方法 161
4.1 基本的使用方法 161
4.1.1 以函数返回值之外的方式来返回值 161
4.1.2 将数组作为函数的参数传递 162
4.1.3 可变长数组 163
4.2 组合使用 166
4.2.1 可变长数组的数组 166
4.2.2 可变长数组的可变长数组 172
4.2.3 命令行参数 174
4.2.4 通过参数返回指针 177
4.2.5 将多维数组作为函数的参数传递 181
4.2.6 数组的可变长数组 182
4.2.7 纠结于“可变”之前,不妨考虑使用结构体 183
4.3 违反标准的技巧 187
4.3.1 可变长结构体 187
4.3.2 从1开始的数组 189
第5章 数据结构[3] ——真正的指针的使用方法 193
5.1 案例学习1:计算单词的出现频率 193
5.1.1 案例的需求 193
5.1.2 设计 195
5.1.3 数组版 200
5.1.4 链表版 203
5.1.5 追加检索功能 211
5.1.6 其他的数据结构 214
5.2 案例学习2:绘图工具的数据结构 218
5.2.1 案例的需求 218
5.2.2 实现各种图形的数据模型 219
5.2.3 Shape型 221
5.2.4 讨论——还有别的方法吗 223
5.2.5 图形的组合 228
5.2.6 继承和多态之道 233
5.2.7 对指针的恐惧 236
5.2.8 说到底,指针究竟是什么 237
第6章 其他——拾遗 239
6.1 陷阱 239
6.1.1 关于strncpy() 239
6.1.2 如果在早期的C中使用float类型的参数 240
6.1.3 printf()和scanf() 242
6.1.4 原型声明的光和影 243
6.2 惯用句法 245
6.2.1 结构体声明 245
6.2.2 自引用型结构体 246
6.2.3 结构体的相互引用 247
6.2.4 结构体的嵌套 248
6.2.5 共用体 249
6.2.6 数组的初始化 250
6.2.7 char数组的初始化 250
6.2.8 指向char的指针的数组的初始化 251
6.2.9 结构体的初始化 252
6.2.10 共用体的初始化 252
6.2.11 全局变量的声明 253
蓝牙核心技术.pdf
目录编辑
译者序
序(一)
序(二)
前言
商标列表
第一部分 蓝牙无线通信技术介绍
第二部分 蓝牙规范分析
第三部分 蓝牙协议子集的分析
第四部分 蓝牙技术的未来
鸟哥的Linux私房菜基础学习篇(第三版) .pdf
目录编辑
第一部分 Linux的规则与安装
第0章 计算机概论
第1章 Linux是什么
第2章 Linux如何学习
第3章 主机规划与磁盘分区
第4章 安装CentOS 5.x与多重引导小技巧
第5章 首次登录与在线求助man page
第二部分 Linux文件、目录与磁盘格式
第6章 Linux的文件权限与目录配置
第7章 Linux文件与目录管理
第8章 Linux磁盘与文件系统管理
第9章 文件与文件系统的压缩与打包
第三部分 学习shell与shell script
第10章 vim程序编辑器
第11章 认识与学习bash
第12章 正则表达式与文件格式化处理
第13章 学习shell script
第四部分 Linux使用者管理
第14章 Linux账号管理与ACL权限设置
第15章 磁盘配额(Quota)与高级文件系统管理
第16章 例行性工作(crontab)
第17章 程序管理与SELinux初探
第18章 认识系统服务(daemons)
第19章 认识与分析日志文件
第五部分 Linux系统管理员
第20章 启动流程、模块管理与Loader
第21章 系统设置工具(网络与打印机)与硬件检测
第22章 软件安装:源码与Tarball
第23章 软件安装:RPM、SRPM与YUM功能
第24章 X Window设置介绍
第25章 Linux备份策略
第26章 Linux内核编译与管理
附录A 快速索引
蓝牙4.0 BLE开发完全手册 物联网开发技术实战.pdf
《蓝牙4.0 BLE开发完全手册:》采用理论与实践相结合的思想,介绍了蓝牙4.0 BLE技术的基础知识、开发环境以及硬件资源。
书 名 蓝牙4.0BLE开发完全手册 作 者 欧阳骏、陈子龙、黄宁淋 ISBN 9787122165275 页 数 167 定 价 68.00元 出版时间 2013-5 副标题 物联网开发技术实战
内容介绍
通过相关的配套实验,结合丰富的示例工程,针对蓝牙4.0 BLE技术开发过程中的重点、难点问题进行了详细的讲解,使读者能够逐步了解蓝牙4.0 BLE无线网络的开发流程并快速全面地掌握开发过程中需要注意的问题,同时给出了部分开发经验和技巧供读者参考。
ZigBee无线传感器网络设计与实现.pdf
目录编辑
第1章ZigBee简介
1.1无线网络数据传输协议对比
1.2短距离无线网络的分类
1.2.1什么是ZigBee
1.2.2ZigBee和IEEE802.15.4的关系
1.2.3ZigBee的特点
1.3ZigBee2007协议简介
1.4ZigBee无线网络通信信道分析
1.5ZigBee无线网络拓扑结构
1.6ZigBee技术的应用领域
1.7CC2530开发板硬件资源概述
1.8本章小结
第2章IAR集成开发环境及程序下载流程
2.1IAR集成开发环境简介
2.2工程的编辑与修改
2.2.1建立一个新工程
2.2.2建立一个源文件
2.2.3添加源文件到工程
2.2.4工程设置
2.2.5源文件的编译
2.3仿真调试与下载
2.3.1仿真调试器驱动的安装
2.3.2程序仿真调试
2.4本章小结
2.5扩展阅读之模块化编程技巧
第3章CC2530开发板硬件资源详解
3.1核心板硬件资源
3.1.1CC2530简介
3.1.2天线及巴伦匹配电路设计
3.1.3晶振电路设计
3.2底板硬件资源
3.2.1电源电路设计
3.2.2LED电路设计
3.2.3AD转换电路设计
3.2.4串口电路设计
3.3本章小结
3.4扩展阅读之天线基本理论
3.4.1天线的一些基本参数
3.4.2常见的天线形式
3.4.3ZigBee模块天线选型
第4章ZigBee无线传感器网络入门
4.1ZigBee协议栈
4.1.1什么是ZigBee协议栈
4.1.2如何使用ZigBee协议栈
4.1.3ZigBee协议栈的安装、编译与下载
4.2ZigBee协议栈基础实验:数据传输实验
4.2.1协调器编程
4.2.2终端节点编程
4.2.3实例测试
4.3ZigBee数据传输实验剖析
4.3.1实验原理及流程图
4.3.2数据发送
4.3.3数据接收
4.4ZigBee数据包的捕获
4.4.1如何构建ZigBee协议分析仪
4.4.2ZigBee数据包的结构
4.4.3ZigBee网络数据传输流程分析
4.4.4数据收发实验回顾
4.5本章小结
4.6扩展阅读之ZigBee协议栈数据包格式
第5章ZigBee无线传感器网络提高
5.1深入理解ZigBee协议栈的构成
5.2ZigBee协议栈OSAL介绍
5.2.1OSAL常用术语
5.2.2OSAL运行机理
5.2.3OSAL消息队列
5.2.4OSAL添加新任务
5.2.5OSAL应用编程接口
5.3ZigBee协议栈中串口应用详解
5.3.1串口收发基础实验
5.3.2实例测试
5.3.3串口工作原理剖析
5.4ZigBee协议栈串口应用扩展实验
5.4.1实验原理及流程图
5.4.2协调器编程
5.4.3终端节点编程
5.4.4实例测试
5.5无线温度检测实验
5.5.1实验原理及流程图
5.5.2协调器编程
5.5.3终端节点编程
5.5.4实例测试
5.6ZigBee协议栈中的NV操作
5.6.1NV操作函数
5.6.2NV操作基础实验
5.6.3实例测试
5.7本章小结
5.8扩展阅读之一:ZigBee协议中规范(Profile)和簇(Cluester)的概念
5.9扩展阅读之二:探究接收数据的存放位置
第6章ZigBee无线传感器网络管理
6.1ZigBee网络中的设备地址
6.2ZigBee无线网络中的地址分配机制
6.3单播、组播和广播
6.4网络通信实验
6.4.1广播和单播通信
6.4.2组播通信
6.5ZigBee协议栈网络管理
6.5.1网络管理基础实验
6.5.2网络管理扩展实验
6.5.3获得网络拓扑
6.6本章小结
6.7扩展阅读之建立网络、加入网络流程分析
第7章ZigBee无线传感器网络综合实战
7.1ZigBee无线传感器网络获取网络拓扑实战
7.1.1系统设计原理
7.1.2协调器编程
7.1.3终端节点和路由器编程
7.1.4实例测试
7.2ZigBee无线传感器网络通用传输系统设计
7.2.1系统设计原理
7.2.2软件编程概述
7.2.3协调器编程
7.2.4路由器和终端节点编程
7.3ZigBee无线传感器网络远程数据采集系统设计
7.3.1系统设计原理
7.3.2协调器编程
7.3.3终端节点和路由器编程
7.3.4实例测试
7.4太阳能供电的ZigBee无线传感器网络节点设计
7.4.1系统设计所面临的问题
7.4.2系统构架分析
7.5本章小结
7.6扩展阅读之天线基本理论
参考文献
802.11无线网络权威指南+第二版(中文版).pdf
内容介绍编辑
使用无线网络是一种获得解放的、自由的经历。但是在这种经历的背后存在着一个复杂的协议,并且当数据不只限于在物理线路上传输时,甚至会产生一些更为复杂的问题。怎样构造你的网络才能让移动式用户活动自如?怎样扩展无线网络才能让它在任何需要的地方都可用?无线网络会产生哪些安全问题?怎样把无线网络调整到最佳性能?怎样提供足够的容量来支持最初希望的用户?怎样处理更多的用户参与网络所带来的各种问题? 《802.11无线网络权威指南(影印版)》讨论了上述所有的问题及其他相关问题。本书主要是为部署或维护无线网络的严谨的系统管理员或网络管理员编写的。它讨论了802.11议的工作原理,分析了各种可用选项的意义,以及排除故障的问题。书中广泛讨论了无线网络的安全问题,包括使用WEP标准的安全问题,并介绍了802.1X安全标准。由于对于任何严谨的网络管理员来说,网络监视都是一项基本的工作,并且适合无线应用的商用便携式探测器比较缺乏且价格昂贵,因此本书展示了怎样从Linux系统和公开的源代码软件创建无线便携式探测器。除了当前的802.11b标准之外,本书还介绍了无线网络的最新发展,包括两个新的54 Mbps标准:802.11a和802.11g。书中还介绍了标准发展过程中的其他研究领域,包括改善访问点之间的移动性、服务质量、频谱管理和功率控制。 最后,本书向你展示了怎样配置无线卡和Linux、 Windows和OS X系统,以及怎样处理访问点。很少有一本书能够把你需要掌握的理论和完成工作所需要的实际经验和建议有机地结合在一起。《802.11无线网络权威指南(影印版)》却是一本这样的好书。如果你负责管理无线网络,你就需要这本书。
C语言核心技术(中文版).PDF
第一部分 语言
第1章 C语言基础
第2章 数据类型
第3章 字面值
第4章 类型转换
第5章 表达式和运算符
第6章 语句
第7章 函数
第8章 数组
第9章 指针
第10章 结构、联合、位字段
第11章 声明
第12章 动态内存管理
第13章 输入和输出
第14章 预处理指令
第二部分 标准链接库
第15章 标准头文件
第16章 函数简介
第17章 标准链接库函数
第三部分 基本工具
第18章 GCC编译器
第19章 使用make创建C程序
第20章 使用GDB调试C程序[1]
Android应用性能优化.pdf
目录编辑
第1章 Java代码优化
1.1 Android如何执行代码
1.2 优化斐波纳契数列
1.2.1 从递归到迭代
1.2.2 BigInteger
1.3 缓存结果
1.4 API等级
1.5 数据结构
1.6 响应能力
1.6.1 推迟初始化
1.6.2 StrictMode
1.7 SQLite
1.7.1 SQLite语句
1.7.2 事务
1.7.3 查询
第1章 Java代码优化
1.1 Android如何执行代码
1.2 优化斐波纳契数列
1.2.1 从递归到迭代
1.2.2 BigInteger
1.3 缓存结果
1.4 API等级
1.5 数据结构
1.6 响应能力
1.6.1 推迟初始化
1.6.2 StrictMode
1.7 SQLite
1.7.1 SQLite语句
1.7.2 事务
1.7.3 查询
1.8 总结
第2章 NDK入门
2.1 NDK里有什么
2.2 混合使用Java和C/C++代码
2.2.1 声明本地方法
2.2.2 实现JNI粘合层
2.2.3 创建Makefile
2.2.4 实现本地函数
2.2.5 编译本地库
2.2.6 加载本地库
2.3 Application.mk
2.3.1 为(几乎)所有设备优化
2.3.2 支持所有设备
2.4 Android.mk
2.5 使用C/C++改进性能
2.6 本地Acitivity
2.6.1 构建缺失的库
2.6.2 替代方案
2.7 总结
第3章 NDK进阶
3.1 汇编
3.1.1 最大公约数
3.1.2 色彩转换
3.1.3 并行计算平均值
3.1.4 ARM指令
3.1.5 ARM NEON
3.1.6 CPU特性
3.2 C扩展
3.2.1 内置函数
3.2.2 向量指令
3.3 技巧
3.3.1 内联函数
3.3.2 循环展开
3.3.3 内存预读取
3.3.4 用LDM/STM替换LDR/STD
3.4 总结
第4章 高效使用内存
4.1 说说内存
4.2 数据类型
4.2.1 值的比较
4.2.2 其他算法
4.2.3 数组排序
4.2.4 定义自己的类
4.3 访问内存
4.4 排布数据
4.5 垃圾收集
4.5.1 内存泄漏
4.5.2 引用
4.6 API
4.7 内存少的时候
4.8 总结
第5章 多线程和同步
5.1 线程
5.2 AsyncTask
5.3 Handler和Looper
5.3.1 Handler
5.3.2 Looper
5.4 数据类型
5.5 并发
5.6 多核
5.6.1 为多核修改算法
5.6.2 使用并发缓存
5.7 Activity生命周期
5.7.1 传递信息
5.7.2 记住状态
5.8 总结
第6章 性能评测和剖析
6.1 时间测量
6.1.1 System.nanoTime()
6.1.2 Debug.threadCpuTimeNanos()
6.2 方法调用跟踪
6.2.1 Debug.startMethodTracing()
6.2.2 使用Traceview工具
6.2.3 DDMS中的Traceview
6.2.4 本地方法跟踪
6.3 日志
6.4 总结
第7章 延长电池续航时间
7.1 电池
7.2 禁用广播接收器
7.3 网络
7.3.1 后台数据
7.3.2 数据传输
7.4 位置
7.4.1 注销监听器
7.4.2 更新频率
7.4.3 多种位置服务
7.4.4 筛选定位服务
7.4.5 最后已知位置
7.5 传感器
7.6 图形
7.7 提醒
7.8 WakeLock
7.9 总结
第8章 图形
8.1 布局优化
8.1.1 相对布局
8.1.2 合并布局
8.1.3 重用布局
8.1.4 ViewStub
8.2 布局工具
8.2.1 层级视图
8.2.2 layoutopt
8.3 OpenGL ES
8.3.1 扩展
8.3.2 纹理压缩
8.3.3 Mipmap
8.3.4 多APK
8.3.5 着色
8.3.6 场景复杂性
8.3.7 消隐
8.3.8 渲染模式
8.3.9 功耗管理
8.4 总结
第9章 RenderScript
9.1 概览
9.2 Hello World
9.3 Hello Rendering
9.3.1 创建渲染脚本
9.3.2 创建RenderScriptGL Context
9.3.3 展开RSSurfaceView
9.3.4 设置内容视图
9.4 在脚本中添加变量
9.5 HelloCompute
9.5.1 Allocation
9.5.2 rsForEach
9.5.3 性能
9.6 自带的RenderScript API
9.6.1 rs_types.rsh
9.6.2 rs_core.rsh
9.6.3 rs_cl.rsh
9.6.4 rs_math.rsh
9.6.5 rs_graphics.rsh
9.6.6 rs_time.rsh
9.6.7 rs_atomic.rsh
9.7 RenderScript与NDK对比
9.8 总结
LINUX设备驱动程序(第3版).pdf
目录编辑
前言
第一章 设备驱动程序简介
设备驱动程序的作用
内核功能划分
设备和模块的分类
安全问题
版本编号
许可证条款
加入内核开发社团
本书概要
第二章 构造和运行模块
设置测试系统
Hello world模块
核心模块与应用程序的对比
编译和装载
内核符号表
预备知识
初始化和关闭
模块参数
在用户空间编写驱动程序
快速参考
第三章 字符设备驱动程序
scull的设计
主设备号和次设备号
一些重要的数据结构
字符设备的注册
open和release
scull的内存使用
read和write
试试新设备
快速参考
第四章 调试技术
内核中的调试支持
通过打印调试
通过查询调试
通过监视调试
调试系统故障
调试器和相关工具
第五章 并发和竞态
scull的缺陷
并发及其管理
信号量和互斥体
completiOn
自旋锁
锁陷阱
除了锁之外的办法
快速参考
第六章 高级字符驱动程序操作
ioctl
阻塞型I/O
poll和select
异步通知
定位设备
设备文件的访问控制
快速参考
第七章 时间、延迟及延缓操作
度量时间差
获取当前时间
延迟执行
内核定时器
tasklet
工作队列
快速参考
第八章 分配内存
kmalloc函数的内幕
后备高速缓存
get—free—page和相关函数
vmalloc及其辅助函数
per-CPU变量
获取大的缓冲区
快速参考
精通Linux 设备驱动程序开发 pdf
目录编辑
第1章 引言 1
1.1 演进 1
1.2 gnu copyleft 2
1.3 kernel. 2
1.4 邮件列表和论坛 3
1.5 linux发行版 3
1.6 查看源代码 4
1.7 编译内核 7
1.8 可加载的模块 8
1.9 整装待发 9
第2章 内核 11
2.1 启动过程 11
2.1.1 bios-provided physical ram map 12
2.1.2 758mb lowmem available 14
2.1.3 kernel command line: ro
root=/dev/hda1 14
2.1.4 calibrating delay...1197.46
.bogomips (lpj=2394935) 15
2.1.5 checking hlt instruction 16
2.1.6 net: registered protocol family 2 17
2.1.7 freeing initrd memory: 387k freed 17
2.1.8 io scheduler anticipatory
registered (default) 18
2.1.9 setting up standard pci resources 18
2.1.10 ext3-fs: mounted filesystem 19
2.1.11 init: version 2.85 booting 19
2.2 内核模式和用户模式 20
2.3 进程上下文和中断上下文 20
2.4 内核定时器 21
2.4.1 hz和jiffies 21
2.4.2 长延时 22
2.4.3 短延时 24
2.4.4 pentium时间戳计数器 24
2.4.5 实时钟 25
2.5 内核中的并发 26
2.5.1 自旋锁和互斥体 26
2.5.2 原子操作 30
2.5.3 读—写锁 31
2.5.4 调试 32
2.6 proc文件系统 32
2.7 内存分配 33
2.8 查看源代码 34
第3章 内核组件 37
3.1 内核线程 37
3.1.1 创建内核线程 37
3.1.2 进程状态和等待队列 41
3.1.3 用户模式辅助程序 42
3.2 辅助接口 43
3.2.1 链表 44
3.2.2 散列链表 49
3.2.3 工作队列 49
3.2.4 通知链 51
3.2.5 完成接口 54
3.2.6 kthread辅助接口 56
3.2.7 错误处理助手 57
3.3 查看源代码 58
第4章 基本概念 61
4.1 设备和驱动程序介绍 61
4.2 中断处理 63
4.2.1 中断上下文 63
4.2.2 分配irq号 64
4.2.3 设备实例:导航杆 65
4.2.4 softirq和tasklet 68
4.3 linux设备模型 71
4.3.1 udev 71
4.3.2 sysfs、kobject和设备类 73
4.3.3 热插拔和冷插拔 76
4.3.4 微码下载 76
4.3.5 模块自动加载 77
4.4 内存屏障 78
4.5 电源管理 79
4.6 查看源代码 79
第5章 字符设备驱动程序 81
5.1 字符设备驱动程序基础 81
5.2 设备实例:系统cmos 82
5.2.1 驱动程序初始化 83
5.2.2 打开与释放 86
5.2.3 数据交换 88
5.2.4 查找 92
5.2.5 控制 94
5.3 检测数据可用性 95
5.3.1 轮询 95
5.3.2 fasync 98
5.4 和并行端口交互 99
5.5 rtc子系统 108
5.6 伪字符驱动程序 109
5.7 混杂驱动程序 110
5.8 字符设备驱动程序注意事项 115
5.9 查看源代码 115
第6章 串行设备驱动程序 118
6.1 层次架构 119
6.2 uart驱动程序 121
6.2.1 设备实例:手机 122
6.2.2 rs-485 132
6.3 tty驱动程序 132
6.4 线路规程 134
6.5 查看源代码 141
第7章 输入设备驱动程序 143
7.1 输入事件驱动程序 144
7.2 输入设备驱动程序 150
7.2.1 serio 150
7.2.2 键盘 150
7.2.3 鼠标 152
7.2.4 触摸控制器 157
7.2.5 加速度传感器 158
7.2.6 输出事件 158
7.3 调试 159
7.4 查看源代码 160
第8章 i2c协议 161
8.1 i2c/smbus是什么 161
8.2 i2c核心 162
8.3 总线事务 164
8.4 设备实例:eeprom 164
8.4.1 初始化 165
8.4.2 探测设备 167
8.4.3 检查适配器的功能 169
8.4.4 访问设备 169
8.4.5 其他函数 170
8.5 设备实例:实时时钟 171
8.6 i2c-dev 174
8.7 使用lm-sensors监控硬件 174
8.8 spi总线 174
8.9 1-wire总线 176
8.10 调试 176
8.11 查看源代码 176
第9章 pcmcia和cf 179
9.1 pcmcia/cf是什么 179
9.2 linux-pcmcia子系统 181
9.3 主机控制器驱动程序 183
9.4 pcmcia核心 183
9.5 驱动程序服务 183
9.6 客户驱动程序 183
9.6.1 数据结构 184
9.6.2 设备实例:pcmcia卡 185
9.7 将零件组装在一起 188
9.8 pcmcia存储 189
9.9 串行pcmcia 189
9.10 调试 191
9.11 查看源代码 191
第10章 pci 193
10.1 pci系列 193
10.2 寻址和识别 195
10.3 访问pci 198
10.3.1 配置区 198
10.3.2 i/o和内存 199
10.4 dma 200
10.5 设备实例:以太网—调制解调器卡 203
10.5.1 初始化和探测 203
10.5.2 数据传输 209
10.6 调试 214
10.7 查看源代码 214
第11章 usb 216
11.1 usb体系架构 216
11.1.1 总线速度 218
11.1.2 主机控制器 218
11.1.3 传输模式 219
11.1.4 寻址 219
11.2 linux-usb子系统 220
11.3 驱动程序的数据结构 221
11.3.1 usb_device结构体 221
11.3.2 urb 222
11.3.3 管道 223
11.3.4 描述符结构 223
11.4 枚举 225
11.5 设备实例:遥测卡 225
11.5.1 初始化和探测过程 226
11.5.2 卡寄存器的访问 230
11.5.3 数据传输 233
11.6 类驱动程序 236
11.6.1 大容量存储设备 236
11.6.2 usb-串行端口转换器 241
11.6.3 人机接口设备 243
11.6.4 蓝牙 243
11.7 gadget驱动程序 243
11.8 调试 244
11.9 查看源代码 245
第12章 视频驱动程序 247
12.1 显示架构 247
12.2 linux视频子系统 249
12.3 显示参数 251
12.4 帧缓冲api 252
12.5 帧缓冲驱动程序 254
12.6 控制台驱动程序 265
12.6.1 设备实例:手机 266
12.6.2 启动logo 270
12.7 调试 270
12.8 查看源代码 271
第13章 音频驱动程序 273
13.1 音频架构 273
13.2 linux声音子系统 275
13.3 设备实例:mp3播放器 277
13.3.1 驱动程序函数和结构体 278
13.3.2 alsa编程 287
13.4 调试 288
13.5 查看源代码 289
第14章 块设备驱动程序 291
14.1 存储技术 291
14.2 linux块i/o层 295
14.3 i/o调度器 295
14.4 块驱动程序数据结构和方法 296
14.5 设备实例:简单存储控制器 298
14.5.1 初始化 299
14.5.2 块设备操作 301
14.5.3 磁盘访问 302
14.6 高级主题 304
14.7 调试 306
14.8 查看源代码 306
第15章 网络接口卡 308
15.1 驱动程序数据结构 308
15.1.1 套接字缓冲区 309
15.1.2 网络设备接口 310
15.1.3 激活 311
15.1.4 数据传输 311
15.1.5 看门狗 311
15.1.6 统计 312
15.1.7 配置 313
15.1.8 总线相关内容 314
15.2 与协议层会话 314
15.2.1 接收路径 314
15.2.2 发送路径 315
15.2.3 流量控制 315
15.3 缓冲区管理和并发控制 315
15.4 设备实例:以太网nic 316
15.5 isa网络驱动程序 321
15.6 atm 321
15.7 网络吞吐量 322
15.7.1 驱动程序性能 322
15.7.2 协议性能 323
15.8 查看源代码 324
第16章 linux无线设备驱动 326
16.1 蓝牙 327
16.1.1 bluez 328
16.1.2 设备实例:cf卡 329
16.1.3 设备实例:usb适配器 330
16.1.4 rfcomm 331
16.1.5 网络 332
16.1.6 hid 334
16.1.7 音频 334
16.1.8 调试 334
16.1.9 关于源代码 334
16.2 红外 335
16.2.1 linux-irda 335
16.2.2 设备实例:超级i/o芯片 337
16.2.3 设备实例:ir dongle 338
16.2.4 ircomm 340
16.2.5 联网 340
16.2.6 irda套接字 341
16.2.7 lirc 341
16.2.8 查看源代码 342
16.3 wifi 343
16.3.1 配置 343
16.3.2 设备驱动程序 346
16.3.3 查看源代码 347
16.4 蜂窝网络 347
16.4.1 gprs 347
16.4.2 cdma 349
16.5 当前趋势 350
第17章 存储技术设备 352
17.1 什么是闪存 352
17.2 linux-mtd子系统 353
17.3 映射驱动程序 353
17.4 nor芯片驱动程序 358
17.5 nand芯片驱动程序 359
17.6 用户模块 361
17.6.1 块设备模拟 361
17.6.2 字符设备模拟 361
17.6.3 jffs2 362
17.6.4 yaffs2 363
17.7 mtd工具 363
17.8 配置mtd 363
17.9 xip 364
17.10 fwh 364
17.11 调试 367
17.12 查看源代码 367
第18章 嵌入式linux 369
18.1 挑战 369
18.2 元器件选择 370
18.3 工具链 371
18.4 bootloader 372
18.5 内存布局 374
18.6 内核移植 375
18.7 嵌入式驱动程序 376
18.7.1 闪存 377
18.7.2 uart 377
18.7.3 按钮和滚轮 378
18.7.4 pcmcia/cf 378
18.7.5 sd/mmc 378
18.7.6 usb 378
18.7.7 rtc 378
18.7.8 音频 378
18.7.9 触摸屏 379
18.7.10 视频 379
18.7.11 cpld/fpga 379
18.7.12 连接性 379
18.7.13 专用领域电子器件 380
18.7.14 更多驱动程序 380
18.8 根文件系统 380
18.8.1 nfs挂载的根文件系统 381
18.8.2 紧凑型中间件 382
18.9 测试基础设施 383
18.10 调试 383
18.10.1 电路板返工 384
18.10.2 调试器 385
第19章 用户空间的驱动程序 386
19.1 进程调度和响应时间 387
19.1.1 原先的调度器 387
19.1.2 o(1)调度器 387
19.1.3 cfs 388
19.1.4 响应时间 388
19.2 访问i/o区域 390
19.3 访问内存区域 393
19.4 用户模式scsi 395
19.5 用户模式usb 397
19.6 用户模式i2c 400
19.7 uio 401
19.8 查看源代码 402
第20章 其他设备和驱动程序 403
20.1 ecc报告 403
20.2 频率调整 407
20.3 嵌入式控制器 408
20.4 acpi 408
20.5 isa与mca 410
20.6 火线 410
20.7 智能输入/输出 411
20.8 业余无线电 411
20.9 voip 411
20.10 高速互联 412
20.10.1 infiniband 413
20.10.2 rapidio 413
20.10.3 光纤通道 413
20.10.4 iscsi 413
第21章 调试设备驱动程序 414
21.1 kdb 414
21.1.1 进入调试器 415
21.1.2 kdb 415
21.1.3 kgdb 417
21.1.4 gdb 420
21.1.5 jtag调试器 421
21.1.6 下载 423
21.2 内核探测器 423
21.2.1 kprobe 423
21.2.2 jprobe 427
21.2.3 返回探针 429
21.2.4 局限性 431
21.2.5 查看源代码 431
21.3 kexec与kdump 431
21.3.1 kexec 432
21.3.2 kdump与kexec协同工作 432
21.3.3 kdump 433
21.3.4 查看源代码 437
21.4 性能剖析 437
21.4.1 利用oprofile剖析内核性能 438
21.4.2 利用gprof剖析应用程序性能 440
21.5 跟踪 441
21.6 ltp 444
21.7 uml 444
21.8 诊断工具 444
21.9 内核修改配置选项 444
21.10 测试设备 445
第22章 维护与发布 446
22.1 代码风格 446
22.2 修改标记 446
22.3 版本控制 447
22.4 一致性检查 447
22.5 构建脚本 448
22.6 可移植代码 450
第23章 结束语 451
23.1 流程一览表 451
23.2 下一步该做什么 452
附录a linux汇编 453
附录b linux与bios 457
附录c seq文件 461
Unix环境高级编程 第三版 高清 带目录
Unix环境高级编程 第三版 高清 带目录 PDF
Android中文翻译组——Android开发者指南(目前最全的哦)
android开发者文档最新中文版,android开发者文档最新中文版
23种设计模式(C++)
23种设计模式(C++)
《Visual_C++_2008入门经典》完全版
《Visual_C++_2008入门经典》完全版《Visual_C++_2008入门经典》完全版
VC数据库编程
VC数据库编程VC数据库编程VC数据库编程VC数据库编程VC数据库编程VC数据库编程VC数据库编程
Java自学笔试
站在巨人的肩上,适用于java新学者,包括对java自学过程中的总结
Java正则表达式
Java正则表达式 Java正则表达式 Java正则表达式 Java正则表达式 Java正则表达式
Android 错误解决
Android 错误解决 Android 错误解决 Android 错误解决 Android 错误解决
android中处理各种触摸事件
android中处理各种触摸事件android中处理各种触摸事件android中处理各种触摸事件
Android布局文件的属性值解析
Android布局文件的属性值解析Android布局文件的属性值解析Android布局文件的属性值解析
apache-io 包
提供大量的io功能扩展,是apache上的一个重要类库,可大大减轻我们的开发难度……
C/C++函数库 tcsearch
本软件供C/C++爱好者查阅常用库函数,小巧,实用。