嵌入式应用系统开发实践

嵌入式应用系统开发实践 教材名称: 嵌入式应用系统开发实践
ISBN号: 978-7-89436-210-0 作者: 但唐仁
字数: 275千字 规格: 16开
印制时间: 2013-07-18 出版日期: 2013-07-04
定价: 28.00 元 样章下载: 978-7-89436-210-0嵌入式应用系统开发实践样章(加水印).pdf
购买链接:

        《嵌入式应用系统开发实践》教材是以ARM为开发平台,基于嵌入式Linux操作系统,以案例项目为载体,衔接Linux操作系统原理、ARM结构与应用、Linux驱动开发等课程,将嵌入式操作系统的基本理论、嵌入式应用系统开发基本原理融入其中,使学生通过学习可以掌握嵌入式应用系统开发的技能。本教材的内容共分为八章,以当今嵌入式系统设计的热点产品——智能家庭网关作为项目实践内容进行编写。从第1章智能家居系统开发前的分析及准备,到第8章基于QT的家庭网关远程控制的项目设计,包含了嵌入式串口通信编程、字符驱动应用程序编程、基于QT界面应用的程序设计及基于BOA服务器程序远程控制等内容,力图在培养学生嵌入式系统职业开发技能的同时,提高学生团队协作的职业素质。
        本教材虽然是嵌入式技术专业教材,但也能为电子信息类相关专业,如应用电子技术专业所共用;特别是教材所提供的部分案例和源代码来源于企业,也可直接用于实际开发中,为企业开发人员所共享。
 
第1章智能家居系统开发前的分析及准备1
 
1.1智能家居的业务分析1
 
1.1.1智能家居产业的历史与发展前景1
 
1.1.2智能家居技术方案2
 
1.2智能家居开发过程及软件环境的搭建3
 
1.2.1嵌入式Linux开发中常见的几个概念3
 
1.2.2嵌入式Linux开发一般过程4
 
1.2.3利用Eclipse的开发应用程序5
 
1.3嵌入式系统应用软件开发常见的难点12
 
1.3.1makefile 文件12
 
1.3.2预处理14
第2章智能家居中GPIO端口使用的设计17
 
2.1项目导引17
 
2.2项目分析17
 
2.3技术准备18
 
2.3.1GPIO端口认知18
 
2.3.2字符设备驱动程序18
 
2.3.3基本底层文件操作20
 
2.4项目实施22
 
2.4.1GPIO端口的字符设备驱动程序的设计22
 
2.4.2GPIO端口的应用程序设计29
 
2.5技术拓展30
 
2.6项目小结37
 
2.7强化练习37
第3章近距离通信编程的项目设计38
 
3.1项目导引38
 
3.2项目分析38
 
3.3技术准备38
 
3.3.1串口通信原理38
 
3.3.2嵌入式系统串口配置与使用40
 
3.3.3串口通信常用的Linux C函数43
 
3.3.4I/O多路复用46
3.4项目实施47
 
3.4.1串口单发与单收通信程序设计47
 
3.4.2基于终端输入和显示的串口收发程序设计50
 
3.5技术拓展53
 
3.6项目小结54
 
3.7强化练习54
第4章家庭网关QT界面开发的准备
56
 
4.1QT4 编译安装 56
 
4.2QT桌面应用开发介绍56
 
4.2.1QT基础知识介绍56
 
4.2.2嵌入式QT的HelloWorld实例61
第5章基于QT的家庭网关图片浏览器的设计67
 
5.1项目导引 67
 
5.2项目分析 67
 
5.3技术准备 67
 
5.3.1常用控件使用 67
 
5.3.2QT 界面设计(一) 73
 
5.4项目实施 75
 
5.5技术拓展 83
 
5.6项目小结 86
 
5.7强化练习 87
第6章基于QT的家居控制界面及功能设计88
 
6.1项目导引88
 
6.2项目分析88
 
6.3技术准备88
 
6.3.1QT串口控件的使用88
 
6.3.2嵌入式 Linux 多线程编程90
 
