RTX51Tiny中文手册全文下载

上传人:公**** 文档编号:498166584 上传时间:2023-10-13 格式:DOCX 页数:28 大小:81.21KB
返回 下载 相关 举报
RTX51Tiny中文手册全文下载_第1页
第1页 / 共28页
RTX51Tiny中文手册全文下载_第2页
第2页 / 共28页
RTX51Tiny中文手册全文下载_第3页
第3页 / 共28页
RTX51Tiny中文手册全文下载_第4页
第4页 / 共28页
RTX51Tiny中文手册全文下载_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《RTX51Tiny中文手册全文下载》由会员分享,可在线阅读,更多相关《RTX51Tiny中文手册全文下载(28页珍藏版)》请在金锄头文库上搜索。

1、RTX51Tiny202中文手册RTX51Tiny其次版(版本2.02)是RTX51TinyLXX的升级版本,他完全集成在keil的集成开发环境中。RTX51Tiny是一款可以运行在大多数8051兼容的器件及其派生器件上的实时操作系统(准实时),相对及传统的开发方式而言,用实时操作系统进行开发是一种效率更高的方式。作为实时操作系统,RTX51Tiny虽然比较简陋,但它还是具备了一些实时操作系统的基本要素,完全可以充当我们进入实时操作系统(RTOS)世界的领路者,更为重要的是,它是免费的。:-)从本节起,我会接连将keil帮助文件中的RTX51Tiny其次版的运用手册翻译为中文,并发布给大家,供

2、大家参考。RTX51TinV2.02中文手册DartlRTX51TiIIy第2版用户手册第一章概述RTX51Tiny是一种实时操作系统(RTOS),可以用它来建立多个任务(函数)同时执行的应用。嵌入式应用系统常常有这种需求。RTOS可以供应调度、维护、同步等功能。实时操作系统能敏捷的调度系统资源,像CPU和存储器,并且供应任务间的通信。RTX51Tiny是一个功能强大的RTOS,且易于运用,它用于8051系列的微限制器。RT51Tiny的程序用标准的C语言构造,由KeilC51C编译器编译。用户可以很简洁的定义任务函数,而不须要进行困难的栈和变量结构配置,只需包含一个指定的头文件。一、Whaf

3、sNewRTX51Tiny其次版增加了很多新特性,使得实时软件的开发更加简洁,如: 支持CodeBanking该选项必需在CONF_TNY.A51配置文件中允许,还要在L51_BANK.A51文件中定义CodeBanking硬件配置。干脆任务切换新增加的函数(os_swich_task)允许一个任务马上切换到另一个处于就绪态的任务。 任务就绪标记新的库函数isr_set_ready和os_set_ready允许用户给一个任务设置就绪标记。就绪标记可以用于将一个正在等待时间间隔、超时或信号(参见os_wait)的任务置为就绪态,该任务在下一个运行时机复原。 CPU空闲模式支持 支持用户在定时器中

4、断的代码现在可以在定时器滴答中断中加入自己的代码。该选项必需在C0NF_TNY.A51中被允许 支持时间间隔调整当在os_wait中混合运用时间间隔和信号时,可用os_reSejinterVal函数调整时间间隔超时值。此外,RTX51Tiny进行了完全重构,以增加敏捷性,加快执行速度,削减代码和数据空间需求。当满意以下条件时,RTX51Tiny其次版在代码大小上的缩小尤为显著。1、禁止任务的时间轮转2、尽量少的RTX51Tiny系统函数调用3、禁止栈检查禁止任务时间轮转同时也降低了数据空间的需求。二、已解决的问题以下是在1.06版中已知的问题,已在其次版中得到了修正.1、在RTX51TinyI

