《嵌入式软件开发》系统地介绍了嵌入式系统的软件开发方法。全书分为8章,首先讲述了嵌入式系统的概况和应用领域,各种典型的嵌入式处理器,嵌入式操作系统的种类及选用等;然后以嵌入式Linux和市场占有率排名第一的VxWorks操作系统为例,详细讲解嵌入式操作系统的组成、多任务环境的工作原理及其交叉开发环境的使用,以及嵌入式实时系统软件设计的几个核心问题和嵌入式系统的一般设计开发流程;最后给出了开发嵌入式系统的相关实训。
《嵌入式软件开发》可作为高职、专科院校计算机类、电子类、信息类专业高年级学生的教材,也可作为一些进修班的培训教材,同时亦可作为企业各类嵌入式产品开发人员、嵌入式技术爱好者的学习参考资料。
进入21世纪后,计算机技术发展的一个重要方面就是嵌入式计算机系统的迅速发展。当今嵌入式计算机无处不在的发展趋势,展示了人类社会生活、生产活动高度自动化的美妙前景。嵌入式计算机的广泛应用是后PC信息时代的重要特征,嵌入式计算随时可能引发创新灵感,而千姿百态的嵌入式产品概念的实现必须有开发技术的支持。因此,嵌入式系统和嵌入技术成为了计算机工业中最具活力的部分。在这样的形势下,各本科院校纷纷开设了嵌入式系统的课程。为了改变嵌入式技术在高职高专教育中滞后的局面,特面向高职高专学校编写了这本嵌入式系统软件开发的入门教材。
全书主要内容和章节安排如下:
全书分为8章。第1章介绍嵌入式系统的定义、分类、特点、组成、发展概况、应用领域等;第2章讲解嵌入式处理器的基本特征、分类和选择以及各种典型的嵌入式处理器;第3章介绍嵌入式操作系统的种类及选用;第4、5章以嵌入式Linux和市场占有率排名第一的VxWorks操作系统为例,详细讲解嵌入式操作系统的组成、多任务环境的工作原理及其交叉开发环境的使用;第6章对嵌入式实时系统软件设计的几个核心问题作了说明;第7章介绍嵌入式系统的一般设计和开发流程;第8章安排了14个嵌入式系统的相关实训内容。
相对于其他嵌入式系统方面的书籍资料,本书具有如下特点:
1.面向高职、专科层次
大多数嵌入式开发方面的书籍都是面向本科高年级和研究生的,面向高职和专科层次的书可谓凤毛麟角。高职和专科院校相关专业的学生学习嵌入式软件开发,要想找到一本合适的教材,确实比较困难,对于嵌入式开发的普及不能不说是一大缺憾。本书的出版,将弥补这一缺憾。
2.读者容易看懂,能快速上手实践
本书在内容的先后次序与组织形式、知识点安排等方面进行了细致的设计。先进行概要的介绍,再从大家熟悉的Linux入手,过渡到嵌入式μClinux,再以市场占有率排名第一的VxWorks操作系统为例,将实例设计成最能体现基本知识点的形式,使读者尽快入门。
3.着重于嵌入式软件开发,提供大量实例
在第4、5、6章中列举了大量实例,包括应用实例和代码实例,结合C源代码实例进行讲解。所有源代码实例均进行了多次验证,可以在仿真机和真实目标机上调试运行。
4.理论与实践相结合
在本书的最后部分结合课程的相关章节内容安排了14个实训内容,让读者有充分的实践机会,希望能引导读者迅速掌握嵌入式软件开发的基本理论和方法。
5.便于教学与实验
本书给出的实训项目,既可在PC上的仿真器环境下进行,也可在各类嵌入式硬件实验箱或开发板上进行,因此无论是否有嵌入式硬件实验箱或开发板,均可进行相应的实验。每章后面都有精选的习题,以利读者巩固相关知识点。本书选用的实时操作系统也很容易得到:嵌入式Linux是完全免费的资源,可直接从网上下载;另一个实时操作系统VxWorks的集成开发环境Tornado的评估版也可从Windriver公司网站注册后免费下载。
教学建议:
对于高职、专科学校,建议采用64学时(40学时课堂教学+24学时实验),分三个阶段进行教学。第1、2、3章为第一阶段,学习嵌入式系统软件开发入门所需的基础知识,第一阶段占总课时数的20%。第4、5、8章为第二阶段,分别学习基于嵌入式Linux下的软件开发和基于VxWorks的嵌入式软件开发方法,课堂教学与实验同步进行,一般情况下,第二阶段占总课时数的60%~70%。第6、7章为第三阶段,这是相对较深的内容,教师可根据情况进行取舍,布置具体设计实践,第三阶段占总课时数的10%~20%。
本书由张京任主编。第1、2、3、8章由张京编写,第4、5章由张敏编写,第6、7章由颜俊华编写。
李成大教授仔细审阅了本书,并提出了非常宝贵的意见,特此表示深深的谢意。同时也对为本书出版工作付出辛勤劳动的杨?[编辑表示诚挚的感谢。
本书在编写过程中参考了不少相关资料文献,均附于参考文献中。引用的文字和图片为本书内容阐述所需要,无侵权意图,特此申明。在此对引用的这些文献资料的作者或编者深表感谢。
本书的编写过程中虽力求精益求精,但由于编者水平和时间有限,难免有疏漏,恳请有关专家赐教和读者批评指正。
第1章嵌入式系统概述
1.1嵌入式系统的定义
1.2嵌入式系统的分类
1.3嵌入式系统的特点
1.4嵌入式系统的组成
1.5嵌入式系统的应用领域
1.6嵌入式系统的发展
1.6.1嵌入式系统的发展史
1.6.2嵌入式应用软件面临的挑战
1.7本章小结
习题
第2章嵌入式硬件系统基础
2.1嵌入式处理器的基本特征
2.2嵌入式处理器的分类
2.2.1嵌入式微处理器
2.2.2嵌入式微控制器
2.2.3嵌入式DSP处理器
2.2.4嵌入式片上系统
2.3典型嵌入式处理器
2.3.18051系列单片机
2.3.268K/ColdFire系列
2.3.3PowerPC系列
2.3.4ARM系列
2.3.5X86系列
2.3.6MIPS
2.4嵌入式处理器的选择
2.5嵌入式处理器的发展趋势
2.6本章小结
习题
第3章嵌入式操作系统
3.1嵌入式操作系统的发展
3.1.1嵌入式操作系统的历史
3.1.2嵌入式操作系统的发展趋势
3.2嵌入式操作系统的分类
3.3嵌入式实时系统
3.3.1嵌入式实时系统介绍
3.3.2实时系统的分类
3.4嵌入式实时操作系统
3.4.1VxWorks
3.4.2pSOS
3.4.3QNX
3.4.4DeltaOS
3.5嵌入式软实时操作系统
3.5.1嵌入式Linux
3.5.2WindowsCE
3.5.3PalmOS
3.6嵌入式操作系统的选择
3.7本章小结
习题
第4章基于Linux的嵌入式软件开发
4.1嵌入式Linux概述
4.2Linux基础
4.2.1VMware虚拟机中的Linux安装
4.2.2进入与退出Linux系统
4.2.3Linux常用命令
4.3嵌入式LinuxC语言开发工具
4.3.1C语言与嵌入式系统设计
4.3.2嵌入式LinuxC语言编程环境
4.3.3vi编辑器
4.3.4GCC编译器
4.3.5GNUmake
4.3.6GDB调试器
4.4μCLinux操作系统
4.4.1μCLinux简介
4.4.2μCLinux的基本架构
4.4.3μCLinux的相关知识
4.5建立μCLinux开发环境
4.5.1交叉编译环境
4.5.2基于Linux的宿主机建立交叉编译环境
4.5.3基于Cygwin建立交叉编译环境
4.5.4μCLinux内核编译
4.5.5内核的加载运行
4.6基于μCLinux的应用程序开发
4.6.1基本开发步骤
4.6.2应用程序开发实例
4.6.3添加用户应用程序到μCLinux
4.7本章小结
习题
第5章基于VxWorks的嵌入式软件开发
5.1Tornado简介
5.1.1Tornado的特点
5.1.2TornadoIDE
5.1.3VxWorks目标机环境
5.1.4宿主机与目标机的接口
5.2Tornado的安装和启动
5.2.1Tornado的安装
5.2.2Tornado的目录结构
5.2.3Tornado主窗口界面介绍
5.2.4入门实例--HelloWorld
5.2.5使用调试和分析工具
5.3Tornado环境下的工程开发
5.3.1创建可下载的应用
5.3.2创建用户定制的VxWorks映像
5.3.3创建可引导的应用
5.3.4宿主机与目标机的通信
5.3.5配置、构造引导程序及引导盘的制作
5.3.6主机Tornado调试环境配置
5.3.7多任务调试方法
5.4VxWorks操作系统
5.4.1VxWorks简介
5.4.2Vxworks操作系统的基本结构
5.4.3VxWorks任务
5.4.4共享代码和重入
5.4.5任务间通信
5.4.6中断服务程序
5.4.7时钟管理
5.5实例分析
5.5.1VxWorks任务间通信
5.5.2理发师问题
5.5.3哲学家进餐问题
5.6本章小结
习题
第6章嵌入式软件设计的几个问题
6.1实时多任务软件设计
6.1.1实时多任务软件的设计步骤
6.1.2任务划分
6.1.3实时多任务设计实例
6.2板级支持包BSP
6.2.1BSP简述
6.2.2BSP的职责
6.2.3BSP的组成
6.2.4VxWorks映像类型及其启动顺序
6.2.5BSP的开发
6.3外部设备的驱动
6.3.1外部设备
6.3.2外部设备的分类
6.3.3I/O设备的数据传送方式
6.3.4硬件驱动程序
6.3.5硬件驱动程序的主要功能
6.3.6硬件驱动程序的组成部分
6.4本章小结
习题
第7章嵌入式系统设计开发
7.1嵌入式系统设计开发概述
7.1.1嵌入式系统开发的特点
7.1.2嵌入式系统设计的目标
7.1.3嵌入式系统的设计开发方法
7.2嵌入式硬件系统选型及设计
7.2.1处理器的选择
7.2.2嵌入式系统硬件电路设计
7.2.3印刷电路板设计
7.3嵌入式软件系统选择
7.3.1软件平台的选择
7.3.2编程语言的选择
7.3.3集成开发环境的选择
7.4软、硬件协同开发
7.5嵌入式系统的调试
7.6嵌入式系统测试
7.7系统集成
7.8本章小结
习题
第8章实训
实训1Linux安装
实训2Linux常用命令
实训3嵌入式Linux下开发工具使用
实训4μCLinux交叉开发环境
实训5添加μCLinux应用程序
实训6Tornado集成开发环境
实训7使用Tornado中的调试和分析工具
实训8基于VMware建立VxWorks交叉开发环境
实训9VxWorks组件的裁减和配置
实训10信号量
实训11消息队列
实训12Wind内核功能
实训13多任务程序调试方法
实训14理发师问题
参考文献