实时操作系统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...

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

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

RTX51实时操作系统 嵌入式

  • 2013年01月15日 10:25
  • 272KB
  • 下载

第8章 RTX-51实时操作系统.pdf

  • 2014年03月19日 21:54
  • 235KB
  • 下载

RTX 实时操作系统简介

Keil RTX 是免版税的确定性实时操作系统,适用于 ARM 和 Cortex-M 设备。使用该系统可以创建同时执行多个功能的程序,并有助于创建结构更好且维护更加轻松的应用程序。 产品的几大亮点 ...

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

一般地,下面三步是使用RTX51 Tiny要实现的 l        编写RTX51程序 l        编译并连接程序 l        测试和调试程序 一、编写程序    写...

RTX:RTX实时操作系统(RTOS)简介学习笔记

RTX实时操作系统(RTOS)简介学习笔记 RTOS:Real time Operation System Keil RTX 是免版税的确定性实时操作系统,适用于 ARM 和 Cortex-M...

lq51--基于8051的嵌入式实时操作系统

上大学的时候写的,现在回过头来看看,觉得这是自己比较满意的一个东西。 整的现在找工作时,我都把这个东西给写上。 惭愧呀,真不知到自己这几年干了些啥东西,为何变得如此急躁呢? 有时真有种想法,辞掉...

移植uC/OS-II到51_《嵌入式实时操作系统uC/OS-II》

小巧的uC/OS-II移植到51都没问题。刚好有块89c52rc的,于是玩了一下,不过52实际可建立的任务却很少,权当练习下,顺便回忆一下51的一些指令。 用keil建立的一个工程: http:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实时操作系统RTX51 Tiny
举报原因:
原因补充:

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