实时操作系统RTX51 Tiny

转载 2006年05月19日 16:20:00
px99 发表于 2005-8-31 19:04:00
实时操作系统RTX51 Tiny是RTX51的简板,它不支持优先级和CAN总线的相关定义函数。RTX51使用一个8051硬件计时器中断作为定时程序,产生的周期性中断用于驱动 RTX51时钟
    该系统是通过给各个任务一定的时间片进行轮回完成调度的。系统给要执行的N个任务按Os_create_task(task_id)创建的先后顺序排成一个队列,系统首先执行任务0,然后按队列中的任务一个一个的执行。
1、我们可以通过修改其配置文档CONF_TNY.A51keil/c51/ RTX_TINY来修改系统的相关配置;经常修改的部分如下:
;             ; define the register bank used for the timer interrupt.
INT_REGBANK     EQU       1     ; default is Registerbank 1
;
;             ; define Hardware-Timer Overflow in 8051 machine cycles.
INT_CLOCK EQU       10000     ; default is 10000 cycles
;
;             ; define Round-Robin Timeout in Hardware-Timer Ticks.
TIMESHARING     EQU       5     ; default is 5 ticks.
;             ;
;             ; note: Round-Robin can be disabled by using value 0.
;
; Note:   Round-Robin Task Switching can be disabled by using '0' as
;          value for the TIMESHARING equate.
;------------------------------------------------------------------------------
;
; 'RTX-51 tiny' Stack Space
; =========================
;
; The following EQU statements defines the size of the internal RAM used
; for stack area and the minimum free space on the stack. A macro defines
; the code executed when the stack space is exhausted.
;
;             ; define the highest RAM address used for CPU stack
RAMTOP              EQU       0FFH      ; default is address (256-1)
;
FREE_STACK       EQU       20    ; default is 20 bytes free space on stack
;
STACK_ERROR    MACRO
              CLR EA   ; disable interrupts
              SJMP      $     ; endless loop if stack space is exhausted
              ENDM
;
;------------------------------------------------------------------------------
2RTX51事件:
(1)       使用RTX51的时间溢出事件:
使用 os_wait函数等待的最简单的事件是事件溢出 RTX51时钟报时信号周期,这类事件可被
用于任务中需要延迟一段时间的地方,这可用于查询一个开关状态的代码中。 在这样的条件下,
只须每隔 50ms左右查询一次开关。使用 os_wait函数等待RTX51时钟报时信号周期的任务停止,下一个处于READY状态的任务开始执行。
(2)       使用RTX51的信号事件
你可以使用 os_wait功能暂停一个任务并等待从另一个任务发出的信号或旗标。这可以用于
协调两个或更多的任务。如果一任务在等待一个信号并且信号标志是 0,在这个信号被发送之前这个任务将一直处于挂起状态,下一个处于READY状态的任务需要等到上一个任务时间片完成以后才开始执行;如果信号标志已经是 1,当任务查询信号时,信号标志会被清除并且继续执行任务。Os_send_signal(task_id)发送信号后,需等到下次执行因等待信号而终止的任务查询信号时,该任务才开始继续向下执行,在此期间如果该信号被清除,因等待而挂起的任务则无法执行os_wait后面的指令。
3、下面,我们看RTX51 Tiny提供的系统函数;

系统函数名称
功能说明
运行时间(时钟周期)
Os_create_task(task_id)
将一任务加入到执行队列
302
Os_delete_task(task_id);
将一任务从执行队列删除
172
Os_send_signal(task_id);
给一任务发送信号
408/316/71
Os_clear_signal(task_id);
删除一个发送的信号
57
Isr_send_signal(task_id)
在中断中给一任务发送信号
46
Os_wait()
等待
68/160
Os_wait1()
等待
 
Os_wait2()
等待
 
