1、嵌入式操作系统嵌入式操作系统 课程介绍课程介绍一一计算机科学与技术专业基础课计算机科学与技术专业基础课二二操作系统的后续课程,建立对某种操作系统操作系统的后续课程,建立对某种操作系统实现编程技术的理解和运用实现编程技术的理解和运用三三讨论嵌入式软件开发技术,为嵌入式系统开讨论嵌入式软件开发技术,为嵌入式系统开发建立软件基础发建立软件基础四四为嵌入式就业方向奠定软件技术基础,有市为嵌入式就业方向奠定软件技术基础,有市场前景场前景课程目标课程目标n学会嵌入式操作系统平台的嵌入式应用软学会嵌入式操作系统平台的嵌入式应用软件的设计与实现件的设计与实现一一理解嵌入式操作系统基本概念与技术理解嵌入式操作系
2、统基本概念与技术二二理解嵌入式操作系统内核的工作原理理解嵌入式操作系统内核的工作原理三三理解嵌入式应用软件的设计与实现原理理解嵌入式应用软件的设计与实现原理四四理解嵌入式软件的运行机制理解嵌入式软件的运行机制五五评价嵌入式软件运行性能评价嵌入式软件运行性能授课方式授课方式一一以实时内核技术概念为基础以实时内核技术概念为基础二二以内核模块构成与实现为主要内容以内核模块构成与实现为主要内容三三以内核模块应用案例为驱动与验证以内核模块应用案例为驱动与验证四四完成课程目标的嵌入式软件开发技术及方法完成课程目标的嵌入式软件开发技术及方法课程安排及成绩考核课程安排及成绩考核(仅供参考仅供参考)n理论授课理
3、论授课40学时(学时(1-11周每周周每周4学时)学时)n上机实验上机实验16学时(预排第学时(预排第7、8周每周周每周8学时)学时)n成绩及考核成绩及考核q期末考试(开卷)期末考试(开卷)70%q平时成绩平时成绩30%(作业与考勤(作业与考勤15%,上机实验,上机实验15%)参考文献参考文献n嵌入式操作系统嵌入式操作系统组成、原理与应用设计组成、原理与应用设计 牛欣源牛欣源 清华大学出版社清华大学出版社 2013n嵌入式实时操作系统嵌入式实时操作系统UC/OS-II(第(第2版)版)Jean J.Labrosse 北京航空航天大学出版社北京航空航天大学出版社 2003n嵌入式实时操作系统及应
4、用开发嵌入式实时操作系统及应用开发 罗蕾罗蕾 北京航空航北京航空航天大学出版社天大学出版社 2007n嵌入式系统嵌入式系统组成、原理与设计编程组成、原理与设计编程 金敏金敏 人民人民邮电出版社邮电出版社 2006n嵌入式软件设计嵌入式软件设计 康一梅康一梅 机械工业出版社机械工业出版社 2008第一章第一章 嵌入式软件与嵌入式操作系统嵌入式软件与嵌入式操作系统 本章内容本章内容n嵌入式系统嵌入式系统n嵌入式应用软件嵌入式应用软件n嵌入式操作系统嵌入式操作系统嵌入式系统嵌入式系统n什么是嵌入式系统?它与其他系统相比,有何什么是嵌入式系统?它与其他系统相比,有何特殊之处?特殊之处?n树立正确的嵌入
5、式系统基本概念和基本目标,树立正确的嵌入式系统基本概念和基本目标,对于开发嵌入式系统,了解、掌握安装运行于对于开发嵌入式系统,了解、掌握安装运行于嵌入式系统之上的软件,具有首要意义。嵌入式系统之上的软件,具有首要意义。什么是系统,应该如何理解系统的概什么是系统,应该如何理解系统的概念和含义?念和含义?n一般说来,系统就是按照一些固定的程序和规一般说来,系统就是按照一些固定的程序和规则,完成某些任务的组织或工作方式。则,完成某些任务的组织或工作方式。n比如,一块表,是一个能显示时间的系统。比如,一块表,是一个能显示时间的系统。n再比如,一台洗衣机,是一个能自动洗衣的系再比如,一台洗衣机,是一个能
6、自动洗衣的系统。统。嵌入式系统定义嵌入式系统定义n上面举例说明的两个系统实例中,表可以看成上面举例说明的两个系统实例中,表可以看成是一个机械系统,洗衣机可以看成是一个嵌入是一个机械系统,洗衣机可以看成是一个嵌入式系统,是一个具有嵌入软件和计算机硬件,式系统,是一个具有嵌入软件和计算机硬件,并受嵌入软件和计算机硬件的运行控制,完成并受嵌入软件和计算机硬件的运行控制,完成特定功能的系统。特定功能的系统。n嵌入式系统就是一个具有嵌入软件和计算机硬嵌入式系统就是一个具有嵌入软件和计算机硬件,并受嵌入软件和计算机硬件的运行控制,件,并受嵌入软件和计算机硬件的运行控制,完成特定功能的系统。通常将嵌入式计算
7、机系完成特定功能的系统。通常将嵌入式计算机系统简称为嵌入式系统。统简称为嵌入式系统。嵌入式系统与通用计算机系统嵌入式系统与通用计算机系统n嵌入式系统是不同于通用计算机系统的一种专嵌入式系统是不同于通用计算机系统的一种专用计算机系统用计算机系统n不以独立的物理设备的形态出现,即:它没有不以独立的物理设备的形态出现,即:它没有一个统一的外观,它的部件根据主体设备以及一个统一的外观,它的部件根据主体设备以及应用的需要,嵌入在该设备的内部,发挥着运应用的需要,嵌入在该设备的内部,发挥着运算、处理、存储以及控制等作用。算、处理、存储以及控制等作用。嵌入式系统的多种解释嵌入式系统的多种解释n嵌入式系统受内
8、置于其中的计算机部件控制,这嵌入式系统受内置于其中的计算机部件控制,这个部件可能是微控制器。个部件可能是微控制器。n嵌入式系统由微控制器控制,软件驱动运行,可嵌入式系统由微控制器控制,软件驱动运行,可靠性好,具有实时控制性能。靠性好,具有实时控制性能。n嵌入式系统就是将计算机系统内置于一个电子产嵌入式系统就是将计算机系统内置于一个电子产品中。品中。n嵌入式系统就是包含微处理器或微控制器的电子嵌入式系统就是包含微处理器或微控制器的电子产品。产品。n嵌入式系统包含一个可编程的非通用计算机,即嵌入式系统包含一个可编程的非通用计算机,即基于可编程的微处理器控制的系统。基于可编程的微处理器控制的系统。嵌
9、入式应用系统嵌入式应用系统 n把计算机可执行程序嵌入到(或称安装到)某把计算机可执行程序嵌入到(或称安装到)某个设备中,如,手机、汽车、照相机、洗衣机、个设备中,如,手机、汽车、照相机、洗衣机、空调器等家用电器,或飞机、导弹、卫星等大空调器等家用电器,或飞机、导弹、卫星等大型设备,控制这些设备的运转,使设备工作运型设备,控制这些设备的运转,使设备工作运行的自动化程度大大提高,并在功能和性能方行的自动化程度大大提高,并在功能和性能方面都得到提升,整体系统的质量大大提高。面都得到提升,整体系统的质量大大提高。n这些设备就可视为嵌入式系统这些设备就可视为嵌入式系统n这些预制或安装的软件就是嵌入式软件
10、。如何这些预制或安装的软件就是嵌入式软件。如何开发嵌入式软件?开发嵌入式软件?嵌入式计算机系统和通用计算机系统嵌入式计算机系统和通用计算机系统的比较的比较 n嵌入式实时操作系统是通用操作系统的一个应嵌入式实时操作系统是通用操作系统的一个应用特例用特例 n嵌入式系统通常是面向特定应用的嵌入式系统通常是面向特定应用的n嵌入式系统的硬件和软件都必须高效率地设计,嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除软硬件冗余量体裁衣、去除软硬件冗余n嵌入式系统中的软件一般都固化在存储器芯片嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中或单片机本身中n综合比对如下表所示:综合比对如下表所示:
11、特征特征嵌入式系统嵌入式系统通用计算机系统通用计算机系统外观外观独特,面向应用,各不相同独特,面向应用,各不相同具有台式机、笔记本等标准外观具有台式机、笔记本等标准外观组成组成面向应用的嵌入式微处理器面向应用的嵌入式微处理器总线和外部接口多集成在处理器总线和外部接口多集成在处理器内部内部软件与硬件紧密集成在一起软件与硬件紧密集成在一起通用处理器、标准总线和外设通用处理器、标准总线和外设软件和硬件相对独立安装卸载软件和硬件相对独立安装卸载运行方式运行方式基于固定硬件,自动运行,不可修基于固定硬件,自动运行,不可修改改用户可以任意选择运行用户可以任意选择运行或修改生成后再运行或修改生成后再运行开发
12、平台开发平台采用交叉开发方式采用交叉开发方式开发平台一般采用通用计算机开发平台一般采用通用计算机开发平台是通用计算机开发平台是通用计算机二次开发性二次开发性一般不能再做编程开发一般不能再做编程开发应用程序可重新编制应用程序可重新编制应用程序应用程序固定固定应用软件与操作系统整合一体应用软件与操作系统整合一体在系统中运行在系统中运行多种多样,与操作系统相互独立多种多样,与操作系统相互独立嵌入式软件系统嵌入式软件系统 n嵌入式软件是计算机软件的一种嵌入式软件是计算机软件的一种n安装运行在嵌入式系统上,控制嵌入式系统的安装运行在嵌入式系统上,控制嵌入式系统的运行。它既具有通用计算机软件的一般特性,运
13、行。它既具有通用计算机软件的一般特性,也有自身的独特属性。也有自身的独特属性。n理解嵌入式软件的特有属性,可以从软件功能理解嵌入式软件的特有属性,可以从软件功能作用及其运行平台等角度进行分析。作用及其运行平台等角度进行分析。按照软件作用划分嵌入式软件按照软件作用划分嵌入式软件n一般分为系统软件、支撑软件和应用软件三大一般分为系统软件、支撑软件和应用软件三大类。类。n系统软件负责控制、管理计算机系统的资源。系统软件负责控制、管理计算机系统的资源。如嵌入式操作系统、嵌入式中间件(如嵌入式操作系统、嵌入式中间件(CORBA、Java)等。)等。n支撑软件为辅助软件开发的工具。如系统分析支撑软件为辅助
14、软件开发的工具。如系统分析设计工具、仿真开发工具、交叉开发工具、测设计工具、仿真开发工具、交叉开发工具、测试工具、配置管理工具、维护工具等。试工具、配置管理工具、维护工具等。n应用软件是面向特定应用领域开发的软件。如应用软件是面向特定应用领域开发的软件。如手机软件、路由器软件、交换机软件、飞控软手机软件、路由器软件、交换机软件、飞控软件等。件等。按照运行平台划分嵌入式软件按照运行平台划分嵌入式软件n可以分为开发平台的嵌入式软件和嵌入式系统可以分为开发平台的嵌入式软件和嵌入式系统上的软件。上的软件。n运行在开发平台上的软件,负责完成嵌入式软运行在开发平台上的软件,负责完成嵌入式软件的设计、开发、
15、编码、运行测试等阶段的工件的设计、开发、编码、运行测试等阶段的工作,在开发平台上生成可执行软件程序作,在开发平台上生成可执行软件程序n运行在嵌入式系统上的软件,由嵌入式操作系运行在嵌入式系统上的软件,由嵌入式操作系统、应用程序、驱动程序及部分开发工具构成,统、应用程序、驱动程序及部分开发工具构成,负责嵌入式软件产品在嵌入式系统上的运行。负责嵌入式软件产品在嵌入式系统上的运行。n另一种嵌入式软件划分方式如下:另一种嵌入式软件划分方式如下:1、机器指令形式的可执行嵌入式软件、机器指令形式的可执行嵌入式软件 n这是最终安装在嵌入式系统中的嵌入式软件的这是最终安装在嵌入式系统中的嵌入式软件的运行形式,
16、以微处理器可识别的指令构成运行形式,以微处理器可识别的指令构成2、高级语言形式的嵌入式软件、高级语言形式的嵌入式软件 n大多数情况下,嵌入式软件常使用高级语言进大多数情况下,嵌入式软件常使用高级语言进行研发和编程实现。在众多的高级语言中,行研发和编程实现。在众多的高级语言中,C语言得到广泛认可。语言得到广泛认可。n基于基于C语言编程的程序软件生成的可执行程序语言编程的程序软件生成的可执行程序最终需要安装在最终需要安装在ROM芯片上,控制系统的运芯片上,控制系统的运行。行。如何将如何将C程序转换为程序转换为ROM映像文件及映像文件及其基本过程?其基本过程?C程序函数程序函数调用库函数的机调用库函
17、数的机器指令代码器指令代码目标文件的机器代目标文件的机器代码码字节编址的被链接字节编址的被链接程序程序嵌入式系统嵌入式系统ROM内存内存编译编译链接链接代代码码优优化化C语言代码能生成运行在嵌入式硬件语言代码能生成运行在嵌入式硬件上的上的ROM映像的基本过程映像的基本过程1.编译程序生成目标代码。编译程序生成目标代码。2.对目标代码按照处理机指令集进行汇编。对目标代码按照处理机指令集进行汇编。3.编译的最后步骤是优化代码。编译的最后步骤是优化代码。4.编译完成后,链接程序将目标代码和其它调用代码编译完成后,链接程序将目标代码和其它调用代码链接成为一个可执行程序。例如,链接程序将库函链接成为一个
18、可执行程序。例如,链接程序将库函数数printf()和和sqrt()的可执行代码包含进来。设备()的可执行代码包含进来。设备及设备驱动程序代码也在这时包含进来。及设备驱动程序代码也在这时包含进来。5.链接和完成地址重定位之后,生成一个链接和完成地址重定位之后,生成一个ROM映像文映像文件,一个能运行在目标硬件的件,一个能运行在目标硬件的ROM映像。映像。嵌入式软件开发概述嵌入式软件开发概述讨论并解决以下基本问题:讨论并解决以下基本问题:n软件设计程序模型软件设计程序模型 n基于实时操作系统(基于实时操作系统(RTOS)多个任务的并发)多个任务的并发处理和调度软件处理和调度软件 n基于操作系统的
19、设备驱动和设备管理软件基于操作系统的设备驱动和设备管理软件 n设计实现嵌入式系统的软件工具设计实现嵌入式系统的软件工具 嵌入式开发工具一般使用说明嵌入式开发工具一般使用说明 n针对具体嵌入式系统,说明各类开发工具的可针对具体嵌入式系统,说明各类开发工具的可用性用性n如下图所示:如下图所示:软件工具软件工具自动售自动售货机货机数据采集数据采集系统系统机器人机器人手机手机自适应巡航自适应巡航控制系统控制系统声音处理声音处理程序程序编辑器编辑器需要需要需要需要需要需要需要需要需要需要不需要不需要翻译程序翻译程序需要需要不需要不需要需要需要不需要不需要不需要不需要不需要不需要编译器编译器需要需要需要需
20、要需要需要需要需要需要需要需要需要汇编程序汇编程序需要需要需要需要需要需要不需要不需要不需要不需要不需要不需要交叉编译程序交叉编译程序不需要不需要需要需要需要需要不需要不需要不需要不需要不需要不需要地址重定位程序地址重定位程序需要需要需要需要需要需要需要需要需要需要需要需要仿真程序仿真程序不需要不需要需要需要需要需要需要需要需要需要需要需要源代码工程软件源代码工程软件不需要不需要不需要不需要不需要不需要需要需要需要需要需要需要RTOSRTOS需要需要不需要不需要有时需要有时需要需要需要需要需要需要需要StethoscopeStethoscope不需要不需要不需要不需要不需要不需要需要需要需要需
21、要需要需要Trace scopeTrace scope不需要不需要不需要不需要不需要不需要需要需要需要需要需要需要集成开发环境集成开发环境不需要不需要需要需要不需要不需要需要需要需要需要需要需要原型系统原型系统不需要不需要不需要不需要不需要不需要需要需要需要需要需要需要嵌入式软件分类和分层嵌入式软件分类和分层 n如果依据嵌入式软件的运行平台划分,可将嵌如果依据嵌入式软件的运行平台划分,可将嵌入式软件分为运行在开发平台上的软件和运行入式软件分为运行在开发平台上的软件和运行在嵌入式系统上的软件两种类型在嵌入式系统上的软件两种类型n运行在开发平台上的嵌入式软件负责提供设计、运行在开发平台上的嵌入式软
22、件负责提供设计、开发、测试工具等开发、测试工具等n运行在嵌入式系统上的软件就是嵌入式操作系运行在嵌入式系统上的软件就是嵌入式操作系统、应用程序、驱动程序及部分开发工具统、应用程序、驱动程序及部分开发工具嵌入式系统软件的特征嵌入式系统软件的特征n实时性(实时性(RealTime)。针对嵌入式系统各项功能的)。针对嵌入式系统各项功能的控制需求,需要满足功能执行的时间限制。控制需求,需要满足功能执行的时间限制。n事件响应(事件响应(React to Event)。)。针对嵌入式系统某些针对嵌入式系统某些功能的偶发控制需求,需要满足由某些条件引发的功功能的偶发控制需求,需要满足由某些条件引发的功能需求
23、。能需求。n系统功能的实时中断和调度。针对嵌入式系统某些重系统功能的实时中断和调度。针对嵌入式系统某些重要功能的偶发控制需求,需要满足由某些重要条件引要功能的偶发控制需求,需要满足由某些重要条件引发的功能需求,即满足重要事件的实时控制需求,也发的功能需求,即满足重要事件的实时控制需求,也确保后续系统的正常运行需求。确保后续系统的正常运行需求。n时限(时限(Deadline)要求。如果不能在时限要求时间内,)要求。如果不能在时限要求时间内,实现既定功能,就视为系统发生运行错误。实现既定功能,就视为系统发生运行错误。早期的嵌入式系统平台开发简单早期的嵌入式系统平台开发简单n早期的嵌入式系统功能比较
24、简单,控制软件或早期的嵌入式系统功能比较简单,控制软件或程序部分功能单一,常用汇编语言指令进行设程序部分功能单一,常用汇编语言指令进行设计开发。随着计算机系统和应用需求的不断发计开发。随着计算机系统和应用需求的不断发展。仅仅使用底层编程技术已不能满足开发功展。仅仅使用底层编程技术已不能满足开发功能、开发效率开发性能等方面的需求。能、开发效率开发性能等方面的需求。n使用嵌入式操作系统作为开发平台已成为现实。使用嵌入式操作系统作为开发平台已成为现实。嵌入式开发需要操作系统的支持嵌入式开发需要操作系统的支持n由于日益增长的嵌入式软件的开发需求及其开由于日益增长的嵌入式软件的开发需求及其开发平台的不断
25、发展,嵌入式系统与嵌入式操作发平台的不断发展,嵌入式系统与嵌入式操作系统硬件软件体系结构已密不可分,成为一个系统硬件软件体系结构已密不可分,成为一个公认稳定的系统平台,共同承担开发嵌入式系公认稳定的系统平台,共同承担开发嵌入式系统及其软件的必备工具和平台的任务。统及其软件的必备工具和平台的任务。n开发服务于嵌入式系统的嵌入式软件,采用基开发服务于嵌入式系统的嵌入式软件,采用基于嵌入式操作系统内核功能进行开发,是功能、于嵌入式操作系统内核功能进行开发,是功能、性能较为有力的保障。性能较为有力的保障。嵌入式操作系统的商业模式分类嵌入式操作系统的商业模式分类n可以分为商用型和开源型。可以分为商用型和
26、开源型。n商用型系统功能稳定、可靠,有完善的技术支商用型系统功能稳定、可靠,有完善的技术支持和售后服务,商品价格由开发费用和版税决持和售后服务,商品价格由开发费用和版税决定,常用商用嵌入式操作系统,如定,常用商用嵌入式操作系统,如windows CE、VxWorks。n开源型系统开放源码,使用花销只包括服务费,开源型系统开放源码,使用花销只包括服务费,不包括版税,不包括版税,如如Embedded linux,RTEMS,C/OS-。从嵌入式操作系统的实时性上分类从嵌入式操作系统的实时性上分类n可分为实时操作系统和非实时操作系统可分为实时操作系统和非实时操作系统n时限要求严格的系统称为时限要求严
27、格的系统称为硬实时系统硬实时系统n时限要求不严格的称为时限要求不严格的称为软实时系统软实时系统。嵌入式操作系统概念嵌入式操作系统概念n一般由内核、嵌入式一般由内核、嵌入式TCP/IP网络系统、嵌入网络系统、嵌入式文件系统等组成。式文件系统等组成。n内核是嵌入式操作系统的基础,也是必备的部内核是嵌入式操作系统的基础,也是必备的部分。它提供任务管理、内存管理、通信、同步分。它提供任务管理、内存管理、通信、同步与互斥机制、中断管理、时间管理及任务扩展与互斥机制、中断管理、时间管理及任务扩展等功能。内核还提供特定的应用编程接口。等功能。内核还提供特定的应用编程接口。嵌入式操作系统嵌入式操作系统EOS特
28、性特性n嵌入式操作系统嵌入式操作系统EOS相对于一般操作系统而言,相对于一般操作系统而言,它除具备了一般操作系统最基本的功能,如任它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等外,务调度、同步机制、中断处理、文件功能等外,还有以下特性:还有以下特性:n可装卸性。开放性、可伸缩性的体系结构。可装卸性。开放性、可伸缩性的体系结构。n强实时性。强实时性。EOS实时性一般较强,可用于各种设备控制当中。实时性一般较强,可用于各种设备控制当中。n统一的接口。提供各种设备驱动接口。统一的接口。提供各种设备驱动接口。n操作方便、简单、提供友好的图形操作方便、简单、提供友好的图形
29、GUI,图形界面,易学易,图形界面,易学易用。用。n提供强大的网络功能,支持提供强大的网络功能,支持TCP/IP协议及其它协议,提供协议及其它协议,提供TCP/UDP/IP/PPP协议支持及统一的协议支持及统一的MAC访问层接口,为各访问层接口,为各种移动计算设备预留接口。种移动计算设备预留接口。n强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预,这就要负责系统管理的户过多的干预,这就要负责系统管理的EOS具有较强的稳定具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通性。嵌入式操作系统的用户接口一般不提供操作
30、命令,它通过系统调用命令向用户程序提供服务。过系统调用命令向用户程序提供服务。n固化代码。在嵌入系统中,嵌入式操作系统和应用软件被固固化代码。在嵌入系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的化在嵌入式系统计算机的ROM中。辅助存储器,如硬盘等,中。辅助存储器,如硬盘等,在嵌入式系统中很少使用,因此,嵌入式操作系统的文件管在嵌入式系统中很少使用,因此,嵌入式操作系统的文件管理功能应该能够很容易地拆卸,而用各种内存文件系统。理功能应该能够很容易地拆卸,而用各种内存文件系统。n更好的硬件适应性,也就是良好的移植性。更好的硬件适应性,也就是良好的移植性。嵌入式操作系统的基本概念嵌入式操
31、作系统的基本概念 n嵌入式应用程序由函数、中断服务子程序、线程、多嵌入式应用程序由函数、中断服务子程序、线程、多个任务、实际或虚拟设备组成。在单个任务、实际或虚拟设备组成。在单CPU或多或多CPU的的计算机上并发运行。计算机上并发运行。n实时实时OS的系统函数提供创建多个任务的调用机制,控的系统函数提供创建多个任务的调用机制,控制任务的状态,分配任务需要的资源。制任务的状态,分配任务需要的资源。n实时实时OS的系统函数控制多任务间的上下文切换和调度。的系统函数控制多任务间的上下文切换和调度。n实时实时OS的系统函数提供的系统函数提供IPC函数,在任务和任务间、函数,在任务和任务间、在任务和中断
32、服务子程序间进行信号、信号量、消息在任务和中断服务子程序间进行信号、信号量、消息的传递。的传递。n实时实时OS的系统函数提供管道、套接字、的系统函数提供管道、套接字、RPC(远程(远程过程调用)等机制,支持数据的传递。过程调用)等机制,支持数据的传递。n实时实时OS的系统函数提供互斥信号量、锁和的系统函数提供互斥信号量、锁和SPIN锁、锁、封中断等机制。封中断等机制。嵌入式应用程序概述嵌入式应用程序概述 n基于实时操作系统进行嵌入式软件研发,有效基于实时操作系统进行嵌入式软件研发,有效率高、实时性好、易于移植等特点率高、实时性好、易于移植等特点n从应用软件设计与实现角度分析,需要设计者从应用软
33、件设计与实现角度分析,需要设计者首先掌握实时操作系统内核功能及调用接口,首先掌握实时操作系统内核功能及调用接口,熟悉内核基本技术及其实现方法;熟悉内核基本技术及其实现方法;n对应用程序进行任务分析及分解、中断分析及对应用程序进行任务分析及分解、中断分析及设计、数据分析和实现。完成应用代码程序设设计、数据分析和实现。完成应用代码程序设计,由此生成一个具有实时特性的嵌入式应用计,由此生成一个具有实时特性的嵌入式应用软件的可执行程序。软件的可执行程序。嵌入式软件系统嵌入式软件系统n应用软件应用软件q这些软件功能通常以并发运行的进程、任务或线程这些软件功能通常以并发运行的进程、任务或线程的形式运行在系
34、统中,控制系统的多项功能。的形式运行在系统中,控制系统的多项功能。n实时操作系统(实时操作系统(RealTime Operating System)q负责管理运行于硬件系统之上的应用软件,按照系负责管理运行于硬件系统之上的应用软件,按照系统任务优先级控制系统资源的分配和使用,负责调统任务优先级控制系统资源的分配和使用,负责调用任务调度处理器运行并发系统和应用任务,并负用任务调度处理器运行并发系统和应用任务,并负责完成任务运行和任务间的上下文切换。责完成任务运行和任务间的上下文切换。嵌入式应用程序结构嵌入式应用程序结构任务结构与任务结构与构建构建 任务分解任务通信任务创建任务运行响应任务与内核连
35、接任务调度嵌入式软件系统嵌入式软件系统n应用软件应用软件q这些软件功能通常以并发运行的进程、任务或线程这些软件功能通常以并发运行的进程、任务或线程的形式运行在系统中,控制系统的多项功能。的形式运行在系统中,控制系统的多项功能。n实时操作系统(实时操作系统(RealTime Operating System)q负责管理运行于硬件系统之上的应用软件,按照系负责管理运行于硬件系统之上的应用软件,按照系统任务优先级控制系统资源的分配和使用,负责调统任务优先级控制系统资源的分配和使用,负责调用任务调度处理器运行并发系统和应用任务,并负用任务调度处理器运行并发系统和应用任务,并负责完成任务运行和任务间的上
36、下文切换。责完成任务运行和任务间的上下文切换。嵌入式微处理器嵌入式微处理器外围硬件设备外围硬件设备嵌入式操作系统嵌入式操作系统应用程序代码应用程序代码图图 1-嵌入式系统结构组成图嵌入式系统结构组成图 C/OSC/OS简介简介1 1、C/OSC/OSMicro Controller OSMicro Controller OS,微控制器,微控制器操作系统操作系统2 2、C/OSC/OS简介简介q美国人美国人Jean Labrosse 1992Jean Labrosse 1992年完成。年完成。q应用面覆盖了诸多领域,如照相机、医疗器械、应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控
37、制、高速公路电话系统、自音响设备、发动机控制、高速公路电话系统、自动提款机等。动提款机等。q19981998年年 C/OSC/OS-II-II,目前的版本,目前的版本 C/OSC/OS-II V2.61-II V2.61,2.722.72。q20002000年,得到美国航空管理局(年,得到美国航空管理局(FAAFAA)的认证,可)的认证,可以用于飞行器中。以用于飞行器中。q网站网站www.ucos-II.comwww.ucos-II.com()。u公开源代码公开源代码u可移植性(可移植性(PortablePortable)绝大部分绝大部分 C/OS-IIC/OS-II的源码是用移植性很强的的源
38、码是用移植性很强的ANSI CANSI C写的。和微处理器硬件写的。和微处理器硬件相关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,相关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得使得 C/OS-IIC/OS-II便于移植到其他微处理器上。便于移植到其他微处理器上。C/OS-IIC/OS-II可以在绝大多数可以在绝大多数8 8位、位、1616位、位、3232位以至位以至6464位微处理器、微控制器位微处理器、微控制器 、数字信号处理器(、数字信号处理器(DSPDSP)上运)上运行。行。u可固化(可固化(ROMableROMable)C/OS-IIC/OS-II
39、是为嵌入式应用而设计的,这就意味着,只要用户有固化手段是为嵌入式应用而设计的,这就意味着,只要用户有固化手段(C C编译、连接、下载和固化),编译、连接、下载和固化),C/OS-IIC/OS-II可以嵌入到用户的产品中成为可以嵌入到用户的产品中成为产品的一部分。产品的一部分。u可裁剪(可裁剪(ScalableScalable)可以只使用可以只使用 C/OS-IIC/OS-II中应用程序需要的那些系统服务。也就是说某产品可中应用程序需要的那些系统服务。也就是说某产品可以只使用很少几个以只使用很少几个 C/OS-IIC/OS-II调用,而另一个产品则使用了几乎所有调用,而另一个产品则使用了几乎所有
40、 C/OS-C/OS-II II的功能,这样可以减少产品中的的功能,这样可以减少产品中的 C/OS-IIC/OS-II所需的存储器空间(所需的存储器空间(RAMRAM和和ROMROM)。这种可剪裁性是靠条件编译实现的。)。这种可剪裁性是靠条件编译实现的。C/OSC/OS的性能特点(一)的性能特点(一)u抢占式(抢占式(PreemptivePreemptive)u多任务多任务 C/OS-IIC/OS-II可以管理可以管理6464个任务,然而,目前这一版本保留个任务,然而,目前这一版本保留8 8个给系统。应个给系统。应用程序最多可以有用程序最多可以有5656个任务个任务u可确定性可确定性 全部全部
41、 C/OS-IIC/OS-II的函数调用与服务的执行时间具有可确定性。的函数调用与服务的执行时间具有可确定性。u任务栈任务栈 每个任务有自己单独的栈,每个任务有自己单独的栈,C/OS-IIC/OS-II允许每个任务有不同的栈空间,允许每个任务有不同的栈空间,以便压低应用程序对以便压低应用程序对RAMRAM的需求。的需求。u系统服务系统服务 C/OS-IIC/OS-II提供很多系统服务,例如邮箱、消息队列、信号量、块大小提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。固定的内存的申请与释放、时间相关函数等。u中断管理中断管理 中断可以使正在执行的任务暂
42、时挂起,如果优先级更高的任务被该中中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达套层数可达255255层。层。u稳定性与可靠性稳定性与可靠性 C/OSC/OS的性能特点(二)的性能特点(二)C/OS-IIC/OS-II书籍书籍n描述了描述了 C/OS-IIC/OS-II内部的工作原理内部的工作原理n随书的随书的CDCD中包含了源代码中包含了源代码q工业界最清晰的源代码工业界最清晰的源代码n除英文版外,有中文和韩文版除英文版外,有中文和韩文版Chines
43、eKoreanEnglishISBN 1-57820-103-9美国CMP BOOK ISBN 7-81077-290-2北京航空航天大学出版社ISBN 89-951540-5-5 C/OS-IIC/OS-II的各种商业应用的各种商业应用n全世界有数百种产品在应用全世界有数百种产品在应用:qAvionics(航空电子设备)(航空电子设备)qMedicalqCell phonesqRouters and switchesqHigh-end audio equipmentqWashing machines and dryersqUPS(Uninterruptible Power Supplies)
44、qIndustrial controllersqGPS Navigation SystemsqMicrowave RadiosqInstrumentationqPoint-of-sale terminalsq更多更多 C/OS-IIC/OS-II提供的系统服务提供的系统服务n任务管理任务管理n时钟管理时钟管理n信号量信号量n带互斥机制的信号量(针对优先级反转)带互斥机制的信号量(针对优先级反转)n事件标志事件标志n消息信箱消息信箱n消息队列消息队列n内存管理内存管理本章思考题n1、嵌入式系统与通用计算机系统的区别?嵌入式系统与通用计算机系统的区别?n2、嵌入式操作系统的实时性分类?、嵌入式操作系统的实时性分类?n3、简述嵌入式软件系统的构成。、简述嵌入式软件系统的构成。n4、按照运行平台划分嵌入式软件、按照运行平台划分嵌入式软件n5、嵌入式系统软件的特征、嵌入式系统软件的特征n6、嵌入式开发为什么需要操作系统的支持?、嵌入式开发为什么需要操作系统的支持?