《嵌入式实时操作系统RTX-51的研究外文翻译(中英文对照)》-公开DOC·毕业论文

上传人:zhuma****mei2 文档编号:136499810 上传时间:2020-06-28 格式:DOC 页数:23 大小:358KB
返回 下载 相关 举报
《嵌入式实时操作系统RTX-51的研究外文翻译(中英文对照)》-公开DOC·毕业论文_第1页
第1页 / 共23页
《嵌入式实时操作系统RTX-51的研究外文翻译(中英文对照)》-公开DOC·毕业论文_第2页
第2页 / 共23页
《嵌入式实时操作系统RTX-51的研究外文翻译(中英文对照)》-公开DOC·毕业论文_第3页
第3页 / 共23页
《嵌入式实时操作系统RTX-51的研究外文翻译(中英文对照)》-公开DOC·毕业论文_第4页
第4页 / 共23页
《嵌入式实时操作系统RTX-51的研究外文翻译(中英文对照)》-公开DOC·毕业论文_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《《嵌入式实时操作系统RTX-51的研究外文翻译(中英文对照)》-公开DOC·毕业论文》由会员分享,可在线阅读,更多相关《《嵌入式实时操作系统RTX-51的研究外文翻译(中英文对照)》-公开DOC·毕业论文(23页珍藏版)》请在金锄头文库上搜索。

1、w 毕业设计(论文)外文资料翻译嵌入式实时操作系统RTX-51的研究 学 生 姓 名: 班 级:电自 学 号: 指 导 教 师: 所 在 单 位: 答 辩 日 期: 年 6月 23日附件1:外文资料翻译译文RTX-51 实时操作系统RTX51是一个适用于8051 家族的实时多任务操作系统。RTX51使复杂的系统和软件设计以及有时间限制的工程开发变得简单。RTX51是一个强大的工具,它可以在单个CPU上管理几个作业(任务)。RTX51有两种不同的版本: RTX51 Full 允许4个优先权任务的循环和切换,并且还能并行的利用中断功能。RTX51支持信号传递,以及与系统邮箱和信号量进行消息传递。R

2、TX51的os_wait 函数可以等待以下事件:中断、时间到、来自任务或中断的信号、来自任务或中断的消息、信号量。 RTX51 Tiny 是RTX51 Full 的一个子集。RTX51 Tiny 可以很容易的运行在没有扩展外部存储器的单片机系统上。但是,使用RTX51 Tiny 的程序可以访问外部存储器。RTX51 Tiny允许循环任务切换,并且支持信号传递,还能并行的利用中断功能。RTX51 Tiny 的os_wait函数可以等待以下事件:时间到、时间间隔、来自任务或者中断的信号。 以后的部分用RTX-51 来指代RTX-51 Full 和RTX-51 Tiny。在两者之间不同的地方会加以说

3、明。 导 言 许多微处理器应用都需要同时执行多个作业或者任务。对于这种应用,一个实时的操作系统(RTOS)允许系统资源(CPU、内存等)被灵活的分配给几个任务。RTX-51是一个强大的实时操作系统,并且易于应用。RTX-51 可以工作在8051系列的微处理器上。 你使用标准C语言编写RTX-51应用程序,并且用C51来编译它们。为了具体指明任务的标志和优先级,会与标准C存在一点差别。RTX-51应用程序要求你将RTX51.H或者RTX51TNY.H头文件包含进来。当你在Vision2集成环境里打开目标选项对话框,选择目标操作系统以后,链接器便会添加合适的RTX-51库文件。 单任务程序 一个标

4、准C程序从主函数开始执行。在嵌入式应用里,主函数经常被编写为一个无穷循环,也可以被认为是一个连续执行的单个任务。例如: 循环任务切换 RTX51 Tiny 允许“准并行”的同时执行几个任务。每一个任务在预先定义好的时间片内得以执行。时间到使正在执行的任务挂起,并使另一个任务开始执行。下面的例子使用了循环任务切换的技术。使用RTX51的C程序例子 RTX51 从任务0(分配给作业0)开始执行程序。os_create_task 函数标记任务1(分配给作业1)为准备执行。这两个任务是简单的计数循环。在一个时间片结束后,RTX51 中断作业0,并且开始执行作业1。作业1 在一个时间片结束后,系统重新开

5、始执行作业0。 os_wait 函数 os_wait 函数提供了一种更为有效的方式来给几个任务分配可使用的处理器时间。os_wait函数中断当前正在运行的任务,并且等待特定的事件。在一个任务等待事件的时间里,其他任务可以被执行。 等待时间到 RTX51使用8051 的一个定时器来产生一个循环的中断(时钟周期)。响应os_wait 的最简单事件是时间到,当前正在执行的任务被指定的时钟周期所中断。下面的延时例子使用的是时间到。 使用os_wait 函数编程 这个程序与上一个程序相似,不同的是作业0 是在计数器0 完成计数后os_wait函数所中断的。RTX51等待3 个时钟周期直到作业0 准备好再

6、次运行为止。在这期间,作业1得以执行。作业1 也调用了os_wait 函数,等待5 个时钟周期。结果是:定时器0 每三个时钟周期增加一次,计数器1则每5个时钟周期增加一次。 等待信号 os_wait 函数的另一个事件是信号。信号被用来协调任务。直到另一个任务发出信号,在os_wait 函数控制下的任务才结束等待状态。如果信号预先就被发送出来,那么任务将立即继续执行。 使用等待信号的程序 在这个例子当中,任务1等待着由任务0发出的信号,并且以此来处理计数器0产生的溢出。 抢先任务切换 RTX51 Full 提供了抢先的任务切换,RTX51 Tiny 不具备这个功能。为了对多任务的概念有一个完整的

7、了解,在这里对抢先任务切换加以解释。 在上一个例子中,任务1收到一个信号后不会立即开始,只有当任务0 发生了时间到事件后,任务1才会启动。如果任务1被赋予了比任务0 高的优先级,通过抢先任务切换,如果任务1收到了信号,就会立即开始。优先级在任务定义中被指定(默认的优先级是0)。 RTX51 的技术参数 描述RTX-51 FullRTX-51 Tiny任务数量最多256个;可同时激活19个 16个 RAM需求40 到46 字节DATA空间 20 到200字节IDATA空间(用户堆栈) 最小650字节XDATA空间 7字节DATA空间 3倍于任务数量的IDATA空间 代码要求6KB到8KB 900

8、字节 硬件要求定时器0 或定时器1 定时器0 系统时钟1000 到40000个周期 1000到65535个周期 中断请求时间小于50个周期 小于20个周期 任务切换时间70 到100个周期(快速任务) 180 到700 个周期(标准任务)取决于堆栈的负载 100到700个周期 取决于堆栈的负载 邮箱系统8个分别带有整数入口的信箱 不提供 内存池最多16个内存池 不提供 信号量81 位 不提供 RTX51 程序概览 下列表格里列出了RTX51 的一些函数,并带有简要的说明和执行时间(针对RTX51 Full)。 函数 描述CPU周期isr_recv_message收到消息(来自中断调用)71(具

9、有消息)isr_send_message发送消息(来自中断调用)53 isr_send_signal给任务发去信号(来自中断调用) 46 os_attach_interrupt分配中断资源给任务 119 os_clear_signal删除一个以前发送的信号 57 os_create_task将一个任务放入执行队列中 302 os_create_pool定义一个内存池 644(大小2010 字节) os_delete_task从执行队列中移走一个任务172 os_detach_interrupt移走一个分配的中断 96 os_disable_isr禁止8051硬件中断81 os_enable_i

