您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

KEIL RTX51 TINY内核的分析与应用

时间:2007-1-20栏目:电子通信论文

  摘要:简要介绍RTX51TINY的基本情况和使用方法;详细分析这个内核的任务管理和内存管理的运行机制,并给出其主要代码流程图。
  关键词:单片机实时操作系统的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] 下一页

下页更精彩:1 2 3 4 下一页