本教材的内容组织遵循CDIO工程教育理念,从培养读者能力入手,以实用、切合实际为原则,为读者提供简明、直观、易懂的内容。教材中采用以项目驱动为向导,深入浅出地揭示嵌入式系统技术在一些具体项目中的应用。通过具体项目讲解嵌入式系统开发基本流程和方法,以及嵌入式系统开发工具的使用。这样,读者可以清楚地看到运行的现象或结果,从而留下直观和深刻的印象,并且能迅速理解和掌握嵌入式系统的基本工作原理、一般开发流程、方法和开发工具的使用。本教材涉及的硬件平台为博创科技公司开发的基于Intel XScale架构的UPTECHPXA270嵌入式系统教学科研平台。
第1章嵌入式系统概述1
1.1嵌入式系统定义2
1.1.1嵌入式系统一般定义2
1.1.2嵌入式系统发展历程2
1.1.3嵌入式系统特点3
1.1.4嵌入式系统与通用计算机系统的区别4
1.2嵌入式系统分类5
1.3嵌入式系统应用领域及发展趋势6
1.3.1嵌入式技术现状6
1.3.2嵌入式系统应用领域7
1.3.3嵌入式系统发展趋势9
1.4嵌入式系统组成10
1.5嵌入式系统开发流程及模式11
1.5.1嵌入式系统开发流程11
1.5.2嵌入式系统开发模式14
1.6嵌入式工程师需掌握的知识和技能15
1.7嵌入式行业介绍16
1.7.1嵌入式行业发展前景16
1.7.2大公司和小公司工作17
思考题18
第2章嵌入式系统硬件基础19
2.1嵌入式系统硬件基本组成19
2.2嵌入式处理器20
2.2.1嵌入式处理器简介21
2.2.2嵌入式系统硬件平台选择26
2.3嵌入式存储系统27
2.3.1嵌入式存储系统简介27
2.3.2嵌入式系统存储器类型选择30
2.4嵌入式系统I/O设备与接口32
思考题37
第3章嵌入式系统软件基础38
3.1项目准备:嵌入式操作系统38
3.1.1嵌入式系统软件基本组成38
3.1.2嵌入式操作系统简介40
3.1.3常用嵌入式操作系统41
3.2项目:Linux操作系统安装49
3.2.1VMware安装49
3.2.2Red Hat Enterprise Linux 5安装53
思考题69
第4章嵌入式Linux开发基础70
4.1项目准备:常用Linux命令及开发工具介绍70
4.1.1常用Linux命令70
4.1.2Linux下C程序开发过程概述75
4.1.3Vi编辑器76
4.1.4GCC编译器78
4.1.5GDB调试器81
4.1.6GNU make工具85
4.2项目:Linux常用命令和Vi编辑器的使用99
4.3项目:GCC编译器和GDB调试器的使用100
4.4项目:GNU make工具的使用102
思考题103
第5章嵌入式Linux系统移植104
5.1项目准备:嵌入式Linux交叉开发环境介绍105
5.2项目:嵌入式Linux交叉开发环境搭建106
5.2.1共享文件设置106
5.2.2交叉编译器的安装112
5.2.3配置tftp服务器、NFS服务器112
5.2.4Putty安装及配置114
5.3项目准备:BootLoader介绍118
5.3.1BootLoader基本概念118
5.3.2BootLoader主要任务119
5.3.3BootLoader操作模式123
5.3.4常见BootLoader124
5.4项目:Blob移植127
5.5项目准备:嵌入式Linux内核介绍148
5.5.1嵌入式Linux内核简介148
5.5.2嵌入式Linux内核裁剪与编译151
5.5.3设备驱动程序157
5.6项目:嵌入式Linux内核移植191
5.7项目准备:文件系统194
5.7.1文件系统概念194
5.7.2嵌入式根文件系统194
5.7.3文件系统类型195
5.8项目:根文件系统制作197
思考题204
第6章嵌入式图形用户接口GUI205
6.1项目准备:嵌入式GUI205
6.1.1嵌入式GUI简介205
6.1.2目前流行的嵌入式GUI系统207
6.2项目:Qt应用程序移植210
6.2.1Qt开发环境简介210
6.2.2Qt开发基本流程212
6.2.3Qt移植过程212
思考题216
附录ALinux开发常用命令集217
附录B学习知识要点及能力要点219
参考文献221
教材共分6章。
第1章是嵌入式系统概述,介绍了嵌入式系统的基本概念、发展历程、嵌入式系统的特点、分类、应用、开发流程、嵌入式系统的基本组成和嵌入式工程师必须掌握的技能。
第2章是嵌入式系统硬件基础,介绍了嵌入式系统硬件基本组成、嵌入式处理器、存储器和典型I/O设备及接口。
第3章是嵌入式系统软件基础,主要介绍了嵌入式系统软件基本组成、嵌入式操作系统,并以Linux为例,详细介绍了Linux操作系统的安装过程。
第4章是嵌入式Linux开发基础,主要介绍了常用Linux命令、Vi编辑器、GCC编译器、make工具、Makefile文件和GDB调试器。设计了3个项目,分别是:Linux常用命令和Vi编辑器的使用、GCC编译器和GDB调试器的使用、GNU make工具的使用。
第5章是嵌入式Linux系统移植,主要介绍了BootLoader、Linux内核、文件系统及设备驱动程序的基本知识。并根据嵌入式系统开发的一般步骤,在前4章内容的基础上,完成了一个基于Linux的应用系统综合项目,包括嵌入式Linux交叉开发环境的搭建、BootLoader移植、嵌入式Linux内核移植和根文件系统制作与移植。
第6章是嵌入式图形用户接口GUI,是对本书综合项目的进一步完善,主要介绍了GUI的概念、特点、应用和常用嵌入式GUI,并以Qt为例,完成了Qt应用程序移植项目。