6.3.3QT 界面设计(二) 91
 
6.3.4在主界面加入本地时间94
6.4项目实施 95
 
 
6.5技术拓展 109
 
6.6项目小结 116
 
6.7强化练习 116
第7章基于QT的聊天室的项目设计 117
 
7.1项目导引 117
 
7.2项目分析117
 
7.3技术准备117
 
7.3.1TCP/IP 分层结构 117
 
7.3.2网络编程中的 TCP/IP 核心协议 118
 
7.3.3套接字编程 119
 
7.4项目实施 124
 
7.5技术拓展 132
 
7.6项目小结 147
 
7.7强化练习 147
第8章基于QT的家庭网关远程控制的项目设计149
 
8.1项目导引 149
 
8.2项目分析149
 
8.3技术准备 150
 
8.3.1C/S 架构与 B/S 架构 150
 
8.3.2BOA 服务器的安装移植151
 
8.3.3CGI 原理 154
 
8.4项目实施 155
 
8.5技术拓展170
 
8.6项目小结 170
 
8.7强化练习170
参考文献172
 
第1章智能家居系统开发前的分析及准备1
 
1.1智能家居的业务分析1
 
1.1.1智能家居产业的历史与发展前景1
 
1.1.2智能家居技术方案2
 
1.2智能家居开发过程及软件环境的搭建3
 
1.2.1嵌入式Linux开发中常见的几个概念3
 
1.2.2嵌入式Linux开发一般过程4
 
1.2.3利用Eclipse的开发应用程序5
 
1.3嵌入式系统应用软件开发常见的难点12
 
1.3.1makefile文件12
 
1.3.2预处理14第2章智能家居中GPIO端口使用的设计17
 
2.1项目导引17
 
2.2项目分析17
 
2.3技术准备18
 
2.3.1GPIO端口认知18
 
2.3.2字符设备驱动程序18
 
2.3.3基本底层文件操作20
 
2.4项目实施22
 
2.4.1GPIO端口的字符设备驱动程序的设计22
 
2.4.2GPIO端口的应用程序设计29
 
2.5技术拓展30
 
2.6项目小结37
 
2.7强化练习37第3章近距离通信编程的项目设计38
 
3.1项目导引38
 
3.2项目分析38
 
3.3技术准备38
 
3.3.1串口通信原理38
 
3.3.2嵌入式系统串口配置与使用40
 
3.3.3串口通信常用的Linux C函数43
 
3.3.4I/O多路复用46
3.4项目实施47
 
3.4.1串口单发与单收通信程序设计47
 
3.4.2基于终端输入和显示的串口收发程序设计50
 
3.5技术拓展53
 
3.6项目小结54
 
3.7强化练习54家庭网关QT界面开发的准备
56
 
4.1QT4 编译安装56
 
4.2QT桌面应用开发介绍56
 
4.2.1QT基础知识介绍56
 
4.2.2嵌入式QT之HelloWorld实例61第5章基于QT的家庭网关图片浏览器的设计67
 
5.1项目导引67
 
5.2项目分析67
 
5.3技术准备67
 
5.3.1常用控件使用67
 
5.3.2QT 界面设计(一)73
 
5.4项目实施77
 
5.5技术拓展85
 
5.6项目小结88
 
5.7强化练习89第6章基于QT的家居控制界面及功能设计90
 
6.1项目导引90
 
6.2项目分析90
 
6.3技术准备90
 
6.3.1QT串口控件的使用90
 
6.3.2嵌入式 Linux 多线程编程92
 
6.3.3QT 界面设计(二)93
 
6.3.4在主界面加入本地时间96
6.4项目实施97
 
6.5技术拓展111
 
6.6项目小结118
 
6.7强化练习118第7章基于QT的聊天室的项目设计119
 
7.1项目导引119
 
7.2项目分析119
 
7.3技术准备119
 
7.3.1TCP/IP 分层结构119
 
7.3.2网络编程中的 TCP/IP 核心协议120
 
7.3.3套接字编程121
 
7.4项目实施126
 
