Embedded 版 (精华区)

发信人: vmlinuz (生活将因为你而美丽), 信区: Embedded_system
标  题: 实时操作系统(RTOS)简介
发信站: 哈工大紫丁香 (2001年06月01日08:58:48 星期五), 转信

引述《seabird (海鸟)》之铭言:
     目前嵌入式应用领域的一个发展倾向是采用实时多任务操作系统(Real Time
Operati on System,RTOS)。RTOS的应用是和前面所述的应用复杂化直接相关的。
过去一个单片 机应用程序所控制的外设和履行的任务不多,采取一个主循环和几个
顺序调用的子程序模块即可满足要求。目前单片机芯片本身的性能大幅度提高,
可以适应应用复杂化这一要求,问题在于软件上。随着应用的复杂化,一个嵌入式
控制器系统可能要同时控制/监视很多外设,要求有实时响应,有很多处理任务,
各个任务之间有多种信息传递,如果仍采用原来的程序设计方法存在两个问题。
一是中断可能得不到及时响应,处理时间过长,这对于一些控制场合是不允许的,
对于网络通信方面则会降低系统整体的信息流量。二是系统任务多,要考虑的各种
可能也多,各种资源如调度不当就会发生死锁,降低软件可靠性,程序编写任务量
成指数增加。
     实时操作系统是一段在嵌入式系统启动后首先执行的背景程序,用户的应用
程序是运行于RTOS之上的各个任务,RTOS根据各个任务的要求,进行资源(包括存储
器、外设等)管理、消息管理、任务调度、异常处理等工作。在RTOS支持的系统中,
每个任务均有一个优先级,RTOS根据各个任务的优先级,动态地切换各个任务,
保证对实时性的要求。 工程师在编写程序时,可以分别编写各个任务,不必同时
将所有任务运行的各种可能情况记在心中,大大减小了程序编写的工作量,而且
减小了出错的可能,保证最终程序具有高可靠性。
     实时多任务操作系统,以分时方式运行多个任务,看上去好象是多个任务
“同时”运行。任务之间的切换应当以优先级为根据,只有优先服务方式的RTOS才
是真正的实时操作系统,时间分片方式和协作方式的RTOS并不是真正的“实时”。
美国CMX公司的RTOS采用全优先服务方式的任务调度,可以使中断潜伏时间减到最
小。其RTOS的主要功能模块有调度和中断处理(为了优化用汇编编写),任务管理,
事件管理,定时器管理,报文管理,循环队列管理,资源管理,固定存储块管理,
规范的UART管理,自动掉电管理。这些也是标准的RTOS所应具有的基本功能。
RTOS也体现了一种新的系统设计思想和一个开放的软件框架,工程师可以在不大量
变动系统其它任务的情况下增加或去掉一个任务;一个项目开发的过程中,可以有
多个工程师同时进行系统的软件开发,各个人之间只要制订好规程和协议即可,既
缩短了开发时间,又降低了最终软件产品对于具体某个开发者个人的依赖性。为
RTOS设计的成熟和通用的任务可以以库函数的形式供其它人继续利用,和C语言的
设计思想一致。因此可以说RTOS 是嵌入式软件的编写从“小生产方式”进入“大
生产方式”的必然产物。
     在RTOS基础上可以很容易地实现各种通信协议库函数,CMX针对目前单片
机网络系统中广泛使用的CAN总线协议,开发了CAN总线协议接口库函数。这些函
数包括消息 接收,消息发送,初始化CAN控制器芯片,管理CAN控制器中断,管理
节点地址和CAN标识,管理用于CAN信息包的缓冲存储区,通知一个任务消息已经
收到等等。
     实时多任务操作系统一般以源代码形式供应用户,作为Project源程序的
一部分参加编译和汇编,最终在用户代码中占有一部分。例如CMX的RTOS在80C51XA
系统中采用大 模式编译增加代码量3310字节,最大中断潜伏时间在30M时钟下为2.9
微秒。

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