10、sr允许8051硬件中断80 os_free_block归还一块存储空间给内存池 160 os_get_block从内存池获得一块存储空间 148 os_send_message发送一条消息(从任务中调用)443(具有任务切换) os_send_signal向任务发送一个信号(从任务中调用)408(具有任务切换) 316(具有快速任务切换) 71(没有任务切换) os_send_token发送一个信号量(从任务中调用)343(具有快速任务切换) 94(没有任务切换os_set_slice设置RTX51系统时钟时间片67 os_wait等待事件68(用于等待信号) 160(用于等待消息) 标记的

11、函数仅仅在RTX51 Full中具备RTX51 Full里附加的调试和支持函数见下表: 函数 描述 oi_reset_int_mask禁止RTX-51 的外部中断资源 oi_set_int_mask允许RTX-51 的外部中断资源os_check_mailbox返回指定信箱的状态信息 os_check_mailboxes返回所有的系统信箱的状态信息 os_check_pool返回内存池中的块信息 os_check_semaphore返回指定信号量的状态信息 os_check_semaphores返回所有的系统信号量信息 os_check_task返回指定任务的状态信息 os_check_tas

12、ks返回所有的系统任务的状态信息 CAN 函数 CAN函数仅在RTX-51 Full中提供。CAN控制器支持非利浦82C200和80C592以及英特尔82526。更多的CAN控制器正在准备中。 CAN函数 描述 can_bind_obj为一个任务绑定一个对象;当对象被接收的时候,任务启动 can_def_obj定义通信对象 can_get_status获取CAN控制器状态 can_hw_init初始化CAN控制器硬件 can_read直接读取一个对象的数据 can_receive接收所有无界的对象 can_request向一个指定的对象发送一个远程帧 can_send通过CAN总线发送一个对象

13、 can_start开始CAN通信 can_stop结束CAN通信 can_task_create创建CAN通信任务 can_unbind_obj断开任务和对象之间的绑定 can_wait等待一个约束的对象被接收 can_write向一个对象写入新数据,不用发送 TRAFFIC:使用RTX-51 Tiny 的例程 TRAFFIC例程是一个行人信号灯控制器,通过它来说明多任务实时操作系统RTX-51 Tiny 的应用。在一个用户定义的时间段里,交通灯受到控制。在时间段以外,黄色灯闪烁。如果一个步行者按下了请求按钮,交通灯立即进入行走状态。否则,交通灯持续不断的工作。 交通灯控制器命令 下表列出了

14、TRAFFIC所支持的一系列命令。这些命令由ASCII文本字符构成。所有的命令必须以回车符来终止。 命令 连续的文本 描述 DisplayD显示时钟,开始和结束时间 TimeT hh:mm:ss设置当前时间为24小时格式 StartS hh:mm:ss设置开始时间为24小时格式。交通控制通常在开始和结束的时间段里操作,在此时间段以外,黄色灯闪烁。 EndE hh:mm:ss设置结束时间为24小时格式 软件 TRAFFIC 应用程序由3个文件组成,这些文件可以KEILC51EXAMPLESTRAFFIC文件夹里找到。TRAFFIC.C 包含了交通灯控制程序,被分成了如下几个任务:n 任务0 初始化:初始化串口,并且启动所有其他的任务。由于初始化只需要进行一次,任务0将自己删除自己。n 任务1 命令:任务1完成交通灯控制器的命令处理。这个任务负责控制和处理接收到的串行命令。 n 任务2 时钟:控制时钟。 n 任务3 闪烁:当时间落在活跃的时间段以外后,黄色灯闪烁。 n 任务4 灯:当时间落在活跃的时间段(在开始和结束时间之间)里以后,控制交通灯的相位。 n 任务5 读按键:读取行人按下的按钮,并且向任务4发送信号。 n 任务6 退出:如果在串行指令流里遇到了ESC字符,任务1获得一个信号,并且终止显示命令。

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

当前位置:首页 > 学术论文 > 毕业论文

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