7.5技术拓展134
 
7.6项目小结149
 
7.7强化练习149第8章QT下的家庭网关远程控制的项目设计151
 
8.1项目导引151
 
8.2项目分析151
 
8.3技术准备152
 
8.3.1C/S 结构与 B/S 结构152
 
8.3.2BOA 服务器的安装移植153
 
8.3.3CGI 原理156
 
8.4项目实施157
 
8.5技术拓展172
 
8.6项目小结172
 
8.7强化练习172
 
 
 
第1章嵌入式Linux系统1
 
1.1项目导引——ubuntu操作系统安装1
 
 
1.2项目分析1
 
1.3技术准备1
 
1.3.1什么是Linux1
 
 
1.3.2Linux发展历程2
 
1.3.3Linux系统特点3
 
1.3.4主流Linux发行版本4
 
1.3.5其他嵌入式操作系统6
 
1.3.6嵌入式系统应用前景6
 
1.4项目实施7
 
1.4.1安装ubuntu 11.04 系统7
 
1.4.2ubuntu基本设置16
 
1.5技术拓展16
 
1.6本章小结17
 
1.7强化练习17
 
第2章嵌入式系统设计18
 
2.1项目导引——嵌入式系统开发培训18
 
2.2项目分析18
 
2.3技术准备19
 
2.3.1嵌入式系统开发19
 
2.3.2嵌入式软件开发20
 
2.3.3嵌入式系统开发模式22
 
2.3.4项目管理方法介绍22
 
2.4本章小结23
 
2.5强化练习24
 
第3章Linux 操作系统基本操作25
 
3.1项目导引——Linux NFS服务器搭建25
 
3.2项目分析25
 
3.3技术准备25
 
3.3.1ubuntu基本操作命令25
 
3.3.2网络硬盘NFS36
 
3.4项目实施41
 
3.4.1安装软件包41
 
3.4.2图形化配置开发目录NFS共享41
 
3.4.36410开发板挂载NFS共享目录前准备41
 
3.4.46410开发板挂载NFS共享目录43
 
3.5技术拓展43
 
3.6本章小结45
 
3.7强化练习46
 
第4章基于Linux的C语言编程47
 
4.1项目导引——校园车辆信息管理系统47
 
4.2项目分析47
 
4.3技术准备47
 
4.3.1Linux下C开发工具47
 
4.3.2gcc和gdb52
 
4.3.3makefile项目工程55
 
4.3.4项目版本管理58
 
4.4项目实施58
 
4.4.1项目需求分析58
 
4.4.2项目系统设计58
 
4.4.3项目详细设计59
 
4.5本章小结62
 
4.6强化练习62
 
第5章交叉编译工具63
 
5.1项目导引——MP3播放器移植63
 
5.2项目分析63
 
5.3技术准备63
 
5.3.1交叉编译工具链64
 
5.3.2交叉编译链的安装65
 
5.4项目实施65
 
5.4.1安装交叉编译器65
 
5.4.2项目移植66
 
5.5本章小结67
 
5.6强化练习67
 
第6章6410开发板系统构建68
 
6.1项目导引——车载导航仪产品封装68
 
6.2项目分析68
 
6.3技术准备68
 
6.3.1Bootloader68
 
6.3.2定制Linux内核73
 
6.3.3定制Linux根文件系统80
 
6.4项目实施82
 
6.4.1u\|boot烧写82
 
6.4.2烧写Linux内核88
 
6.4.3烧写cramfs根文件系统 88
 
6.4.4烧写ubifs根文件系统89
 
6.5技术拓展91
 
6.5.1Windows下一键烧写Linux教程91
 
 
6.6本章小结92
 
6.7强化练习92
 
第7章嵌入式Linux设备驱动93
 
7.1项目导引——智能手机原型机照相机93
 
7.2项目分析93
 
7.3技术准备93
 
7.3.1设备驱动程序的概念94
 
7.3.2处理器与设备间数据交换方式94
 
7.3.3直接访问内存(DMA)方式95
 
7.3.4驱动程序结构95
 
