本书系统论述了在Linux环境下嵌入式系统设计的思想、设计方法及开发流程。通过大量的实例与设计项目,帮助读者尽快掌握嵌入式设计的关键知识,提高嵌入式设计技巧。本书共16章,论述嵌入式系统的基本概念,Linux环境下如何搭建嵌入式开发平台,Linux环境下嵌入式程序的调试方法,嵌入式基础程序的设计,嵌入式I/O与文件系统的开发,串口通信程序设计,嵌入式网络应用程序设计,图形图像程序与QT应用程序设计,设备驱动程序的设计与开发,数码字符驱动、SD卡块驱动、LCD驱动等驱动程序设计,AD/DA程序设计及嵌入式项目设计与分析。
本书是一本技能型、工程型的教材,适合作为Linux环境下嵌入式工程技术人员、嵌入式工程师、高校嵌入式专业、计算机专业、软件专业、通信专业、电子专业的本科生、专科生的教材。本书是国家开放源代码高校推进联盟(LUPA)“Linux嵌入式工程师”与“Linux嵌入式技术员”认证考试指定用书。
样章试读
目录
- 第0章 开源文化概述
0.1 开源文化概述
0.1.1 开源文化
0.1.2 关于黑客
0.2 开源软件与自由软件
0.3 开源教育模式
0.3.1 开放教育资源
0.3.2 开放教育发展
0.3.3 开源教育模式
第1章 嵌入式系统基础
1.1 嵌入式系统概述
1.2 嵌入式处理器
1.3 嵌入式操作系统
1.4 嵌入式应用
思考与实验
第2章 嵌入式系统的硬、软件开发环境
2.1 嵌入式Linux系统开发硬、软件环境概述
2.2 嵌入式Linux开发环境的硬件连接
2.2.1 嵌入式硬件
2.2.2 PC宿主机与嵌入式硬件设备的连接
2.3 嵌入式Linux开发环境的软件与设置
2.3.1 嵌入式开发软件环境配置流程
2.3.2 关闭防火墙
2.3.3 minicom端口配置及使用
2.3.4 TFTP服务配置及使用
2.3.5 NFS服务的配置
2.3.6 交叉编译器安装
思考与实验
第3章 Linux内核移植与ramdisk文件系统
3.1 Linux 核移植
3.1.1 内核移植的基本概念
3.1.2 内核移植的准备
3.1.3 内核移植的基本过程
3.1.4 内核移植的具体操作
3.2 Linux根文件系统的制作
3.2.1 根文件系统概述
3.2.2 建立根文件系统
思考与实验
第4章 嵌入式C程序调试技术
4.1 交叉编译技术
4.1.1 交叉编译器
4.1.2 GDBServer调试器
4.2 make工程管理器
4.2.1 Makefile工程文件的编写
4.2.2 Makefile变量的使用
4.2.3 Makefile文件对其他Makefile文件的引用
4.2.4 Makefile中的函数
4.2.5 运行make
思考与实验
第5章 嵌入式系统基础程序设计
5.1 嵌入式I/O程序设计
5.1.1 不带缓存的文件I/O操作
5.1.2 带缓存的流文件操作
5.2 嵌入式进程与进程间通信程序设计
5.2.1 进程创建
5.2.2 进程通信——管道
5.2.3 进程通信——信号
5.2.4 进程通信——共享内存
5.2.5 进程通信——消息队列
思考与实验
第6章 串口通信程序设计
6.1 串行通信概述
6.2 串口的分类
6.3 常用串口的引脚功能
6.4 串口属性参数的设置
6.5 串口与ARM的连接方法
6.6 串行通信程序的设计
6.6.1 串行通信程序设计流程
6.6.2 串口通信程序设计主要函数
6.6.3 串口通信程序设计实例
6.7 基于串口的GPRS应用
6.7.1 应用简介
6.7.2 原理模块设计
6.7.3 在PC机平台上基于串口的GPRS 应用
6.7.4 基于串口的程序设计模块分析
6.7.5 GPRS 一般故障排除
思考与实验
第7章 嵌入式网络应用程序设计
7.1 socket简介
7.1.1 socket的含义
7.1.2 socket套接口的分类
7.2 socket套接口的数据结构
7.2.1 sockaddr数据结构类型
7.2.2 字节顺序转换函数
7.2.3 socket编程中的常用函数
7.2.4 gethostbyname( )函数
7.3 TCP编程
7.3.1 服务器端的实现
7.3.2 客户端的实现
思考与实验
第8章 图形图像程序设计
8.1 图形图像程序概述
8.2 graphic接口函数说明
8.3 图形处理设计实例
8.4 图片显示设计实例
思考与实验
第9章 嵌入式GUI-Qt应用程序设计
9.1 Qt简介
9.1.1 Qt的安装
9.1.2 Qt的编译器
9.1.3 Qt的特征
9.2 Qt环境的配置
9.3 Qt集成开发工具的使用
9.4 Qt实例一
9.4.1 应用程序代码编写
9.4.2 编译生成工程文件
9.5 Qt实例二
9.5.1 服务器端代码编写
9.5.2 客户端程序代码编写
思考与实验
第10章 设备驱动程序设计基础
10.1 设备驱动程序的概念
10.1.1 设备文件的查看
10.1.2 主设备号与次设备号
10.1.3 与设备驱动相关的数据结构
10.2 驱动程序的组成
10.3 驱动程序的基本流程
10.4 Linux字符设备驱动程序设计
10.4.1 字符设备驱动程序数据结构
10.4.2 字符设备驱动程序实例——虚拟字符设备
10.4.3 字符设备驱动程序实例——GPIO的驱动程序设计
思考与实验
第11章 数码驱动程序设计
11.1 数码驱动原理
11.2 数码驱动硬件连接电路
11.2.1 LED驱动电路相关器件的功能特性
11.2.2 驱动电路相关器件的电路连接
11.3 数码驱动程序设计实例
11.3.1 系统分析
11.3.2 系统硬件设计
11.3.3 系统软件设计
11.4 系统设计操作步骤
11.4.1 键盘驱动程序设计步骤
11.4.2 LED驱动程序设计步骤
11.5 LED数码显示测试程序设计
思考与实验
第12章 SD驱动程序设计
12.1 SD卡
12.1.1 SD卡概述
12.1.2 SD卡的辨别
12.1.3 SD卡的接口定义及管脚功能
12.1.4 S3C2410中的SDI接口
12.1.5 SD的寄存器
12.1.6 SD卡驱动
12.1.7 S3C2410与SD的连接
12.2 块设备驱动程序概述
12.2.1 简单块设备驱动框架
12.2.2 设备驱动程序设计流程
12.2.3 块设备及相关数据结构
12.3 块设备驱动程序的设计流程
12.3.1 驱动程序的注册与注销
12.3.2 设备的打开与释放
12.3.3 设备的读/写操作
12.3.4 设备的控制操作
12.3.5 设备的中断和轮询处理
12.4 SD卡驱动程序的设计
12.5 RJARM9_EDU环境下SD卡驱动程序介绍
12.5.1 mmcsd_slot_s3c2410.c文件中的函数
12.5.2 mmcsd_disk.c文件中的函数
12.5.3 mmcsd_cs.c文件中的函数
12.5.4 mmcsd_bus.c文件中的函数
12.5.5 RJARM9_EDU上SD卡调试步骤
思考与实验
第13章 A/D与D/A驱动程序设计
13.1 A/D与D/A转换的应用概况
13.2 A/D与D/A转换流程
13.3 A/D转换原理
13.3.1 采样定理
13.3.2 量化和编码
13.4 D/A转换原理
13.4.1 D/A转换器的基本工作原理
13.4.2 D/A转换特性
13.5 A/D与D/A转换的硬件电路设计
13.5.1 常用A/D转换器件简介
13.5.2 A/D转换器件ADC0809
13.6 A/D转换程序设计
13.6.1 A/D驱动程序分析
13.6.2 驱动程序编写的具体步骤
13.6.3 A/D驱动程序测试
13.7 常用D/A转换器件简介
13.8 DAC0832及其接口
13.9 D/A转换程序设计
13.9.1 D/A驱动程序分析
13.9.2 驱动程序编写的具体步骤
13.9.3 D/A驱动程序测试
思考与实验
第14章 LCD驱动程序设计
14.1 LCD应用概况
14.2 LCD的工作原理
14.3 LCD驱动方式
14.3.1 静态驱动方式
14.3.2 动态驱动方式
14.4 LCD常用器件
14.5 LCD的控制/驱动与接口概述
14.5.1 S3C2410 LCD控制器
14.5.2 S3C2410与LCD连接电路
14.6 基于FrameBuffer的LCD驱动程序设计
14.6.1 FrameBuffer设备驱动结构体
14.6.2 FrameBuffer设备驱动应用程序
14.7 LCD测试
14.8 LCD程序设计实例
思考与实验
第15章 嵌入式系统设计实例分析
15.1 指纹识别门禁系统
15.1.1 门禁系统概述
15.1.2 系统设计分析
15.1.3 系统设计
15.1.4 系统实施
15.1.5 系统测试
15.2 实时视频采集系统
15.2.1 实时视频采集系统概述
15.2.2 系统设计分析
15.2.3 系统设计
15.2.4 系统实施
15.2.5 系统测试
15.3 多媒体网络家庭娱乐系统
15.3.1 多媒体网络家庭娱乐系统概述
15.3.2 系统设计分析
15.3.3 系统设计
15.3.4 系统实施
15.3.5 系统测试
15.4 智能车辆助理
15.4.1 智能车辆助理系统概述
15.4.2 系统设计分析
15.4.3 系统设计
15.4.4 系统实施
15.4.5 系统测试
15.5 野生动物保护区车载终端系统
15.5.1 野生动物保护区车载终端系统概述
15.5.2 系统设计分析
15.5.3 系统设计
15.5.4 系统实施
15.5.5 系统测试
15.6 网络跑步机
15.6.1 网络跑步机概述
15.6.2 系统设计分析
15.6.3 系统设计
15.6.4 系统实施
15.6.5 系统测试
主要参考文献