- RTX51使用一个8051硬件计时器中断作为定时程序,产生的周期性中断用于驱动 RTX51时钟。RTX51不需要在你的程序中拥有一个主函数。它将自动开始执行任务 0。
- RTX51事件
即使是在等待一个任务的时间片到达时,你也可以使用 os_wait函数通知 RTX51它可以让另一个任务开始执行。这个功能中止正在运行的当前任务然后等待一个指定事件的发生。在这个时候、任意数量的其他任务仍可以执行。
KEIL 软件自带一个用于C51的基于时间片的实时系统RTX51 系列,包括RTX51 FULL、RTX51 Tiny、RTX51 Tiny2。
我使用的是RTX51 Tiny2,系统本身ROM不到1K,RAM占用几个字节吧。支持16个任务。RTX51是一个用于8051系列处理器多任务实时操作系统,由Keil自带。有二个版本, Full版和Tiny版。 RTX51 Tiny版是RTX51的一个子集,占用资源极低,采用时间片轮转任务切换和使用信号进行任务切换,和full版相比,不支持抢先式的任务切换,不包括消息历程没有存储器池分配程序。
RTX51 Tiny使用的是无优先级时间片轮询法,每个任务使用相同大小的时间片,但是时间片是怎样确定的呢?
RTX51 Tiny的配置参数(Conf_tny.a51文件中)中有INT_CLOCK和TIMESHARING两个参数。
这两个参数决定了每个任务使用时间片的大小:INT_CLOCK是时钟中断使用的周期数,也就是基本时间片;
TIMESHARING是每个任务一次使用的时间片数目。两者决定了一个任务一次使用的最大时间片。RTX51 Tiny是一个非抢占或多优先级的实时操作系统,是一个平级的时间片轮询实时操作系统,所有的任务平等运行。
- RTX51_TINY构建的应用程序没有main函数,是从任务0开始执行的。整体代码结构和其他RTOS的线程创建相似:由创建的第一个任务中去创建其余任务后删除自身任务。RTX51_TINY的程序用标准的C语言构造,由Keil C51 C编译器编译。用户可以很容易的定义任务函数,而不需要进行复杂的栈和变量结构配置,只需包含一个指定的头文件(rtx51tny.h),RTX51_TINY使用定时器0,定时器0中断,和寄存器组1.如果在程序中使用了定时器0,则RTX51_TINY将不能正常运行。
- RTX51 Tiny是一个为单片机的应用程序设计的一个实时内核,单片机应用程序中代码大小是非常重要的。RTX51 Tiny内核需要只有900字节代码的空间,是很适合不需要讯息、信号量,和内存管理这样的RTOS功能的应用程序。
- RTX51 Tiny是专为没有xdata可用单片机应用程序设计的。然而,RTX51 Tiny可用于任何8051目标系统。
- RTX51 Tiny支持所有的C51编译器的内存模块(SMALL, COMPACT, and LARGE)。操作系统变量和任务堆栈存储在内部DATA/IDATA内存。
- RTX51 Tiny执行多循环和协作的多任务。不支持抢先任务切换和任务优先级。
- RTX51 Tiny在没有其他硬件资源的使用Timer0的情况下,利用Timer0作为操作系统的计时标准。。
PK51是ARM公司开发的软件,基于8051架构的单片机,是具有代码编译,编译,连接,调试下载于一体的IDE集成开发环境。PK51又称Keil软件,操作简单易于学习。不管是专业的应用工程师,还是刚学习嵌入式软件开发的学生都能很快的开发出复杂工程。