5、.06中当在os_wait期间产生一个中断时,is_send_signal数可能会破坏就绪状态,导致任务挂起,等待从中断发来的信号,该问题在RTXTiny2中已解决。2、在RTX51Tinyl.06中,由于信号产生时时间间隔定时器的值不能被调整,因而KVL和K_SIG事务不能在os_wait中合并为一个调用。在RTXTiny2中,供应的OsjeseJintervaI函数允许调整间隔定时器。3、在RTX51Tinyl.06,TlMESHARlNG不能被设为1,假如设为1,并且在时间片轮转前产生了中断,时间轮转周期可能被破坏,成为延迟256个滴答数,而不是1个。该问题在第2版中解决。4、在RTX5

6、1Tinyl.06中,当用户中断执行的时间比系统时钟滴答时间长时,RTX51Tiny系统时钟定时器就会递归调用,这导致SAVEPSW和SAVEACC的覆盖,引起系统崩溃。该问题在RTX51Tiny第2版中解决。假如在应用中包含一个执行时间大于RTX51Tiny系统时钟定时间隔的中断程序,可以将LONG_USRNTR设为1。假如应用程序在高优先级中断程序中消耗大量时间,很可能会用到这个选项。三、产品规约(产品规格说明)参数范围最大任务数16最大活动任务16代码空间需求900字节最大数据空间需求7:Tj栈空间需求3字节/任务外部RAM需求0-?,J定时器0系统时钟因子1000-65535中断等待2

7、0个周期或更少上下文切换时间100700个周期四、工具需求以下为运用RTX51Tiny须要的应用软件:C51编译器A51宏汇编器BL51连接器或LX51连接器RTX51TNY.LIB和RTX51BT.LIB库文件必需保存于库路径下,通常,该路径是“KEIL”C51”LlB文件夹。RTX51TNY.H必需保存在包含路径下,通常是“KElL“C51”INC文件夹。五、目标需求RT51Tiny运行于大多数8051兼容的器件及其变种上。RTX51Tiny应用程序可以访问外部数据存储器,但内核无此需求。RTX51Tiny支持KeilC51编译器全部的存储模式。存储模式的选择只影响应用程序对象的位置,RT

8、X51Tiny系统变量和应用程序栈空间总是位于8051的内部存储区(DATA或IDATA区),一般状况下,应用程序应运用小(SMALL)模式。RTX51Tiny执行协作式任务切换(每个任务调用一个操作系统例程)和时间片轮转任务切换(每个任务在操作系统切换到下一个任务前运行一个固定的时间段),不支持抢先式任务切换以及任务优先级。RTX51FUIl支持抢先式任务切换。1、中断RTX51Tiny及中断函数并行运作,中断服务程序可以通过发送信号(用isjsenCLSignaI函数)或设置任务的就序标记(用isjseJredy函数)及RTX51Tiny的任务进行通信。犹如在一个标准的,没有RTX51Ti

9、ny的应用中一样,中断例程必需在RTX51Tiny应用中实现并允许,RTX51Tinyim没有中断服务程序的管理。RTX51Tiny运用定时器0、定时器0中断,和寄存器组1。假如在程序中运用了定时器0,则RTX51Tiny将不能正常运转。你可以在RTX51Tiny定时器0的中断服务程序后追加自己的定时器。中断服务程序代码(参见硬件定时器)RTX51Tiny假设总中断总是允许(EA=I)。RTX51Tiny库例程在须要时变更中断系统(EA)的状态,以确保RTX51Tiny的内部结构不被中断破坏。当允许或禁止总中断时,RTX51Tiny只是简洁的变更EA的状态,不保存并重装EA,EA只是简洁的被置

10、位或清除。因此,假如你的程序在调用RTX51例程前某止了中断,RTX51可能会失去响应。在程序的临界区,可能须要在短时间内禁止中断。但是,在中断禁止后,不能调用任何RTX51Tiny的例程。假如程序的确须要禁止中断,应当持续很短的时间。2、再入函数C51编译器供应对再入函数的支持,再入函数在再入堆栈中存储参数和局部变量,从而爱护递归调用或并行调用。RTX51Tiny不支持对C51再入栈的任何管理。因此,假如在程序中运用再入函数,必需确保这此函数不调用任何RTX51Tiny系统函数,且不被循环任务切掉所打断。仅用寄存器传递参数和保存自动变量的C函数具有内在的再入性,可以无限制的调用RTX51Ti

