《ARM嵌入式Linux应用实例开发》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:欧文盛编著
  • 出 版 社:北京:中国电力出版社
  • 出版年份:2008
  • ISBN:7508374363
  • 页数:303 页
图书介绍:本书是《ARM嵌入式Linux系统开发丛书》之一。本书主要以完整的小型实例的形式讲述嵌入式Linux系统下的应用开发。在介绍基本的开发环境和Qtopia Core开发包的基础上,本书采用实例讲解的方式,由浅入深逐步介绍各种类型的应用开发,包括比较基础的截屏程序、时钟程序和拼图游戏,以及稍微复杂的桌面管理器、嵌入式数据库、嵌入式Web服务器等应用实例,并在最后两章讨论了嵌入式Linux应用开发中常用的调试和优化技术。本书提供所有实例的完整源代码,便于读者分析和学习。本书主要针对掌握了一定的程序设计基础知识,希望转入嵌入式Linux应用开发领域,却又缺少足够嵌入式开发实践经验的开发者而编写,也可作为高等院校自动化、电子、电气、计算机等专业本科生、研究生学习嵌入式Linux应用开发的参考书目或自学教材,或者嵌入式培训班的教材和教学辅导书。

第1章 基于ARM和嵌入式Linux的开发环境 1

1.1 嵌入式Linux 2

1.1.1 嵌入式系统 2

1.1.2 从Linux到嵌入式Linux 3

1.1.3 基本的编译调试工具 3

1.1.4 交叉编译环境 11

1.2 ARM处理器 12

1.2.1 ARM处理器介绍 13

1.2.2 ARM处理器的选型 14

1.2.3 S3C2410介绍 15

1.3 LJD-2410DVK-I开发板 16

1.3.1 开发板简介 17

1.3.2 硬件资源 17

1.3.3 软件资源 18

1.4 烧写开发板和搭建NFS环境 19

1.4.1 直接烧写开发板FLASH 19

1.4.2 通过NFS方式连接主机 21

1.5 交叉编译和运行HelloWorld 24

1.6 小结 25

第2章 QtopiaCore编程基础 27

2.1 嵌入式Linux下的常见GUI系统 28

2.2 QtopiaCore与Qt*Qt/Embedded 29

2.3 QtopiaCore的安装及简单实例 31

2.3.1 QtopiaCore的安装 31

2.3.2 FrameBuffer和qvfb 33

2.3.3 编写简单的QtopiaCore程序 39

2.4 移植QtopiaCore到开发板 41

2.4.1 准备库和字体 41

2.4.2 交叉编译HelloWorld程序 43

2.4.3 支持触摸屏 44

2.5 QtopiaCore的重要特性 45

2.5.1 信号和槽 46

2.5.2 自定义信号和槽的小例子 49

2.5.3 对象模型 52

2.5.4 窗口系统 58

2.5.5 QtopiaCore特性中的局限性 61

2.6 小结 63

第3章 命令行截屏工具 65

3.1 软件需求 66

3.2 截屏程序的工作原理 66

3.3 copyScreen程序的具体实现 68

3.4 运行和测试 70

3.5 小结 71

第4章 简单的时钟程序 73

4.1 开发背景与需求 74

4.2 技术分析和总体设计 74

4.2.1 与时钟相关的软硬件技术分析 74

4.2.2 初步设计方案 77

4.3 详细设计与代码实现 77

4.3.1 窗体控件的布局 78

4.3.2 选择合适的Qt控件 80

4.3.3 创建控件对象并布局 81

4.3.4 读取和修改系统时间 83

4.3.5 保存和读取时间格式 85

4.3.6 响应用户操作和刷新时间变化 89

4.3.7 绘制图形钟表盘 91

4.3.8 运行和测试我们的演示程序 95

4.4 小结 96

第5章 拼图小游戏 97

5.1 开发背景与需求 98

5.2 技术分析和总体设计 98

5.2.1 设计模式和MVC模式 99

5.2.2 Qt的Model/View模式 100

5.2.3 PuzzleGame的总体设计 101

5.3 详细设计与代码实现 104

5.3.1 CardsModel类的详细设计 104

5.3.2 CardsView类的详细设计 107

5.3.3 CardsDelegate类的详细设计 108

5.3.4 PuzzleWindow类的详细设计 108

5.3.5 CardsModel类的实现 109

5.3.6 View和Delegate的实现 116

5.3.7 主窗口和菜单的实现 120

5.4 运行和测试程序 121

5.5 小结 123

第6章 嵌入式桌面管理器 125

6.1 背景与需求 126

6.2 技术分析与设计 127

