码迷,mamicode.com
首页 > 其他好文 > 详细

RTX51 Tiny实时操作系统学习笔记—初识RTX51 Tiny

时间:2014-06-26 21:19:17      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   http   tar   

 一,RTX51 Tiny简单介绍

   RTX51 Tiny是一种实时操作系统(RTOS),能够用它来建立多个任务(函数)同一时候运行的应用(从宏观上看是同一时候运行的,但从微观上看,还是独立运行的)。嵌入式应用系统常常有这样的需求。RTOS能够提供调度、维护、同步等功能。
  实时操作系统能灵活的调度系统资源,像CPU存储器,而且提供任务间的通信。RTX51 Tiny是一个功能强大的RTOS,且易于使用,它用于8051系列的微控制器。该RTOS最多支持16个任务,基于RTX51 Tiny构建的应用程序没有main( )函数,是从任务0開始运行的。
  RTX51 Tiny的程序用标准的C语言构造,由Keil C51 C编译器编译。用户能够非常easy的定义任务函数,而不须要进行复杂的栈和变量结构配置,仅仅需包括一个指定的头文件(rtx51tny.h)。
 RTX51 Tiny使用定时器0定时器0中断,和寄存器组1。假设在程序中使用了定时器0,则RTX51 Tiny将不能正常运转。你能够在定时器0的中断服务程序后追加自己的定时器0中断服务程序代码(改动配置文件Conf_tny.A51)。
二,单任务、多任务和基于RTX51 Tiny程序的比較
单任务程序:
 嵌入式程序和标准C程序都是从main函数開始运行的,在嵌入式应用中,main一般是一个无限循环,能够觉得是一个持续运行的单个任务,比如:
void main(void)
{
	while(1){
		do_something( );   //一直循环运行do_something任务
	}
}

多任务程序:
很多C程序通过在一个循环里调用服务函数(或任务)来实现伪多任务调度。如:
void main(void)
{
	while(1){
		key_scan( );    //键盘扫描
		do_key( );      //处理按键事件
		ctr_adj( );     //调整控制器
	}
}
   该例中,每一个函数运行一个单独的操作或任务,函数(或任务)按次序依次运行。当任务越来越多,调度问题就被自然而然的提出来了。比如,假设ctr_adj( )函数运行时间较长,主循环就可能须要较长的时间才干返回来运行key_scan( )函数,导致遗漏部分按键事件。当然,能够在主循环中更频繁的调用key_scan( )函数以纠正这个问题,但终于这种方法还是会失效。

RTX51 Tiny程序:

当使用Rtx51Tiny时,为每一个任务建立独立的任务函数,比如:

void job0(void)  _task_  0
{
	os_create_task(1);    //创建任务1
	os_create_task(2);    //创建任务2
	os_create_task(3);    //创建任务3
	os_delete_task(0);    //删除任务0
}

void  job1(void)  _task_  1      //键盘扫描任务
{
	while(1){
		key_scan( );  
	}
}

void  job2(void)  _task_  2      //处理按键事件任务
{
	while(1){
		do_key( );    
	}
}

void  job3(void)  _task_  3      //调整控制器任务
{
	while(1){
		ctr_adj( );     
	}
}

   该例中,每一个函数定义为一个RTX51 Tiny任务。RTX51 Tiny程序不须要main函数,取而代之,RTX51 Tiny从任务0開始运行。在典型的应用中,任务0简单的建立全部其它的任务。


   学习RTX51 Tiny的书籍比較少,事实上最好的学习资料是Keil uVision中自带的用户手冊,按下图所看到的方式可打开:

bubuko.com,布布扣


bubuko.com,布布扣               bubuko.com,布布扣






RTX51 Tiny实时操作系统学习笔记—初识RTX51 Tiny,布布扣,bubuko.com

RTX51 Tiny实时操作系统学习笔记—初识RTX51 Tiny

标签:style   class   blog   code   http   tar   

原文地址:http://www.cnblogs.com/mengfanrong/p/3807966.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!