11、nyo非可再入C函数不能被超过一个以上的任务或中断过程调用。非再入C51函数在静态存储区段保存参数和自动变量(局部数据),该区域在函数被多个任务同时调用或递归调用时可能会被修改。假如确定多个任务不会递归(或同时)调用,则多个任务可以调用非再入函数。通常,这意味着必需禁止循环任务调度,且该非再入函数不能调用任何RTX51Tiny系统函数。附注: 假如希望在多个任务或中断中调用再入或非再入函数,应当禁止循环任务调度。3、C库例程可再入C51库函数可在任何任务中无限制的运用。对于非再入的C51库函数,同样有非可再入C函数的限制。4、多数据指针KeilC51编译器允许运用多数据指针(存在于很多8051

12、的派生芯片中),RTX51Tiny不供应对它们的支持.因此,在RTX51Tiny的应用程序中应当心运用多数据指针。从本质上说,必需确保循环任务切换不会在执行变更数据指针选择器的代码时发生。附注: 假如要运用多数据指针,应当禁止循环任务切换。5、运算单元KeilC51编译器允许运用运算单元(存在于很多8051的派生芯片中)。RTX51Tiny不供应对它们的支持。因此,在RTX51Tiny的应用程序中须当心运用运算单元。从本质上说,必需确保循环任务切换不会在执行用运算单元的代码时发生。附注:假如希望运用运算单元,应禁止循环任务切换。6、寄存器组RTX51Tiny安排全部的任务到寄存器0,因此,全部

13、的函数必需用C51的默认设置进行编译,REGISTERBANK(0)。中断函数可以运用剩余的寄存储组。然而,RTX51Tiny须要寄存器组区域中的6个永久性的字节,用于这些字节的寄存器组在配置文件中指定。RTX51Tiny2.02中文手册part2其次章实时程序实时程序必需对实时发生的事务快速响应。事务很少的程序不用实时操作系统也很简洁实现。随着事务的增加,编程的困难程度和难度也随之增大,这正是RToS的用武之地。一、单任务程序嵌入式程序和标准C程序都是从main函数起先执行的,在嵌入式应用中,main通常是一个无限循环,可以认为是一个持续执行的单个任务,例如:voidmain(void)(W

14、hiIe(I)/*恒久重复*/(do_something();/*执行do_something任务”*/)在这个例子里,do_something函数可以认为是一个单任务,由于仅有一个任务在执行,所以没有必要进行多任务处理或运用多任务操作系统。二、多任务程序很多C程序通过在一个循环里调用服务函数(或任务)来实现伪多任务调度。如:voidmain(void)intcounter=0;while(l)/*始终重复执行*/check_serialjo();/*检查串行输入*/process_serial_cmds();/*处理串行输入*/check_kbd_io();/*检查键盘输入*/process

15、_kbd_cmds();/*处理键盘输入*/adjust|ctrlr_parms():/*调整限制器*/counter+;/*增加计数器*/)该例中,每个函数执行一个单独的操作或任务,函数(或任务)按次序依次执行。当任务越来越多,调度问题就被自然而然的提出来了。例如,假如ProCeSs_kbd_cmds函数执行时间较长,主循环就可能须要较长的时间才能返回来执行CheCk_seicd_io函数,导致串行数据可能被丢失。当然,可以在主循环中更常见的调用Check-SeriaIJo函数以订正这个问题,但最终这个方法还是会失效三、RTX51Tiny程序当运用RtX51Tiny时,为每个任务建立独立的任务函数,例如:voidcheck_serial_io_task(void)_task_1/*该任务检测串行I/O*/)voidProCeSs_seriaLCrndS_task(VOid)_task_2*该任务处理串行吩咐*voidcheck_kbd_io_task(void)_task_3(*该任务检测键盘I/O*/Jvoidprocess_kbd_cmd

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号