Embedded 版 (精华区)

发信人: vmlinuz (基于考试结束后的庆祝活动计划的研究), 信区: Embeded_system
标  题: 实时多任务操作系统(RTOS)进入单片机开发领域
发信站: 哈工大紫丁香 (2001年05月16日14:16:41 星期三), 站内信件

实时多任务操作系统(RTOS)进入单片机开发领域
日 期 2000-8-7
内 容 1.实时多任务操作系统(RTOS)
(1)更加面向硬件系统,而不是操作者
嵌入式系统处理器一般都是独立工作的,没有人的直接参与;即使参与,也没有大量的
文字信息输出,这是和桌面计算机有所不同的。因此RTOS着重面向的是硬件,而不是具
有完整的人机界面。
(2)实时性
单片机系统的监测、控制、通信等工作都要求实时性,一旦出现有关情况,CPU能够及时
响应,刻不容缓。为此,一个实用的RTOS都应具有完善的中断响应机制,保证中断响应
潜伏时间足够短。
(3)多任务
半导体技术的发展和应用复杂性的增长促使CPU的处理能力越来越高,当今的一片16位或
32位单片机,在运算速度、寻址能力等方面可以相当于8位单片机的几十片之和。在这样
强大的处理器上运行应用程序,必然不是整块,而是根据所要实现的若干方面功能,划
分为数个任务,这样有利于软件的开发和维护。
因此单片机系统中采用的RTOS必然是支持多任务的,并能够根据各个任务的轻重缓急,
合理地在它们之间分配CPU和各种资源的占用时间。
(4)不同的典型外设驱动支持
单片机的典型片内外设为定时器、A/D、PWM、D/A、串行口、LCD/LED接口,CAN-bus、IC
-bus等。根据处理器类型的不同,RTOS在出厂时一般附带若干上面硬件接口的驱动程度
,而网卡等片外设备的驱动程序,以及其它一些高级驱动函数,如兼容DOS的文件系统、
TCP/IP协议等,则需要另行选购。以RTOS为基础和接口标准,可以设计出大量的库函数
驱动模块,并根据实际需要选择或裁剪。
(5)高可靠性
一般计算机的操作系统出现问题,例如死机,除数据丢失等外,不会有太大的问题;而
单片机系统一般都是和工业控制、交通工具、医用器械等机电系统密切相关,不适当的
输出甚至不及时的输出都可能会带来财产损失和安全问题。因此嵌入式系统中的RTOS要
求高可靠性,发行之前必须经过严格的测试。这是一个耗费时间和精力的过程,也是RT
OS价格普遍高于一般操作系统的原因之一。
2.RTOS是一个内核
典型的单片机程序在程序指针复位后,首先进行堆栈、中断、中断向量、定时器、串行
口等接口设置、初始化数据存储区和显示内容,然后就来到了一个监测、等待或空循环
,在这个循环中,CPU可以监视外设、响应中断或用户输入。
这段主程序可以看作是一个内核,内核负责系统的初始化和开放、调度其它任务,相当
于C语言中的主函数。
RTOS就是这样的一个标准内核,包括了各种片上外设初始化和数据结构的格式化,不必
、也不推荐用户再对硬件设备和资源进行直接操作,所有的硬件设置和资源访问都要通
过RTOS核心。硬件这样屏蔽起来以后,用户不必清楚硬件系统的每一个细节就可以进行
开发,这样就减少了开发前的学习量。
一般来说,对硬件的直接访问越少,系统的可靠性越高。RTOS是一个经过测试的内核,
与一般用户自行编写的主程序内核相比,更规范,效率和可靠性更高。对于一个精通单
片机硬件系统和编程的“老手”而言,通过RTOS对系统进行管理可能不如直接访问更直
观、自由度大,但是通过RTOS管理能够排除人为疏忽因素,提高软件可靠性。
另外,高效率地进行多任务支持是RTOS设计从始至终的一条主线,采用RTOS管理系统可
以统一协调各个任务,优化CPU时间和系统资源的分配,使之不空闲、不拥塞。针对某种
具体应用,精细推敲的应用程序不采用RTOS可能比采用RTOS能达到更高的效率;但是对
于大多数一般用户和新手而言,采用RTOS是可以提高资源利用率的,尤其是在片上资源
不断增长、产品可靠性和进入市场时间更重要的今天。
3.RTOS是一个平台
RTOS建立在单片机硬件系统之上,用户的一切开发工作都进行于其上,因此它可以称作
是一个平台。采用RTOS的用户不必花大量时间学习硬件,和直接开发相比起点更高。
RTOS还是一个标准化的平台,它定义了每个应用任务和内核的接口,也促进了应用程序
的标准化。应用程序标准化后便于软件的存档、交流、修改和扩展,为嵌入式软件开发
的工程化创造了条件、减少开发管理工作量。嵌入式软件标准化推广到社会后,可以促
进软件开发的分工,减少重复劳动,近来出现的建立于RTOS上的文件和通信协议库函数
产品等就是实例。
RTOS对于开发单位和开发者个人来说也是一种提高。引入RTOS的开发单位,相当于引入
了一套行业中广泛采用的嵌入式系统应用程序开发标准,使开发管理更简易、有效。基
于RTOS和C语言的开发,具有良好的可继承性,在应用程序、处理器升级以及更换处理器
类型时,现存的软件大部分可以不经修改地移植过来。
对于开发人员来说,则相当于在程序设计中采用一种标准化的思维方式,提高知识创造
的效率;同时因为具有类似的思路,可以更快地理解同行其它人员的创造成果。
4.RTOS产生并得到迅速发展的原因
单片机处理器能力的提高和应用程序功能的复杂化、精确化,迫使应用程序划分为多个
重要性不同的任务,在各任务间优化地分配CPU时间和系统资源,同时还要保证实时性。
靠用户自己编写一个实现上述功能的内核一般是不现实的,而这种需求又是普遍的。在
这种形势之下,由专业人员编写的、满足大多数用户需要的高性能RTOS内核就是一种必
然结果了。
对程序实时性和可靠性要求的提高也是RTOS发展的一个原因。此外,单片机系统软件开
发日趋工程化,产品进入市场时间不断缩短,也迫使管理人员寻找一种有利于程序继承
性、标准化、多人并行开发的管理方式。从长远的意义上来讲,RTOS的推广能够带来嵌
入式软件工业更有效、更专业化的分工,减少社会重复劳动、提高劳动生产率。
5.RTOS的基本特征
(1)任务
任务(Task)是RTOS中最重要的操作对象,每个任务在RTOS的调用下由CPU分时执行。激活
的或当前任务是CPU正在执行的任务,休眠的任务是在存储器中保留其执行的上下文背景
、一旦切换为当前任务即可从上次执行的末尾继续执行的任务。任务的调度目前主要有
时间分片式(TimeSlicing)、轮流查询式(Round-Robin)和优先抢占式(Preemptive)三种
,不同的RTOS可能支持其中的一种或几种,其中优先抢占式对实时性的支持最好。
(2)任务切换
RTOS管理下的系统CPU和系统资源的时间是同时分配给不同任务的,这样看起来就象许多
任务在同时执行,但实际上每个时刻只有一个任务在执行,也就是当前任务。任务的切
换有两种原因。当一个任务正常地结束操作时,它就把CPU控制权交给RTOS,RTOS则检查
任务队列中的所有任务,判断下面那个任务的优先级最高,需要先执行。另一种情况是
在一个任务执行时,一个优先级更高的任务发生了中断,这时RTOS就将当前任务的上下
文保存起来,切换到中断任务。RTOS经常性地整理任务队列,删除结束的任务,增加新
的要执行任务,并将其按照优先级从大到小的顺序排列起来,这样可以合理地在各个任
务之间分配系统资源。
(3)消息和邮箱
消息(Message)和邮箱(Mailbox)是RTOS中任务之间数据传递的载体和渠道,一个任务可
以有多个邮箱。通过邮箱,各个任务之间可以异步地传递信息,没有占用CPU时间的查询
和等待。当RTOS包含片上总线接口驱动功能时,各个单片机之间的通信也通过邮箱的方
式来进行,用户并不需要了解更深的关于硬件的内容。
(4)旗语
旗语(Semaphore)相当于一种标志(Flag),通过预置,一个事件的发生可以改变旗语。一
个任务可以通过监测旗语的变化来决定其行动,在监测旗语变化的时候不消耗CPU时间,
旗语对任务的触发是由RTOS来完成的。通过使用旗语,一个任务在等待事件变化的时候
就可以不必不断查询,而把CPU时间出让给其它任务。
(5)存储区分配
RTOS对系统存储区进行统一分配,分配的方式可以是动态的或静态的,每个任务在需要
存储区时都要向RTOS内核申请。RTOS通过使用存储分配类核心对象管理数据存储器,在
动态分配时能够防止存储区的零碎化。
(6)中断和资源管理
RTOS提供了一种通用的设计用于中断管理,有效率而灵活,这样可以实现最小的中断潜
伏时间和最大的中断响应度。RTOS内核中的资源对象类则实现了对系统实体资源或虚拟
资源的独占式访问,一个任务可以取得对资源的唯一访问权,其它任务在资源释放以前
无法访问,这样可以避免资源冲突。设计完善的RTOS具有检查可能导致系统死锁的资源
调用设计。
上面是RTOS的基本特征。根据产品的不同,它可能还包含许多其它功能。
6.你的处理器是不是需要一套实时多任务操作系统?
RTOS是目前嵌入式系统领域的热点之一,是流行的开发平台,但它毕竟对于许多用户来
说还是昂贵的,还会大量改变用户习惯的开发方式,因此在引入RTOS以前对必要性进行
考察还是明智的。你可以思考下面的几个问题:
(1)你的处理器控制的时间和方式和你预想的一样吗?
(2)你是否发现自己花费很多时间盘算怎样使一段代码在该执行的时候执行?
(3)你是否花费太多时间在中断子程序上,知道主程序不可能顺序地处理中断事件,便试
图编出所有代码来处理中断事件?
(4)你是否发现自己在不断地测试标志或调用测试标志的子程序,来判断是否应当执行一
段子程序?
如果你对上面问题的回答有一个以上是肯定的话,那么就是到了需要一套实时多任务操
作系统将你从编程的琐碎中解脱出来的时候了。
8.目前有什么样的RTOS?
当你在电子杂志上寻找RTOS的时候,可能会发现世界上研制RTOS产品的公司多得令你无
所适从;但是仔细阅读后会发现,它们的产品可能只覆盖几种处理器,而且是你所不熟
悉的。目前产品比较全面的公司主要有美国的CMXCompany和EmbeddedSystemProducts(E
SP),Inc.,它们对中国单片机工业流行的单片机,如8051,251,196/296,P51XA,68x
xx等都有RTOS及其相关的接口库函数产品,提供源程序代码,没有每个产品的二进制版
税。其中CMX公司的产品价格略低,较适合中国市场;而ESP公司的产品则有较丰富的库
函数支持。
有关更进一步的产品信息,可查询网址
http://www.cmx.com
http://www.rtxc.com
http://www.bol-system.com
或向中国单片机公共实验室咨询,电话为(010)62059495,64871495。
来 源 今日电子

--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.239.97]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.350毫秒