7.3.5设备注册和初始化98
 
7.3.6中断管理99
 
7.3.7设备驱动程序的开发过程100
 
7.3.8设备驱动开发的基本函数100
 
7.3.9模块加载与卸载102
 
7.4项目实施103
 
7.4.1项目概要设计103
 
7.4.2项目详细设计103
 
7.4.3项目编译运行113
 
7.5技术拓展115
 
7.6本章小结115
 
7.7强化练习115
 
第8章嵌入式Linux图形设计——Qt116
 
8.1项目导引——音乐播放器116
 
8.2项目分析116
 
8.3技术准备116
 
8.3.1嵌入式GUI117
 
8.3.2Qt118
 
8.3.3Qt技术120
 
8.3.4Qt应用事例125
 
8.4项目实施126
 
8.4.1开发环境搭建126
 
8.4.2项目概要设计129
 
8.4.3项目详细设计134
 
8.4.4项目编译运行140
 
8.4.5项目测试141
 
8.4.6项目移植141
 
8.5本章小结142
 
8.6强化练习142
 
第9章嵌入式Linux图形设计——Android143
 
 
9.1项目导引——手机信息安全卫士系统143
 
 
9.2项目分析143
 
 
9.3技术准备143
 
9.3.1构建Android应用程序143
 
9.3.2程序界面设计159
 
9.3.3数据持久化存储182
 
9.3.4网络通讯191
 
9.4项目实施196
 
9.4.1需求分析196
 
9.4.2软件概要设计与详细设计196
 
9.4.3编码196
 
9.5技术拓展199
 
9.5.1Google Map手机定位199
 
9.6本章小结205
 
9.7强化练习205
 
第10章综合实训——自动化过磅称重系统(Qt)206
 
10.1项目分析206
 
10.2项目总体设计206
 
10.2.1系统总体设计结构206
 
10.2.2系统硬件设施206
 
10.2.3系统设计要求及特点207
 
10.3项目实施208
 
10.3.1过磅称重客户端工作流程208
 
10.3.2系统工作流程要求208
 
10.3.3系统总体设计209
 
10.3.4系统详细设计210
 
10.3.5系统集成测试223
 
10.4项目成果223
 
附录Qt主要类226
 
参考文献232
 
 
1.3.2Linux发展历程2
 
1.3.3Linux系统特点3
 
1.3.4主流Linux发型版本4
 
 
1.3.5其他嵌入式操作系统6
 
1.3.6嵌入式系统应用前景6
 
1.4项目实施7
 
1.4.1安装ubuntu 11.04 系统7
 
1.4.2ubuntu基本设置16
 
1.5技术拓展16
 
1.6本章小结17
 
1.7强化练习17
 
第2章嵌入式系统设计18
 
 
2.1项目导引——嵌入式系统开发培训18
 
2.2项目分析18
 
2.3技术准备19
 
2.3.1嵌入式系统开发19
 
2.3.2嵌入式软件开发20
 
2.3.4项目管理方法介绍22
 
2.4本章小结23
 
2.5强化练习24
 
第3章Linux OS基本操作25
 
 
3.1项目导引——Linux NFS服务器搭建25
 
3.2项目分析25
 
3.3技术准备25
 
3.3.1ubuntu基本操作命令25
 
3.3.2网络硬盘NFS36
 
3.4项目实施42
 
3.4.1安装软件包42
 
3.4.2图形化配置开发目录NFS共享42
 
3.4.36410开发板挂载NFS共享目录前准备42
 
3.4.46410开发板挂载NFS共享目录44
 
3.5技术拓展44
 
3.6本章小结46
 
3.7强化练习47
 
第4章基于Linux的C语言编程48
 
 
4.1项目导引——校园车辆信息管理系统48
 
4.2项目分析48
 
4.3技术准备48
 
4.3.1Linux下C开发工具48
 
 
4.3.2gcc和gdb53
 
4.3.3makefile项目工程56
 
4.3.4项目版本管理59
 
4.4项目实施59
 
4.4.1项目需求分析59
 
