初识RTX51_TINY实时操作系统

介绍RTX51_TINY:

在偶然的情况下看到了有人在51上运用一款实时操作系统,怀着好奇的心态去了解一下。它的大名叫:RTX51,有两个版本TINY和FULL,本文章主要对tiny版本做一个简单的介绍。RTX51 Tiny是一个非抢占或多优先级的实时操作系统,是一个平级的时间片轮询实时操作系统,所有的任务平等运行。

搭建准备工作:

首先要使用这个操作系统需要做一些前期准备:keil4 C51,一块51开发板。在keil C51上需要做些配置,在魔术棒中Target中operating System中设置RTX51_tiny,main.c文件引用#include“rtx51tny.h”,编译发现** FATAL ERROR L257: RTX51-TINY REQUIRES UPGRADE TO PK51*这个错误的话,原因在破解软件时选择了不带有操作系统的版本注册,此时可以用管理员身份打开keil4 C51中file中license management,点击之前注册的license,进行Uninstall按钮删除注册好的,再重新利用注册机重新注册,选择如下图中的MDK版本注册即可编译通过。

简单代码示例:

准备好前期工作,就开始进行编写代码了,这里引用一个简单的灯任务的调度过程。

#include "rtx51tny.h"
#include <reg52.h>

sbit led0 = P2^0;
sbit led1 = P2^1;
sbit led2 = P2^2;

/* 在CONF_TINY.A51中可配置INT_CLOCK来决定中断使用的周期数也就是时间片,在12HZH的晶振下,INT_CLOCK EQU 10000为10ms,TIMESHARING EQU 5表示任务的时间片最大为50ms */

/* os_create_task(task_id); 创建task_id号任务 
   os_delete_task(task_id); 删除task_id号任务 */		
void main_job() _task_ 0   
{   
	os_create_task(1);//task1   
		
	os_create_task(2);//task2   
		
	os_create_task(3);//task3  
		
	os_delete_task(0);//delet task0  
}   
  
/* os_wait(typ, ticks,dummy); typ有三个选项K_SIG(启动信号),K_TMO(超时信号),K_IVL(周期信号)或是组合使用。ticks为等待的滴答时间,设置为10的话就是基准时间片*10,dummy未使用,默认设置为0* */
void led0_job() _task_ 1    
{     
	led0 = 0;
	for (;;)   	
	{   
		led0 = !led0; 
		os_wait(K_TMO,100,0); //延时1s
	}    
}   
  
void led1_job() _task_ 2    
{   	
	led1 = 0;
	for (;;)   
	{  	
  	    led1 = !led1;	
		os_wait(K_TMO,150,0);  	//延时1.5s	
	}   
}  

void led2_job() _task_ 3    
{   
	led2 = 0;
	for (;;)   
	{   
		led2 = !led2; 		
		os_wait(K_TMO,150,0);	//延时1.5s
	}   
}  

在传统的C语言程序入口都是从main函数作为入口,而RTX51_TINY构建的应用程序没有main函数,是从任务0开始执行的。整体代码结构和其他RTOS的线程创建相似:由创建的第一个任务中去创建其余任务后删除自身任务。RTX51_TINY的程序用标准的C语言构造,由Keil C51 C编译器编译。用户可以很容易的定义任务函数,而不需要进行复杂的栈和变量结构配置,只需包含一个指定的头文件(rtx51tny.h),RTX51_TINY使用定时器0,定时器0中断,和寄存器组1.如果在程序中使用了定时器0,则RTX51_TINY将不能正常运行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值