6.2.1 QtopiaCore中的Client/Server模型 127

6.2.2 利用fork启动其他应用 129

6.2.3 关于灵活性的设计 130

6.3 AppMgr的详细实现 131

6.3.1 读取INI文件中的数据 131

6.3.2 实现AppMgrModel类 132

6.3.3 实现AppMgrView类 136

6.3.4 实现Controller类 138

6.3.5 实现主窗体和“Back”功能 140

6.4 运行和测试AppMgr 143

6.5 小结 145

第7章 嵌入式数据库 147

7.1 嵌入式数据库概述 148

7.2 BerkeleyDB及简单实例 148

7.2.1 BerkeleyDB简介 148

7.2.2 BerkeleyDB的高效性 149

7.2.3 BerkeleyDB的基本概念 150

7.2.4 BerkeleyDB的系统框架 152

7.2.5 安装和移植BerkeleyDB 153

7.2.6 简单应用示例 155

7.2.7 SQL语言和BerkeleyDB的对应 160

7.3 SQLite及简单实例 161

7.3.1 SQLite简介 161

7.3.2 SQLite的体系结构 161

7.3.3 安装和移植SQLite 162

7.3.4 简单应用示例 164

7.4 小结 169

第8章 嵌入式Web服务器 171

8.1 软件需求与背景 172

8.2 工作原理与软件设计 173

8.2.1 HTTP协议 173

8.2.2 通用网关接口CGI 175

8.2.3 MiniWebServer的设计方案 176

8.3 MiniWebServer的详细实现 177

8.3.1 监听和建立连接 178

8.3.2 解析和处理HTTP请求 183

8.3.3 处理静态页面请求 187

8.3.4 处理GET方法的CGI请求 188

8.3.5 处理POST方法的CGI请求 190

8.4 运行和测试MiniWebServer 194

8.4.1 编译和环境准备 194

8.4.2 测试静态网页 194

8.4.3 测试CGI程序 195

8.5 小结 199

第9章 嵌入式Linux调试技术 201

9.1 嵌入式调试概述 202

9.2 printf和log 203

9.2.1 printf和fprintf 203

9.2.2 将调试信息写到log文件 204

9.2.3 控制log的级别 206

9.3 ELF文件调试基础 209

9.3.1 ELF基础知识 209

9.3.2 ELF可重定位文件和可执行文件 211

9.3.3 静态库和动态共享库 212

9.3.4 常用ELF调试工具 215

9.4 GDB调试器 220

9.4.1 准备好用于GDB调试的程序 220

9.4.2 运行GDB 222

9.4.3 设置和管理断点 225

9.4.4 检查运行状态及源文件 227

9.4.5 多进程和多线程调试 230

9.4.6 远程调试 231

9.4.7 图形化调试器 232

9.5 CoreDump及调试 233

9.5.1 CoreDump相关设置 234

9.5.2 CoreDump的原因 235

9.5.3 用GDB分析CoreDump 236

9.5.4 信息不足时的CoreDump分析 238

9.6 系统调试工具 239

9.6.1 /proc虚拟文件系统 239

9.6.2 进程和文件 242

9.6.3 跟踪(Trace)工具 244

9.7 小结 249

第10章 嵌入式Linux性能优化 251

10.1 嵌入式优化概述 252

10.2 分析性能瓶颈(Profiling) 253

10.2.1 基本系统工具 253

10.2.2 GPROF和GCOV 256

10.2.3 OProfile 263

10.3 提高运行速度 264

10.3.1 编译器优化 265

10.3.2 C/C++代码优化 265

10.3.3 利用XIP技术 268

10.3.4 延迟数据的加载 269

10.4 针对动态共享库的优化 269

10.4.1 Prelink(预连接)技术 270

10.4.2 dlopen方法 272

10.4.3 环境变量LDDEBUG 275

10.4.4 优化搜索共享库的路径 276

10.4.5 使用ExportMap 279

10.4.6 减少不必要的库依赖 281

10.5 减少存储消耗 282

10.5.1 Linux虚拟内存映像 283

10.5.2 内存信息的查看 285

10.5.3 用strip减小文件尺寸 288

10.5.4 内存相关的代码优化 289

10.5.5 减少进程、线程和函数库 292

10.5.6 使用更小的库和工具 292

10.5.7 选择合适的嵌入式文件系统 293

10.6 检查内存泄漏 294

10.6.1 典型的内存泄漏问题 294

10.6.2 MALLOCCHECK 295

10.6.3 MEMWATCH 297

10.6.4 Valgrind 298

10.7 小结 302

参考文献 303