关键词:单片机实时操作系统的RTX51
1RTX51简介
1.1RTX51TINY特性
RTX51是KEIL公司开发的用于8051系列单片机的多任务实时操作系统。它有两个版本,RTX51FULL和RTX51TINY。
RTX51TINY是RTX51FULL的子集,仅支持按时间片循环任务调度,支持任务间信号传递,最大16个任务,可以并行地利用中断。具有以下等待操作:超时、另一个任务或中断的信号。但它不能进行信息处理,不支持存储区的分配和释放,不支持占先式调度。RTX51TINY一个很小的内核,完全集成在KEILC51编译器中。更重要的是,它仅占用800字节左右的程序存储空间,可以在没有外放数据存储器的8051系统中运行,但应用程序仍然可以访问外部存储器。RTX51TINY下文简称为内核。
1.2RTX51TINY的使用
内核完全集成在KEILC51编译器中,以系统函数调用的方式运行,因此可以很容易地使用KEILC51语言编写和编译一个多任务程序,并嵌入到实际应用系统中。内核提供以下函数供应用程序引用:
①charos_create_task(task_id);
②charos_delete_task(task_id);
③charos_send_signal(task_id);
④charisr_send_signal(task_id);
⑤charos_clear_signal(task_id);
⑥charos_running_task_id(void);
⑦charos_wait(event_sel,ticks,dummy)。
各函数的函数原型和具体意义。
2RTX51TINY内核分析
2.1任务状态
RTX51TINY的用户任务具有以下几个状态。
*RUNNING:任务处于运行中,同一时间只有一个任务可以处于“RUNNING”状态。
*READY:任务正在等待运行,在当前运行的任务时间片完成之后,RTX51TINY运行下一个处于“READY”状态的任务。
*WAITING:任务等待一个事件。如果所等待的事件发生的话,任务进入“READY”状态。
*DELETED:任务不处于执行队列。
*TIMEOUT:任务由于时间片用完而处于“TIMEOUT”状态,并等待再次运行。该状态写“READY”状态相似,但由于是内部操作过程使一个循环任务被切换而被冠以标记。
图1所示为任务状态转换图。
2.2同步机制
为了能保证任务在执行次序上的协调,必须采用同步机制。内核用以下事件
[1] [2] [3] [4] 下一页
推荐访问: