前言

嵌入式系统与计算机系统的起源一样久远,由于嵌入式系统的硬件形形色色,软件也带着各个行业的不同特点,因此一直没有像计算机系统一样被大众普遍认识。尤其是嵌入式操作系统,虽然也风风雨雨发展了很多年,但是由于应用的范围比计算机操作系统小,因此也不被大众所了解。

可是随着计算机系统发展受到了固有统一形态的限制,嵌入式系统在近几个世纪呈现出了蓬勃的发展势头。嵌入式操作系统也随着要求软件的编写更加简单和实现多硬件平台的可跨越而逐渐成熟起来。随着物联网的概念出现,嵌入式系统也将会成为这一轮科技革命的主力军。

在近年来的教学实践中以及在和学生们的探讨中,我们感到必须编写一本专门介绍嵌入式操作系统原理的内容新颖全面的教材,用于指导学生的学习。本书重点讲述嵌入式操作系统原理,尤其是不同于计算机操作系统的一些原理。由于有些嵌入式系统的规模较小,需要自己编写操作系统,因此本书侧重于介绍怎样编写嵌入式操作系统内核。同时也介绍了μCOS-Ⅱ在Xilinx FPGA 上的移植,让读者了解如何移植一个已有的嵌入式操作系统到另一个硬件平台。最后还以编写设备驱动为主线介绍了各种常用的嵌入式操作系统,包括Linux、μClinux、Andriod、Windows CE等,让读者大致了解嵌入式操作系统的组织。

本书内容可分为以下两大部分。

第1~10章为第一部分,属于嵌入式操作系统原理。其中,第1章介绍嵌入式操作系统基础知识,如嵌入式操作系统的发展历史、分类、编写方式。第2章详细介绍本书嵌入式操作系统实验的运行平台,包括μCOS-Ⅱ和Xilinx公司的FPGA平台,以及μCOS-Ⅱ在FPGA平台上的移植,让读者体会嵌入式操作系统的具体硬件接口设计。第3章介绍嵌入式操作系统的体系结构和基本概念。第4章详细介绍嵌入式操作系统的构成元素——各种常用数据结构和其在嵌入式操作系统中的使用方式。第5章详细介绍嵌入式操作系统的一般启动方式,包括bootloader的编写方式,μCOS-Ⅱ、μClinux的启动方式和用到的数据结构。第6章详细介绍任务管理的各个组成模块及其实现方式。第7章详细介绍嵌入式操作系统中资源管理的各种方式及实现方式,并通过对μCOS-Ⅱ的改造,讲述如何在已有嵌入式操作系统中实现所需要功能模块做扩展。第8章详细介绍任务间通信方式及其实现。第9章详细介绍内存管理方式及其实现。第10章详细介绍中断与异步通信的方式及其实现。

第11~14章为第二部分,属于常用嵌入式操作系统的介绍和应用。其中,第11章介绍Linux内核及驱动编写。第12章介绍μClinux内核及驱动编写。第13章介绍Android体系结构及蓝牙驱动编写。第14章介绍Windows CE内核及驱动编写。

本书内容新颖,立足点高,同时力求重点突出,层次清晰,语言通俗易懂,内容覆盖面广,可作为高等院校本科、研究生各相关专业(如嵌入式系统、物联网、计算机、电子信息、通信)的程序设计教材,也适合于程序开发人员培训、广大嵌入式系统技术爱好者自学使用。

根据我们的教学体会,本书的教学可以安排为32~48学时。如果安排的学时较少,可以根据学生的水平适当删减第二部分的内容。

尽管我们在写作过程中投入了大量的时间和精力,但由于水平有限,错误和不足之处仍在所难免,敬请读者批评指正(任何建议可以发邮件至yanhairong@bjut.edu.cn)。我们会在适当的时间对本书进行修订和补充。

本书第2章及实验指导由张川编写,第11章由陈连升组织内容,第13章由丁亚周组织部分内容。Digilent公司的赵峰经理审阅了本书并提供了宝贵的修改意见,Xilinx公司的谢凯年经理对本书结构提出了许多宝贵意见,Digilent公司的赵峰经理和戴硕先生对本书实验部分给予很大的帮助,在此一并表示感谢。同时还要感谢北京工业大学嵌入式系统与软件系的全体师生,本书的最终出版得到了他们的帮助。北京工业大学研究生教材建设基金对本书的编写进行了资助。最后还要感谢我的家人对我的支持,感谢电子工业出版社的董亚峰策划编辑为本书的编写和出版付出的辛勤劳动,感谢张杰、武翠梅等同学的帮助。

本书提供的实验实例全部在目标硬件上调试通过,读者可登录电子工业出版社华信教育资源网(http://www.hxedu.com.cn)免费下载本书配套实验指导与程序文件。

严海蓉

2012年2月

于北京工业大学