RTX51小型实时操作系统介绍

RTX51小型实时操作系统介绍

ID:41094402

大小:58.50 KB

页数:7页

时间:2019-08-16

RTX51小型实时操作系统介绍_第1页
RTX51小型实时操作系统介绍_第2页
RTX51小型实时操作系统介绍_第3页
RTX51小型实时操作系统介绍_第4页
RTX51小型实时操作系统介绍_第5页
资源描述:

《RTX51小型实时操作系统介绍》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、RTX51小型实时操作系统介绍(连载1)有二个不同的RTX51版本可以使用∶RTX51Full使用多于四个任务优先权同时完成存在时间片轮转调度和抢先式的任务切换。RTX51工作在与中断功能类似的状态下。信号和消息可以通过邮箱系统在任务之间互相传递。你可以从一个可分配存储区中分配和释放内存。你可以强迫一个任务等待中断、超时或者是从另一个任务或中断发出的信号或消息。RTX51Tiny是RTX51的一个子集,它可以很容易地在没有任何外部存储器的单片8051系统上运行。除了下列例外,RTX51Tiny支持许多RTX51中的特性。RTX51Tiny仅支持时间片轮转任务切换和使用信

2、号进行任务切换。不支持抢先式的任务切换。不包括消息历程。没有可分配存储区分配程序。许多微处理器应用程序要求同时执行两个工作或任务。对于这样的应用程序,一个实时操作系统(RTOS)允许灵活的分配系统资源(中央处理器、存储器、等等.)给各个任务。RTX51是一个很容易使用的功能强大的实时操作系统。RTX51可以运行于所有的8051派生机型。你可以使用标准C语言编写和编译一个程序并使用C51构造、编译他们,仅在指定任务标识符和优先权上有一点差别。.RTX51程序也要求你在程序中用include命令引入实时管理的头文件并使用BL51linker/locator进行连接和选择适当

3、的RTX51库文件。 RTX51小型实时操作系统介绍(连载2)单任务程序一个标准的C语言程序从主函数开始执行。在一个嵌入式应用中,主函数通常是一段无限循环的代码,可以认为是一个连续执行的单独任务。例如∶intcounter;voidmain(void){counter=0;while(1){/*始终重复*/counter++;/*计数器加1*/}}时间片轮转程序一种更高级的C语言程序可以在不使用实时操作系统的情况下实现时间片轮转拟多任务系统。在这种系统中、任务或功能被一段无限循环程序重复调用。例如∶intcounter;voidmain(void){counter=0;

4、while(1){/*始终重复*/check_serial_io();process_serial_cmds();/*处理串行输入*/check_kbd_io();process_kbd_cmds();/*处理键盘输入*/adjust_ctrlr_parms();/*adjustthecontroller*/counter++;/*incrementcounter*/}}用RTX51进行时间片轮转调度rtx51也能完成多重任务时间片轮转,而且允许准并行执行多个无限循环或任务。任务并不是并行执行的而是按时间片执行的。可利用的中央处理器时间被分成时间片由RTX51分配一个时

5、间片给各个任务。每个任务允许执行一个预先确定的时间。然后,rtx51切换到另一准备运行的任务并且允许这个任务执行片刻。时间片非常短、通常为几个毫秒。因此、它表现得如同各个任务是同时地执行的。RTX51使用一个8051硬件计时器中断作为定时程序,产生的周期性中断用于驱动RTX51时钟。RTX51不需要在你的程序中拥有一个主函数。它将自动开始执行任务0。如果你确实有一个主函数,你必须利用RTX51Tiny中的os_create_task函数或RTX51中的os_start_system函数手工启动RTX51。下面的例子显示一个只使用时间片轮转任务调度的简单的RTX51应用程

6、序。在本程序里的二个任务是简单的计数器回路。rtx51启动时执行函数名为job0的任务0。这个函数添加了另一个叫做job1的任务。在job0运行一会儿以后、RTX51切换到job1。在job1运行一会儿以后、RTX51转回到job0。这个过程将不确定地重复下去。#includeintcounter0;intcounter1;voidjob0(void)_task_0{os_create(1);/*marktask1asready*/while(1){/*loopforever*/counter0++;/*updatethecounter*/}}v

7、oidjob1(void)_task_1{while(1){/*loopforever*/counter1++;/*updatethecounter*/}}RTX51事件即使是在等待一个任务的时间片到达时,你也可以使用os_wait函数通知RTX51它可以让另一个任务开始执行。这个功能中止正在运行的当前任务然后等待一个指定事件的发生。在这个时候、任意数量的其他任务仍可以执行。使用RTX51的时间溢出事件你可以用os_wait函数等待的最简单的事件是RTX51时钟报时信号周期溢出。这类事件可被用于任务中需要延迟一段时间的地方。这可用于查询一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。