• 全部
  • 问答

建议“硬件/嵌入开发”论坛中开设“RTOS”子论坛!

zzhouj 2003-04-26 02:44:03
实时多任务操作系统(RTOS)简介

目前嵌入式应用领域的一个发展倾向是采用实时多任务操作系统(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 微秒。

END.

各位如果对RTOS的研究感兴趣的话,帮忙顶一下。
...全文
47 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
tony1976 2003-05-05
我做嵌入式系统时一直在用我自己写的一个微型操作系统.
最多支持255个任务,16个优先级,支持断点,我觉得很实用
回复
91program 2003-05-05
提供源代码的嵌入式OS一定要花钱买吗?好像没有这么一说。

我手里就有完全公开源代码的嵌入式OS,而且功能还可以。不敢说是强大,但够用。
多任务---255个任务
支持任务优先级---9级
Windows支持的进程之间通讯的方式也被其应用任务之间
32位系统
回复
zzhouj 2003-05-05
嵌入试领域由于面向具体应用,所以是一个不会被垄断的行业,中国在这方面的机会很大,况且现在已经有了国产的嵌入式芯片和国产的RTOS,并且已经成功运用于商业产品了。
回复
zhst 2003-04-29
强烈支持!
回复
nise 2003-04-28
support
回复
while(1){...} 2003-04-28
支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持! 支持!
回复
lambo 2003-04-28
支持,嵌入式系统少了RTOS就少了道靓丽的风景。
uc/os,embeded linux等开放源码OS
回复
gcai 2003-04-28
支持

呵呵,提供原马你买得起吗?
回复
91program 2003-04-28
我支持提供所有源代码的嵌入式OS,其它的我不考虑!
回复
坐着等天亮 2003-04-28
对呀,支持,你会用正版吗?
还是免费的好。
回复
zgz 2003-04-28
支持....有用么?
回复
braveheartsh 2003-04-28
强烈支持
回复
我支持vxworks
回复
mygreenhouse 2003-04-27
zzhouj的提议不错,应该说目前在跑的CPU中用于嵌入式实时系统的要远大于PC机系统.对于硬件领域,我们所熟悉的Intel在嵌入式方面并没有多大的优势;我们国家开发龙芯的目前也主要定位在这一块,毕竟太大了:从手机,到数码相机,到智能冰箱,到汽车系统等等.而对于软件领域,RTOS的话题太多了,我们应该关注一下.我们应该拥有除了WinCE外更多的选择!
回复
发帖
嵌入开发(WinCE)
创建于2007-09-28

1.9w+

社区成员

硬件/嵌入开发 嵌入开发(WinCE)
申请成为版主
帖子事件
创建了帖子
2003-04-26 02:44
社区公告
暂无公告