百度空间 | 百度首页 
               
 
查看文章
 
rtx51小型实时操作系统的应用体会
2007年06月27日 星期三 23:53

        最近在做设计的时候老遇到一些几个任务需要同时进行的情况,刚开始想自己去做一个多任务的程序(因为称不上系统),想用一个脉冲计数的方法来实现多任务切换,但是感觉实现起来比较麻烦。无意中发现了51单片机下个rtx51实时操作系统(本人以前不知道的),后来就去找相关资料。发现这方面的资料在网上很少,也很杂乱。经过一段时间的学习,我有了个大概的了解。下面给大家讲述一下:

        RTX51是一个用于8051系列处理器多任务实时操作系统。

        RTX51可以简化那些复杂而且时间要求严格的工程的软件设计工作。

        有二个不同的RTX51版本可以利用:

        RTX51 Full 使用四个任务优先权完成同时存在时间片轮转调度和抢先的任务切换   RTX51工作在与中断功能相似的状态下   信号和信息可以通过邮箱系统在任务之间互相传递   你可以从一存池中分配和释放内存   你可以强迫一个任务等待中断 超时或者是从另一个任务或中断发出的信号或信息RTX51 Tiny 是一个 RTX51的子集 它可以很容易地在没有任何外部存储器的单片8051系统上运转。   除了下列例外 RTX51 Tiny支持许多在RTX51中的特征。

        RTX51 Tiny仅支持时间片轮转任务切换和使用信号进行任务切换 不支持抢先式的任务切换。不包括消息历程。没有存储器池分配程序   。

        RTX51使用一个8051硬件计时器中断作为定时程序。  
        产生的周期性中断用于驱动 RTX51时钟。  
        RTX51不需要在你的程序中拥有一个主函数    它将自动开始执行任务 0   如果你确实有一个主函
数 你必须利用 RTX51 Tiny中的 os_create_task函数或 RTX51中的 os_start_system函数手工启动 RTX51。  
        下列例子显示一个只使用时间片轮转任务调度的简单的 RTX51应用程序   在本程序里的二个任务
是简单计数器回路   rtx51开始执行函数名为 job0的任务 0 。 这些功能添加了另一个叫做 job1任务。   在 job0运行一会儿以后 RTX51切换到 job1。   在 job0运行一会儿以后、RTX51转回到job0。   这个过程将不确定地重复下去  

#include <rtx51tny.h>
int counter0;
int counter1;
void job0 (void) _task_ 0 {
os_create (1); /* mark task 1 as ready */
while (1) { /* loop forever */
counter0++; /* update the counter */
}
}
void job1 (void) _task_ 1 {
while (1) { /* loop forever */
counter1++; /* update the counter */
}
}

今天夜已很深了,明早还有考试,对不起了,不写了。

我介绍几个资料的下载地址,大家自己去看吧!

http://www.dzkf.cn/upimg/soft/1_060904135518.rar      比较详细的介绍了rtx51

http://www.sunxd.com/doc/51/te2337.pdf             基于RTX51的单片机软件设计


类别:Mcu | 添加到搜藏 | 浏览() | 评论 (2)
 
最近读者:
 
网友评论:
1
2007年09月11日 星期二 19:58 | 回复
呵呵 路过留言 刚刚开始学
 
2
2009年02月26日 星期四 22:20 | 回复
楼主!看到你的文章,我刚开始学习单片机8051,呵呵
交个朋友啊!
支持你!
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu