嵌入式软件基础
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

自2004年起,在中国科学院研究生院计算与通信工程学院开设了“嵌入式软件导论”课程。该课程的教学目的是向学生介绍有关嵌入式软件的概念与技术,内容涉及嵌入式操作系统、嵌入式软件的开发环境、嵌入式系统的接口与网络系统、嵌入式数据库管理系统、嵌入式窗口系统、嵌入式系统的Java平台等方面。

随着嵌入式系统的应用越来越广泛,有关嵌入式系统的图书已有很多,大致可分为以下几类:

(1)从硬件和软件相结合的角度介绍如何设计和开发嵌入式系统的图书。这类图书的内容涵盖范围如图a虚线框内灰色部分所示,它涉及硬件、操作系统、应用软件3个层面(通常回避对支撑软件的介绍)。目前这类图书较多。

图a 介绍嵌入式系统设计和开发技术的图书内容涉及的范围

(2)介绍嵌入式系统硬件的图书。这类图书的内容涵盖范围如图b虚线框部分所示,它又分为一般和特殊两个子类。一般类以介绍嵌入式系统硬件的一般原理和技术为主。特殊类以介绍某种特定的嵌入式处理器为主,如8051系列处理器、ARM系列处理器、MIPS系列处理器。这类图书也较多。

图b 介绍嵌入式系统硬件的图书内容涉及的范围

(3)介绍嵌入式操作系统的图书。这类图书的内容涵盖范围如图c虚线框部分所示,它也分为一般和特殊两个子类。一般类以介绍嵌入式操作系统的一般原理和技术为主。特殊类以介绍某种特定的嵌入式操作系统为主。如嵌入式Linux、Windows CE、VxWorks等。

(4)介绍如何设计和开发用于某特定领域(如智能手机、信息家电、汽车电子)嵌入式系统的图书。这类图书所包括的内容涵盖范围如图d虚线框部分所示,此类和第(1)类之间有一定的关系。某种意义上,第(1)类解决的是一般问题,而这一类解决的是具体问题。但是这一类往往会对相关的支撑软件做一定的介绍,而忽略或压缩对硬件的介绍。这类图书目前并不多。

图c 介绍嵌入式操作系统的图书内容涉及的范围

图d 介绍用于某特定领域的嵌入式系统设计和开发的图书内容涉及的范围

还有一些嵌入式系统方面的图书很难归纳到上述几类当中。例如,有介绍嵌入式数据库的图书、介绍怎样使用某种语言开发嵌入式软件的图书、介绍嵌入式系统常识的图书等。相比之下,其数量也很少。

从上面介绍的情况可以看出,目前还没有一本图书适合作为“嵌入式软件导论”这门课程的教材。在教学的过程中笔者虽然选择了几本图书作为教学参考书,但课程教学大纲与教学参考书的内容实际上有比较大的差别。这种状况在一定程度上影响了“嵌入式软件导论”这一课程的教学质量。所以从几年前起笔者就一直打算编写一本嵌入式软件方面的图书,一方面可以作为“嵌入式软件导论”这门课程的教材,另一方面也可供工程技术人员阅读参考。

嵌入式软件包括的内容相当丰富。如果要编写一本这方面的教材,在内容上有很多种选择。就目前的实际情况来看,虽然许多高等院校都陆续开设了若干嵌入式软件方面的课程。但与一些比较成熟的课程相比,嵌入式软件方面的课程在教学内容上还很不统一,使用的教材差别更是很大。所以对本书究竟要介绍哪些内容,从什么角度去介绍,介绍的深度控制在什么样的水平上等一系列问题都需要仔细斟酌。在处理这些问题时,笔者依据了以下几个原则:

(1)以介绍基础性的嵌入式软件及其相关技术为重点

嵌入式软件的应用范围已经很广泛,嵌入式软件的种类非常多。相对而言,一些基础性的嵌入式软件(如嵌入式操作系统)使用较普遍,而一些解决具体应用问题的嵌入式软件则只有专门的开发人员比较关注。

(2)在介绍一种嵌入式软件时以介绍该软件的特点及其与通用软件之间的区别为主

嵌入式软件在结构和实现技术上和同类的通用软件虽然有很多不同之处,但它与同类的通用软件又有许多共同的地方。因此,在本书中一般只介绍嵌入式软件所采用的有别于通用软件的技术,对于与同类通用软件相同的技术,如果没有特殊需要,一般不进行介绍。

(3)内容的组织注意与计算机软件专业其他课程相衔接

操作系统、数据库、程序设计语言、计算机网络等课程都是计算机软件专业的必修课程。目前,这些课程的教学内容基本上是根据通用软件的技术特点来安排,很少专门考虑嵌入式软件的问题。但实际上在操作系统、数据库、程序设计语言等领域中都针对嵌入式软件的特点采用了一些专门的技术。本书将对这些技术进行介绍,在内容上与操作系统、数据库等课程形成互补关系。

在上述原则的指导下,本书将关注点放在了嵌入式操作系统和基础性嵌入式支撑软件两个层面上。其内容覆盖范围如图e虚线框部分所示。这些内容是嵌入式系统中的最基本软件。为了体现这一理念,笔者将本书命名为“嵌入式软件基础”。

图e 本书的内容范围

本书在编写和出版的过程中得到过许多专家和朋友的帮助与鼓励。这其中包括中国科学院研究生院计算与通信工程学院的姚郑院长和张宝贤教授、北京凯思昊鹏软件工程技术有限公司的奉旭辉总经理和顾玉良研究员、电子工业出版社高等教育分社的童占梅副社长和索蓉霞编辑。在本书即将出版之际,向上述诸位表示由衷的感谢。

为方便读者学习和参考,本书提供配套PPT课件和相关教学资源,读者可以通过华信教育资源网免费注册下载使用。

华信教育资源网www.hxedu.com.cn

本书涉及操作系统、软件开发环境、网络系统、数据库管理系统、窗口系统、Java语言、处理器芯片等多方面的知识。一方面笔者在上述某些领域的研究深度有限,另一方面本书中所涉及的一些概念目前在计算机技术界还有不同的认识,对这样的问题在编写本书的时候,笔者也只能根据自己的理解选择其中的某一种观点。因此,本书中错误和不足之处在所难免,恳请广大读者批评指正,并提出宝贵意见。

笔者