您的当前位置:首页嵌入式操作系统论述

嵌入式操作系统论述

2023-02-18 来源:乌哈旅游


嵌入式操作系统论述

【摘 要】本章主要介绍了嵌入式操作系统,并着重描述了嵌入式μC/OS-II操作系统的优缺点和在开发中嵌入式μC/OS-II操作系统的特征。

【关键词】嵌入式;操作系统;循环;中断 1 嵌入式操作系统概述

操作系统主要有四种基本结构,即通用操作系统、层次结构操作系统、客户服务器方式操作系统与嵌入式操作系统。我们在日常工作学习环境中接触最多的是通用操作系统。通用操作系统是由分时操作系统发展而来,大部分都支持多用户和多进程,负责管理众多的进程并为它们分配系统资源。分时操作系统的基本设计原则是尽量缩短系统的平均响应时间并提高系统的吞吐率,在单位时间内为尽可能多的用户请求提供服务。由此可以看出,分时操作系统注重平均表现性能,不注重个体表现性能。

嵌入式操作系统是相对于其他常规操作系统而言的,一般是指系统的内核或者微内核。嵌入式操作系统是嵌入式系统的灵魂,它的出现大大提高了嵌入式系统开发的效率,这不仅体现在其减少系统开发总工作量,而且提高了嵌入式应用软件的可移植性。为了和嵌入式系统特点相匹配,一个典型的嵌入式操作系统一般要包括操作系统所具备的最基本功能,如进程调度、内存管理以及中断处理等,同时要具有小巧、速度快和响应可预测性等特点,必须保证实时任务在要求的时间内完成。要注意的是,实时特性不是嵌入式系统所必需的,具备较好实时性的嵌入式操作系统严格的讲应该是嵌入式实时操作系统。由于嵌入式系统很多情况下是用于工控等场合,所以绝大多数的情况都对实时性有一定的要求。嵌入式系统一般没有外部存储器,所有的程序和数据都装在Flash等固态的电子盘上。

在嵌入式操作系统中,内核或微内核至少应包含如下几个部分。 1.1 任务

一个任务,也称作一个线程,是一个简单的程序,该程序可以认为CPU完全只属该程序自己。实时应用程序的设计过程,包括如何把问题分割成多个任务,每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。典型地、每个任务都是一个无限的循环。每个任务都处在以下5种状态之一的状态下,这5种状态是休眠态,就绪态、运行态、挂起态(等待某一事件发生)和被中断态 。休眠态相当于该任务驻留在内存中,但并不被多任务内核所调度。就绪意味着该任务已经准备好,可以运行了,但由于该任务的优先级比正在运行的任务的优先级低,还暂时不能运行。运行态的任务是指该任务掌握了CPU的控制权,正在运行中。挂起状态也可以叫做等待事件态WAITING,指该任务在等待,等待某一事件的发生,(例如等待某外设的I/O操作,等待某共享资源由暂不能使用变成能使用状态,等待定时脉冲的到来或等待超时信号的到来以结束目前的等待,等等)。最后,发生中断时,CPU提供相应的中断服务,原来正在运行的任务暂不能运行,就进入了被中断状态。图1表示μC/OS-II中一些函数提供的服务,这些函数使任务从一种状态变到另一种状态。

1.2 中断管理

中断是一种硬件机制,用于通知CPU有个异步事件发生了。中断一旦被识别,CPU保存部分(或全部)现场(Context)即部分或全部寄存器的值,跳转到专门

的子程序,称为中断服务子程序(ISR)。中断服务子程序做事件处理,处理完成后,程序回到:

1)在前后台系统中,程序回到后台程序。

2)对不可剥夺型内核而言,程序回到被中断了的任务。

3)对可剥夺型内核而言,让进入就绪态的优先级最高的任务开始运行。 中断使得CPU可以在事件发生时才予以处理,而不必让微处理器连续不断地查询(Polling)是否有事件发生。通过两条特殊指令:关中断(Disable interrupt)和开中断(Enable interrupt)可以让微处理器不响应或响应中断。在实时环境中,关中断的时间应尽量的短。关中断影响中断延迟时间。关中断时间太长可能会引起中断丢失。微处理器一般允许中断嵌套,也就是说在中断服务期间,微处理器可以识别另一个更重要的中断,并服务于那个更重要的中断,如图2所示。

图2 中断嵌套

2 嵌入式操作系统选型

在嵌入式系统的开发中,嵌入式操作系统软件是实现各种系统功能的关键,也是计算机技术最活跃的研究方向之一。不同的应用对嵌入式软件系统有不同的要求,通常,应用系统对嵌入式软件的基本要求是体积小、执行速度快、具有较好的可裁减性和可移植性。随着嵌入式系统发展和应用的多样性,嵌入式操作系统的选择主要考虑以下几方面的因素:

(1)操作系统的硬件支持:如支持目标硬件平台和可移植性;

(2)开发工具的支持程度:如编译器、链接器、调试器及仿真环境等; (3)能否满足系统应用需求:如实时性、中文化支持、可靠性等; (4)成本和技术支持:如整个目标系统的成本和操作系统的成本; (5)自行开发或自建操作系统:如Linux和μC/OS-II等。 目前,流行的嵌入式操作系统:

从八十年代起,国际上就有一些IT组织、公司,开始进行商用嵌入式系统和专用操作系统的研发。这其中涌现了一些著名的嵌入式系统,如Microsoft公司的WinCE和WindRiverSystems公司的VxWorks就分别是非实时和实时嵌入式操作系统的代表。但是商用产品的造价都十分昂贵,对于我们抄表系统来说,对嵌入式操作系统要求不那么苛刻,没有必要应用如此昂贵的操作系统。

μC/OS-II和uClinux操作系统,是当前得到广泛应用的两种免费且公开源码的嵌入式操作系统。μC/OS-II适合小型控制系统,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2k。uClinux则是继承标准Linux的优良特性,针对嵌入式处理器的特点设计的一种操作系统,具有内嵌网络协议、支持多种文件系统,开发者可利用标准Linux先验知识等优势。其编译后目标文件可控制在几百K量级。

因篇幅问题不能全部显示,请点此查看更多更全内容