12.2 RTX-51的系统函数

RTX-51实时多任务操作系统的系统函数主要用于任务管理、任务通信及其他服务。这里以RTX-51 Tiny为例进行介绍。RTX-51 Tiny是RTX-51 FULL的一个简化版本,可以完成绝大多数的实时多任务操作。在使用RTX-51 Tiny的系统函数时,需要在程序中加入“RTX51TNY.h”头文件。在该头文件中,提供了RTX-51 Tiny系统函数的说明以及所有常数声明。

在RTX-51实时操作系统的系统函数中,以“os”开头的函数被任务专用,而以“isr”开头的函数被C51的中断函数专用。

12.2.1 中断调用的发送信号函数

发送信号函数isr_send_signal主要用于向另外一个任务发送信号。该函数只能被中断函数调用,其函数原型如下。


char isr_send_signal(unsigned char taskid);


其中,参数taskid指定接收信号任务的任务号。发送信号函数isr_send_signal的返回值如果为0,则表示信号发送成功;如果为-1,则表示指向的接收信号任务不存在。使用函数isr_send_signal的程序示例如下。


include<RTX51TNY.h>

void task_isrsendsignal(void)interrupt 2

{

……

isr_send_signal(4);//向任务4发送信号

……

}


发送信号函数isr_send_signal在向taskid所指定的任务发送信号时,如果该任务正在等待信号,则信号到达后,任务再次执行。如果任务正在执行其他操作,则信号将被存储在所访问的任务信号标志中。