4、任务之间的通信:
1char os_wait (
unsigned char event_sel, /* events to wait for */
unsigned char tick s, /* timer ticks to wait等待信号的数目*/
unsigned int dummy); /* unused argument */
参数event_sel可以是下面一个或几个间的逻辑或:
K_IVL:等待一个时钟报时间隔
K_SIG:等待一个信号
K_TMO:等待一个超时(time-out)
(2)char os_wait1 (
unsigned char event_sel); /* events to wait for */
它是os_wait一个子集,只等待一个信号。
(3)char os_wait2 (
unsigned char event_sel, /* events to wait for */
unsigned char tick s); /* timer ticks to wait */
参数event_sel同os_wait
参数 ticks规定等待一个间隔事件k_ivl 或一个超时事件k_tmo 的报时信号数目

RTX51 Tiny实时操作系统学习笔记—初识RTX51 Tiny

RTX51 Tiny是一种实时操作系统(RTOS),可以用它来建立多个任务(函数)同时执行的应用(从宏观上看是同时执行的,但从微观上看,还是独立运行的)。 实时操作系统能灵活的调度系统资源,像C...
  • u011708919
  • u011708919
  • 2014年06月14日 23:51
  • 4636

一个简单而经典的RTX51 Tiny应用实例

在RTX51 Tiny应用中,我们不需要编写main函数,因为main函数已经由RTX51 Tiny内核实现了。一个基于RTX51 Tiny的应用程序,都是从任务0(task0)开始运行的。上面的代码...
  • u011708919
  • u011708919
  • 2014年06月15日 22:40
  • 3609

搭建使用 RTX51-Tiny 的 C51 Keil 项目环境

最近 1 个月一直在利用业余时间研究 STC12A5C60S2 单片机及其应用,用于放松每天搞 SharePoint 后的紧张心情和头脑。(事实证明,能放松那才怪!) 在折腾完了 LCD 1602、...
  • Airbnb
  • Airbnb
  • 2014年12月03日 08:47
  • 1391

RTX51 TINY实时系统

URL: http://bbs.ednchina.com/BLOG_ARTICLE_3013560.HTM 1. 简述RTX51 Tiny操作系统!!! RTX51 Tiny是德国KEIL公司开发...
  • wanruoqingkong
  • wanruoqingkong
  • 2014年04月20日 21:58
  • 646

单片机操作系统RTX51 Tiny的使用步骤

一般地,下面三步是使用RTX51 Tiny要实现的 l        编写RTX51程序 l        编译并连接程序 l        测试和调试程序 一、编写程序    写...
  • ycdhonker
  • ycdhonker
  • 2013年12月13日 15:39
  • 2432

51单片机实时操作系统(RTX51)

本人业余大专,毕业已经整整1年了。在学校自学51单片机,c语言、stm32 、ucos RTOS等;原先找了一份测试工程师的工作,1700元一月。人生多姿多彩,没想到回校当教师了。起初我很开心,以为能...
  • xl324170455
  • xl324170455
  • 2014年03月10日 11:33
  • 1396

RTX51学习心得

2012-08-01 21:26 8212人阅读 评论(1) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载。        RTX51是一个用于8051系列处理器多任务实时操作系...
  • dkr269944905
  • dkr269944905
  • 2017年05月31日 19:11
  • 316

经典的RTx51 例程

最近对RTX51感兴趣,在网上找来相关的例子程序进行练习,在这里和大家分享一下。 #include "reg52.h" #include "rtx51tny.h" sbit led0 = P...
  • ycdhonker
  • ycdhonker
  • 2013年12月13日 16:13
  • 1970

关于RTX51 TINY的分析与探讨

1 概述     RTX51 TINY是一种应用于MCS5l系列单片机的小型多任务实时操作系统。它完全集成在Keil C5l编译器中,具有运行速度快、对硬件要求不高、使用方便灵活等优点,因此越来越...
  • dkr269944905
  • dkr269944905
  • 2017年05月31日 19:09
  • 206

RTX51 tiny 信号量实现

原文网址:http://www.21ic.com/app/mcu/201204/115690.htm 1 概述 RTX51 TINY是一种应用于MCS5l系列单片机的小型多任务实时操作系统...
  • Airbnb
  • Airbnb
  • 2015年03月04日 09:57
  • 564
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实时操作系统RTX51 Tiny
举报原因:
原因补充:

(最多只允许输入30个字)