《普通高等“十二五”规划教材·电子信息科学与工程类专业规划教材:嵌入式操作系统原理及应用》重点讲述嵌入式操作系统原理及应用。全书共分14章,包括嵌入式操作系统基础知识,μCOS-Ⅱ在FPGA平台上的移植,嵌入式操作系统的构成元素,嵌入式操作系统一般的启动方式,任务管理的各个组成模块及其实现方式,任务间通信方式及其实现,内存管理方式及其实现,中断与异步通信的方式及其实现,Linux内核及驱动编写,μClinux内核及驱动编写,Android体系结构及蓝牙驱动编写,Windows CE内核及驱动编写等内容。《普通高等“十二五”规划教材·电子信息科学与工程类专业规划教材:嵌入式操作系统原理及应用》最后还提供了实验指导,供读者参考。
《普通高等“十二五”规划教材·电子信息科学与工程类专业规划教材:嵌入式操作系统原理及应用》内容新颖、层次清晰,可作为高等院校本科、研究生各相关专业的程序设计教材,也适合嵌入式系统开发人员自学使用。
嵌入式系统与计算机系统的起源一样久远,由于嵌入式系统的硬件形形色色,软件也带着各个行业的不同特点,因此一直没有像计算机系统一样被大众普遍认识。尤其是嵌入式操作系统虽然也风风雨雨发展了很多年,但是由于应用的范围比计算机操作系统小,因此也不被大众所了解。
可是随着计算机系统发展受到了固有统一形态的限制,嵌入式系统在近几个世纪呈现出了蓬勃的发展势头。随着物联网的概念出现,嵌入式系统将成为这一轮科技革命的主力军。
嵌入式操作系统也随着要求软件的编写更加简单和实现多硬件平台的可跨越而逐渐成熟起来。
从想开设嵌入式操作系统的课程时苦寻教材而不见,到萌发了自己编写一本专门介绍嵌入式操作系统原理的教材的思想,不过一两年时间。在和学生们的探讨中,感到必须编写一本高水平的、内容新颖全面的教材,用于指导学生的学习。
本书重点讲述嵌入式操作系统原理,尤其是不同于计算机操作系统的一些原理。另外,由于有些嵌入式系统的规模较小,需要自己编写操作系统,因此侧重于介绍怎样编写嵌入式操作系统内核。同时,本书介绍了uCOS2在Xilinx FPGA 上的移植,让读者了解如何移植一个已有的嵌入式操作系统去某一个硬件平台。最后还介绍了各种常用的嵌入式操作系统,包括Linux、uClinux、Andriod、Windows CE等。这些常用的嵌入式操作系统的介绍,主要以编写某设备驱动为主线,让读者大略了解一个嵌入式操作系统的组织。
本书内容可分为两大部分。
第1~10章为第一部分,属于嵌入式操作系统原理。其中,第1章介绍嵌入式操作系统基础知识,如嵌入式操作系统的发展历史、分类、编写方式。第2章详细介绍本书嵌入式操作系统实验的运行平台,包括uCOS2和Xilinx公司的FPGA平台,以及uCOS2在FPGA平台上的移植,让读者体会嵌入式操作系统的具体硬件接口设计。第3章介绍嵌入式操作系统的体系结构和基本概念。第4章详细介绍嵌入式操作系统的构成元素——各种常用数据结构和其在嵌入式操作系统中的使用方式。第5章详细介绍嵌入式操作系统的一般启动方式,包括bootloader的编写方式,uCOS2、uClinux的启动方式和用到的数据结构。第6章详细介绍任务管理的各个组成模块及其实现方式。第7章详细介绍嵌入式操作系统中资源管理的各种方式及实现方式,并通过对uCOS2的改造,讲述如何在已有嵌入式操作系统中实现所需要功能模块做扩展。第8章详细介绍任务间通信方式及其实现。第9章详细介绍内存管理方式及其实现。第10章详细介绍中断与异步通信的方式及其实现。
第11~14章为第二部分,属于常用嵌入式操作系统的介绍和应用。其中,第11章介绍Linux内核及驱动编写。第12章介绍uClinux内核及驱动编写。第13章介绍Android体系结构及蓝牙驱动编写。第14章介绍Windows CE内核及驱动编写。
本书最后还提供了实验指导,供读者参考。
本书内容新颖,立足点高,同时力求重点突出,层次清晰,语言通俗易懂,内容覆盖面广。学习本书需要有一定的C语言阅读能力和硬件的入门知识。本书可作为高等院校本科、研究生各相关专业(如嵌入式系统、物联网、计算机、电子信息、通信)的程序设计教材,也适合于程序开发人员培训、广大嵌入式系统技术爱好者自学使用。
根据我们的教学体会,本书的教学可以安排为32~48学时。如果安排的学时较少,可以根据学生的水平适当删减第二部分的内容。
本书提供的实验实例全部在目标硬件上调试通过。
尽管我们在写作过程中投入了大量的时间和精力,但由于水平有限,错误和不足之处仍在所难免,敬请读者批评指正。我们会在适当时间对本书进行修订和补充。
本书第2章及实验指导由张川同学编写,第11章由陈连升同学组织内容,第13章由丁亚周同学组织部分内容,全书的实验要感谢Digilent公司的赵峰经理和戴硕先生。Digilent公司的赵峰经理审阅了本书并提供了宝贵的修改意见,Xilinx公司的谢凯年经理对本书结构提出了许多宝贵意见,在此一并表示感谢。还要感谢北京工业大学嵌入式系统与软件系的全体师生,本书的最终出版得到了他们的帮助。北京工业大学研究生教材建设基金对本书的编写进行了资助。最后还要感谢我的家人对我的支持,感谢电子出版社的董亚峰编辑为本书的编写和出版付出的辛勤劳动,以及感谢张杰、武翠梅同学的帮助。
严海蓉
2012年2月
于北京工业大学
第1章 绪论
1.1 嵌入式操作系统发展历史
1.2 嵌入式操作系统分类
1.3 嵌入式操作系统的组成
1.4 目前主流嵌入式操作系统概述
1.5 嵌入式操作系统的发展趋势
1.6 编写嵌入式操作系统的方法
习题
第2章 嵌入式操作系统的运行环境
2.1 运行平台介绍
2.2 嵌入式操作系统文件构成与接口定义
2.3 嵌入式操作系统下载与运行
第3章 嵌入式操作系统
3.1 嵌入式操作系统的定义
3.2 嵌入式操作系统的体系结构
3.2.1 整体型
3.2.2 层次型
3.2.3 微内核
3.2.4 客户-服务器
3.3 嵌入式操作系统组成要素及概念
习题
第4章 嵌入式操作系统常用数据结构
4.1 数组
4.2 指针
4.3 结构体
4.4 链表
4.5 差分链表
4.6 树
4.7 位图
4.8 文件
4.9 内核线程
习题
第5章 嵌入式操作系统初始化
5.1 bootloader
5.1.1 bootloader装在哪里
5.1.2 bootloader的启动过程
5.1.3 基于MicroBlaze软核处理器的bootloader设计
5.2 嵌入式操作系统初始化数据结构及主要操作
5.2.1 uCOS主要数据结构及操作
5.2.2 uCOS系统初始化
5.2.3 uClinux的系统初始化
习题
第6章 任务管理
6.1 任务和任务优先级
6.2 任务状态
6.3 任务控制块链
6.4 任务的生成
6.5 任务的挂起
6.6 任务的唤醒
6.7 任务的删除
6.8 任务调度
6.9 任务编程
习题
第7章 资源管理
7.1 资源共享、互斥和任务同步
7.2 临界区
7.3 信号量
7.4 信号量的使用
7.5 优先级反转
7.6 优先级继承协议
7.7 在uCOS2上实现优先级继承协议
7.8 优先级天花板协议
7.9 在uCOS2上扩展优先级天花板协议
习题
第8章 任务间通信
8.1 通信实现的基本数据结构
8.2 信号量--资源
8.3 消息队列
8.4 邮箱
8.5 管道
8.7 事件集
习题
第9章 内存管理
9.1 内存保护
9.2 内存管理机制
9.2.1 固定大小存储区管理
9.2.2 可变大小存储区管理
9.2.3 uCOS实现内存管理的方式
9.2.4 Linux的内存机制
9.2.5 uClinux下虚拟内存机制的屏蔽
习题
第10章 中断与异步信号
10.1 中断
10.2 中断向量表
10.3 中断处理过程
10.3.1 中断检测
10.3.2 中断响应
10.3.3 中断处理
10.3.4 MicroBlaze中断管理
10.3.5 uCOS2中断服务程序实现
10.4 时钟中断和时钟管理
10.5 软中断
10.6 异步信号系统
10.7 中断性能评价指标
习题
第11章 Linux
11.1 Linux内核
11.2 Linux文件结构模型
11.3 Linux驱动编写
11.4 Linux驱动的编写实例--字符设备驱动
11.4.1 字符设备驱动原理分析
11.4.2 字符设备驱动数据结构
11.4.3 字符设备驱动的编写步骤
11.4.4 驱动程序的编译与装载
第12章 uClinux
12.1 uClinux内核
12.2 uClinux移植
12.3 uClinux驱动编写
第13章 Android
13.1 Android系统构架
13.2 Android SDK开发环境
13.3 Android平台开发环境搭建
13.4 Andriod蓝牙驱动编写
13.5 Android平台蓝牙编程
第14章 Windows CE
14.1 内核与驱动
14.2 Windows CE系统驱动简介
14.3 Windows CE驱动程序实例
实验指导
实验一 移植uCOS2到FPGA上
实验二 任务的建立与多任务的执行
实验三 系统中断机制的建立与使用
实验四 蓄水池综合实验