微信扫一扫,移动浏览光盘
简介
本书采用实例精解的方式,由浅入深逐步介绍各种类型的应用开发,包括比较基础的截屏程序、时钟程序和拼图游戏,以及稍微复杂的桌面管理器、嵌入式数据库、嵌入式Web服务器等应用实例,并在最后两章讨论了嵌入式Linux应用开发中常用的调试和优化技术。本书含光盘。
本书是《ARM嵌入式Linux系统开发丛书》之一。
本书主要以完整的小型实例的形式讲述嵌入式Linux系统下的应用开发。在介绍基本的开发环境和Qtopia Core开发包的基础上,本书采用实例讲解的方式,由浅入深逐步介绍各种类型的应用开发,包括比较基础的截屏程序、时钟程序和拼图游戏,以及稍微复杂的桌面管理器、嵌入式数据库、嵌入式Web服务器等应用实例,并在最后两章讨论了嵌入式Linux应用开发中常用的调试和优化技术。本书提供所有实例的完整源代码,便于读者分析和学习。
本书语言简洁,层次清晰,适合于从事嵌入式Linux应用开发的技术人员,也可以作为高等院校自动化、电子、电气、计算机更多>>
目录
前言
第1章 基于ARM和嵌入式Linux的开发环境
1.1 嵌入式Linux
1.1.1 嵌入式系统
1.1.2 从Linux到嵌入式Linux
1.1.3 基本的编译调试工具
1.1.4 交叉编译环境
1.2 ARM处理器
1.2.1 ARM处理器介绍
1.2.2 ARM处理器的选型
1.2.3 S3C2410介绍
1.3 LJD.2410DVK.I开发板
1.3.1 开发板简介
1.3.2 硬件资源
1.3.3 软件资源
1.4 烧写开发板和搭建NFS环境
1.4.1 直接烧写开发板FLASH
1.4.2 通过NFS方式连接主机
1.5 交叉编译和运行HelloWorld
1.6 小结
第2章 Qtopia Core编程基础
2.1 嵌入式Linux下的常见GUI系统
2.2 Qtopia Core与Qt、Qt/Embedded
2.3 Qtopia Core的安装及简单实例
2.3.1 Qtopia Core的安装
2.3.2 Frame。Buffer和qvfb
2.3.3 编写简单的Qtopia Core程序
2.4 移植Qtopia Core到开发板
2.4.1 准备库和字体
2.4.2 交叉编译Hello World程序
2.4.3 支持触摸屏
2.5 Qtopia Core的重要特性
2.5.1 信号和槽
2.5.2 自定义信号和槽的小例子
2.5.3 对象模型
2.5.4 窗口系统
2.5.5 Qtopia Core特性中的局限性
2.6 小结
第3章 命令行截屏工具
3.1 软件需求
3.2 截屏程序的工作原理
3.3 copyScreen程序的具体实现
3.4 运行和测试
3.5 小结
第4章 简单的时钟程序
4.1 开发背景与需求
4.2 技术分析和总体设计
4.2.1 与时钟相关的软硬件技术分析
4.2.2 初步设计方案
4.3 详细设计与代码实现
4.3.1 窗体控件的布局
4.3.2 选择合适的Qt控件
4.3.3 创建控件对象并布局
4.3.4 读取和修改系统时间
4.3.5 保存和读取时间格式
4.3.6 响应用户操作和刷新时间变化
4.3.7 绘制图形钟表盘
4.3.8 运行和测试我们的演示程序
4.4 小结
第5章 拼图小游戏
5.1 开发背景与需求
5.2 技术分析和总体设计
5.2.1 设计模式和MVC模式
5.2.2 Qt的Model/View模式
5.2.3 Puzzle Game的总体设计
5.3 详细设计与代码实现
5.3.1 CardsModel类的详细设计
5.3.2 CardsView类的详细设计
5.3.3 CardsDelegate类的详细设计
5.3.4.PuzzleWindow类的详细设计
5.3.5 CardsModel类的实现
5.3.6 View和Delegate的实现
5.3.7 主窗口和菜单的实现
5.4 运行和测试程序
5.5 小结
第6章 嵌入式桌面管理器
6.1 背景与需求
6.2 技术分析与设计
6.2.1 Qtopia Core中的Client/Server模型
6.2.2 利用flork启动其他应用
6.2.3 关于灵活性的设计
6.3 AppMgr的详细实现
6.3.1 读取INI文件中的数据
6.3.2 实现AppMgrModel类
6.3.3 实现AppMgrView类
6.3.4 实现Controller类
6.3.5 实现主窗体和“Back”功能
6.4 运行和测试AppMgr
6.5 小结
第7章 嵌入式数据库
7.1 嵌入式数据库概述
7.2 Berkeley DB及简单实例
7.2.1 Berkeley DB简介
7.2.2 Berkeley DB的高效性
7.2.3 Betkeley DB的基本概念
7.2.4 Berkeley DB的系统框架
7.2.5 安装和移植Berkeley DB
7.2.6 简单应用示例.
7.2.7 SQL语言和Berkeley DB的对应
7.3 SQLite及简单实例
7.3.1 SQLite简介
7.3.2 SQLite的体系结构
7.3.3 安装和移植SQLite
7.3.4 简单应用示例
7.4 小结
第8章 嵌入式Web服务器
8.1 软件需求与背景
8.2 工作原理与软件设计
8.2.1 HTTP协议
8.2.2 通用网关接口CGI
8.2.3 MiniWebServer的设计方案
8.3 MiniWebServer的详细实现
8.3.1 监听和建立连接
8.3.2 解析和处理HTTP请求
8.3.3 处理静态页面请求
8.3.4 处理GET方法的CGI请求
8.3.5 处理POST方法的CGI请求
8.4 运行和测试MiniWebServer
8.4.1 编译和环境准备
8.4.2 测试静态网页
8.4.3 测试CGI程序
8.5 小结
第9章 嵌入式Linux调试技术
9.1 嵌入式调试概述
9.2 printf和log
9.2.1 Drintf和fprintf
9.2.2 将调试信息写到log文件
9.2.3 控制log的级别
9.3 ELF文件调试基础
9.3.1 ELF基础知识
9.3.2 ELF可重定位文件和可执行文件
9.3.3 静态库和动态共享库
9.3.4 常用ELF调试工具
9.4 GDB调试器
9.4.1 准备好用于GDB调试的程序
9.4.2 运行GDB
9.4.3 设置和管理断点
9.4.4 检查运行状态及源文件
9.4.5 多进程和多线程调试
9.4.6 远程调试
9.4.7 图形化调试器
9.5 Core Dump及调试
9.5.1 Core Dump相关设置
9.5.2 Core Dump的原因
9.5.3 用GDB分析Core Dump
9.5.4 信息不足时的Core Dump分析
9.6 系统调试工具
9.6.1 /proc虚拟文件系统
9.6.2 进程和文件
9.6.3 跟踪(Trace)工具
9.7 小结
第10章 嵌入式Linux性能优化
10.1 嵌入式优化概述
10.2 分析性能瓶颈(Profiling)
10.2.1 基本系统工具
10.2.2 GPROF和GCOV
10.2.3 OProfile
10.3 提高运行速度
10.3.1 编译器优化
10.3.2 C/C++代码优化
10.3.3 利用XIP技术
10.3.4 延迟数据的加载
10.4 针对动态共享库的优化
10.4.1 Prelink(预连接)技术
10.4.2 dlopen方法
10.4.3 环境变量LD-DEBUG
10.4.4 优化搜索共享库的路径
10.4.5 使用Export Map
10.4.6 减少不必要的库依赖
10.5 减少存储消耗
10.5.1 Linux虚拟内存映像
10.5.2 内存信息的查看
10.5.3 用strip减小文件尺寸
10.5.4 内存相关的代码优化
10.5.5 减少进程、线程和函数库
10.5.6 使用更小的库和工具
10.5.7 选择合适的嵌入式文件系统
10.6 检查内存泄漏
10.6.1 典型的内存泄漏问题
10.6.2 MALLOC CHECK
10.6.3 MEMWATCH
10.6.4 Valgrind
10.7 小结
参考文献
第1章 基于ARM和嵌入式Linux的开发环境
1.1 嵌入式Linux
1.1.1 嵌入式系统
1.1.2 从Linux到嵌入式Linux
1.1.3 基本的编译调试工具
1.1.4 交叉编译环境
1.2 ARM处理器
1.2.1 ARM处理器介绍
1.2.2 ARM处理器的选型
1.2.3 S3C2410介绍
1.3 LJD.2410DVK.I开发板
1.3.1 开发板简介
1.3.2 硬件资源
1.3.3 软件资源
1.4 烧写开发板和搭建NFS环境
1.4.1 直接烧写开发板FLASH
1.4.2 通过NFS方式连接主机
1.5 交叉编译和运行HelloWorld
1.6 小结
第2章 Qtopia Core编程基础
2.1 嵌入式Linux下的常见GUI系统
2.2 Qtopia Core与Qt、Qt/Embedded
2.3 Qtopia Core的安装及简单实例
2.3.1 Qtopia Core的安装
2.3.2 Frame。Buffer和qvfb
2.3.3 编写简单的Qtopia Core程序
2.4 移植Qtopia Core到开发板
2.4.1 准备库和字体
2.4.2 交叉编译Hello World程序
2.4.3 支持触摸屏
2.5 Qtopia Core的重要特性
2.5.1 信号和槽
2.5.2 自定义信号和槽的小例子
2.5.3 对象模型
2.5.4 窗口系统
2.5.5 Qtopia Core特性中的局限性
2.6 小结
第3章 命令行截屏工具
3.1 软件需求
3.2 截屏程序的工作原理
3.3 copyScreen程序的具体实现
3.4 运行和测试
3.5 小结
第4章 简单的时钟程序
4.1 开发背景与需求
4.2 技术分析和总体设计
4.2.1 与时钟相关的软硬件技术分析
4.2.2 初步设计方案
4.3 详细设计与代码实现
4.3.1 窗体控件的布局
4.3.2 选择合适的Qt控件
4.3.3 创建控件对象并布局
4.3.4 读取和修改系统时间
4.3.5 保存和读取时间格式
4.3.6 响应用户操作和刷新时间变化
4.3.7 绘制图形钟表盘
4.3.8 运行和测试我们的演示程序
4.4 小结
第5章 拼图小游戏
5.1 开发背景与需求
5.2 技术分析和总体设计
5.2.1 设计模式和MVC模式
5.2.2 Qt的Model/View模式
5.2.3 Puzzle Game的总体设计
5.3 详细设计与代码实现
5.3.1 CardsModel类的详细设计
5.3.2 CardsView类的详细设计
5.3.3 CardsDelegate类的详细设计
5.3.4.PuzzleWindow类的详细设计
5.3.5 CardsModel类的实现
5.3.6 View和Delegate的实现
5.3.7 主窗口和菜单的实现
5.4 运行和测试程序
5.5 小结
第6章 嵌入式桌面管理器
6.1 背景与需求
6.2 技术分析与设计
6.2.1 Qtopia Core中的Client/Server模型
6.2.2 利用flork启动其他应用
6.2.3 关于灵活性的设计
6.3 AppMgr的详细实现
6.3.1 读取INI文件中的数据
6.3.2 实现AppMgrModel类
6.3.3 实现AppMgrView类
6.3.4 实现Controller类
6.3.5 实现主窗体和“Back”功能
6.4 运行和测试AppMgr
6.5 小结
第7章 嵌入式数据库
7.1 嵌入式数据库概述
7.2 Berkeley DB及简单实例
7.2.1 Berkeley DB简介
7.2.2 Berkeley DB的高效性
7.2.3 Betkeley DB的基本概念
7.2.4 Berkeley DB的系统框架
7.2.5 安装和移植Berkeley DB
7.2.6 简单应用示例.
7.2.7 SQL语言和Berkeley DB的对应
7.3 SQLite及简单实例
7.3.1 SQLite简介
7.3.2 SQLite的体系结构
7.3.3 安装和移植SQLite
7.3.4 简单应用示例
7.4 小结
第8章 嵌入式Web服务器
8.1 软件需求与背景
8.2 工作原理与软件设计
8.2.1 HTTP协议
8.2.2 通用网关接口CGI
8.2.3 MiniWebServer的设计方案
8.3 MiniWebServer的详细实现
8.3.1 监听和建立连接
8.3.2 解析和处理HTTP请求
8.3.3 处理静态页面请求
8.3.4 处理GET方法的CGI请求
8.3.5 处理POST方法的CGI请求
8.4 运行和测试MiniWebServer
8.4.1 编译和环境准备
8.4.2 测试静态网页
8.4.3 测试CGI程序
8.5 小结
第9章 嵌入式Linux调试技术
9.1 嵌入式调试概述
9.2 printf和log
9.2.1 Drintf和fprintf
9.2.2 将调试信息写到log文件
9.2.3 控制log的级别
9.3 ELF文件调试基础
9.3.1 ELF基础知识
9.3.2 ELF可重定位文件和可执行文件
9.3.3 静态库和动态共享库
9.3.4 常用ELF调试工具
9.4 GDB调试器
9.4.1 准备好用于GDB调试的程序
9.4.2 运行GDB
9.4.3 设置和管理断点
9.4.4 检查运行状态及源文件
9.4.5 多进程和多线程调试
9.4.6 远程调试
9.4.7 图形化调试器
9.5 Core Dump及调试
9.5.1 Core Dump相关设置
9.5.2 Core Dump的原因
9.5.3 用GDB分析Core Dump
9.5.4 信息不足时的Core Dump分析
9.6 系统调试工具
9.6.1 /proc虚拟文件系统
9.6.2 进程和文件
9.6.3 跟踪(Trace)工具
9.7 小结
第10章 嵌入式Linux性能优化
10.1 嵌入式优化概述
10.2 分析性能瓶颈(Profiling)
10.2.1 基本系统工具
10.2.2 GPROF和GCOV
10.2.3 OProfile
10.3 提高运行速度
10.3.1 编译器优化
10.3.2 C/C++代码优化
10.3.3 利用XIP技术
10.3.4 延迟数据的加载
10.4 针对动态共享库的优化
10.4.1 Prelink(预连接)技术
10.4.2 dlopen方法
10.4.3 环境变量LD-DEBUG
10.4.4 优化搜索共享库的路径
10.4.5 使用Export Map
10.4.6 减少不必要的库依赖
10.5 减少存储消耗
10.5.1 Linux虚拟内存映像
10.5.2 内存信息的查看
10.5.3 用strip减小文件尺寸
10.5.4 内存相关的代码优化
10.5.5 减少进程、线程和函数库
10.5.6 使用更小的库和工具
10.5.7 选择合适的嵌入式文件系统
10.6 检查内存泄漏
10.6.1 典型的内存泄漏问题
10.6.2 MALLOC CHECK
10.6.3 MEMWATCH
10.6.4 Valgrind
10.7 小结
参考文献
ARM嵌入式Linux应用实例开发
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!