原创 第六章 实时多任务操作系统RTX51

2011-8-2 13:25 1550 10 10 分类: MCU/ 嵌入式

第六章 实时多任务操作系统RTX51

6.1 操作系统简单应用

Os_wait来实现提前退出当前任务,一般形式为:

Char os_wait(unsigned char event_sel,//event_sel等待的事情名称

             Unsigned char ticks,//ticks是等待event_sel这件事发生所需要的计时数

             Unsigned int dummy//dummyRTX51 Tiny中没有使用,在RTX中用             

);

Event_sel可以是字符常量K_IVLK_SIGK_TMO3个数中的任何一个,也可以是他们的逻辑组合。

    K_IVL---------周期性的等待。

    K_SIG---------等待一个信号的发生

    K_TMO---------等待一段时间到。

    有个例子假如使用的函数为os_wait(K_TMO,1,0)CPU遇到os_wait(K_TMO,1,0)时则把当前的任务挂起转而执行准备就绪的任务。当os_wait(K_TMO,1,0)所延时的时间到了,CPU就会回来继续执行。当然CPU不一定时立刻回来的,因为此时CPU可能正在执行另一个任务,所以要等到属于自己的时间片时才会回来继续执行os_wait(K_TMO,1,0)后面的语句,因此用os_wait(K_TMO,1,0)延时并不准确,只是大概延时而已。

6.2 RTX51 Tiny的系统函数

6.2.1 os_wait

Char os_wait(unsigned char event_sel,//event_sel等待的事情名称

             Unsigned char ticks,//ticks是等待event_sel这件事发生所需要的计时数

             Unsigned int dummy//dummyRTX51 Tiny中没有使用,在RTX中用             

);

6.2.2 os_wait1

Char os_wait1(unsigned char event_sel);//event_sel为等待的事情名称。

Os_wait1函数时os_wait函数的一个子集。Event_sel参数规定要等待的时间。在这里只能是K_SIG.当在任务中执行到该函数时这个任务就被终止执行了。在以后的时间里CPU也不会再来这个任务里执行了。除非在其他的任务里发送一个信号。帮助这个任务“解禁”,才使它又获得了重生。

6.2.3 os_send_signal

Char os_send_signal(unsigned char task_id)//task_id为任务号

       函数os_send_signal用于在一个任务中发送一个信号给另一个任务,一般用于任务之间的简单通信。

6.2.4 isr_send_signal

       Char isr_send_signal(unsigned char task_id);//task_id为任务号

       由于os_send_signal不能在中断函数里向任务发送信号。而函数isr_send_signal则可以在中断函数里执行,向某任务发送信号。

6.2.5 os_create_task

       Char os_create_task(unsigned char task_id);

创建任务函数。

6.2.6 os_delete_task

       Char os_delete_task(unsigned char task_id);//task_id为任务号

只是从任务表中删除。

6.2.7 os_wait2

Char os_wait2(unsigned char event_sel, //event_sel为等待的事情名称

                   Unsigned char ticks,//ticks是等待event_sel这件事发生所需要的计时数

)

6.2.8 os_running_task_id

Char os_running_task_id(void),该函数就是判断当前正在执行的任务的任务号

6.3 RTX51系统的INT_CLOCK的设置

       不可太小也不要太大,这是因为他的计时是靠定时器0来实现的,如果设置的太小则会使得定时器不断响应中断从而不断保护数据从而消耗时间。

6.4 使用RTX51需要设置的选项

(1) 单片机使用要选择52系列的。

(2) 在程序中要把头文件rtx51tiny.h包含进来,即要有#include<rtx51tiny.h>

(3) 要设置工程。

20110802132500001.jpg

6-1 选择操作系统为RTX-51 Tiny      

 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
10
关闭 站长推荐上一条 /3 下一条