4.4.2项目系统设计59
 
4.4.3项目详细设计60
 
4.5本章小结63
 
4.6强化练习63
 
第5章交叉编译工具64
 
 
5.1项目导引——MP3播放器移植64
 
5.2项目分析64
 
5.3技术准备64
 
5.3.1交叉编译工具链65
 
5.3.2交叉编译链的安装66
 
5.4项目实施67
 
5.4.1安装交叉编译器67
 
5.4.2项目移植67
 
5.5本章小结68
 
5.6强化练习68
 
第6章6410开发板系统构建69
 
 
6.1项目导引——车载导航仪产品封装69
 
6.2项目分析69
 
6.3技术准备69
 
6.3.1Bootloader69
 
6.3.2定制Linux内核74
 
6.3.3定制Linux根文件系统81
 
6.4项目实施83
 
6.4.1u\|boot烧写83
 
6.4.2烧写Linux内核89
 
6.4.3烧写cramfs根文件系统 89
 
6.4.4烧写ubifs根文件系统90
 
6.5技术拓展——Windows下一键烧写Linux教程92
 
6.6本章小结93
 
6.7强化练习93
 
第7章嵌入式Linux设备驱动94
 
 
7.1项目导引——智能手机原型机照相机94
 
7.2项目分析94
 
7.3技术准备94
 
7.3.1设备驱动程序的概念95
 
7.3.2处理器与设备间数据交换方式95
 
7.4直接访问内存(DMA)方式96
 
7.4.1驱动程序结构96
 
7.4.2设备注册和初始化99
 
7.4.3中断管理100
 
7.4.4设备驱动程序的开发过程101
 
7.4.5设备驱动开发的基本函数101
 
7.4.6模块加载与卸载103
 
7.5项目实施103
 
7.5.1项目概要设计103
 
7.5.2项目详细设计103
 
7.5.3项目编译运行114
 
7.6技术拓展115
 
7.7本章小结116
 
7.8强化练习116
 
第8章嵌入式Linux图形设计——Qt117
 
 
8.1项目导引——音乐播放器117
 
8.2项目分析117
 
8.3技术准备117
 
8.3.1嵌入式GUI118
 
8.3.2Qt119
 
8.3.3Qt技术121
 
8.3.4Qt应用事例126
 
8.4项目实施127
 
8.4.1开发环境搭建127
 
8.4.2项目概要设计131
 
8.4.3项目详细设计135
 
8.4.4项目编译运行141
 
8.4.5项目测试141
 
8.4.6项目移植142
 
8.5本章小结142
 
8.6强化练习143
 
第9章嵌入式Linux图形设计——Android144
 
 
9.1项目导引——手机信息安全卫士系统144
 
 
9.2项目分析144
 
 
9.3技术准备144
 
9.3.1构建Android应用程序144
 
9.3.2程序界面设计160
 
9.3.3数据持久化存储184
 
9.3.4网络通讯192
 
9.4项目实施198
 
9.5技术拓展——Google Map手机定位201
 
9.6本章小结206
 
9.7强化练习206
 
第10章综合实训——自动化过磅称重系统(Qt)208
 
 
10.1项目分析208
 
10.2项目总体设计208
 
10.2.1系统总体设计结构208
 
10.2.2系统硬件设施208
 
10.2.3系统设计要求及特点209
 
10.3项目实施210
 
10.3.1过磅称重客户端工作流程210
 
10.3.2系统工作流程要求210
 
10.3.3系统总体设计211
 
10.3.4系统详细设计212
 
10.3.5系统集成测试225
 
10.4项目成果225
 
附录1Qt主要类228
 
参考文献234
 
 
 
(1)按照智能家庭网关开发的过程,设计多个项目引导式学习情景,每个学习情境又结合知识体系和实践技能细化为若干子学习情境,强化项目驱动,由浅入深,实用性强。
(2)每个学习情境给出相应的描述、学习情境小结和思考题。在学习情境描述中,明确给出项目名称、项目教学性质、教学环境、教学课件等。