外文翻译--RTX-51实时操作系统_第1页
外文翻译--RTX-51实时操作系统_第2页
外文翻译--RTX-51实时操作系统_第3页
外文翻译--RTX-51实时操作系统_第4页
外文翻译--RTX-51实时操作系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中文 4460 字 毕业设计 (论文 )外文资料翻译 嵌入式实时操作系统 RTX-51 的研究 学 生 姓 名: 班 级: 电自 047 学 号: 指 导 教 师: 所 在 单 位: 答 辩 日 期: 2008年 6 月 23日 1 附件 1:外文资料翻译译文 RTX-51 实时操作系统 RTX51是一个适用于 8051 家族的实时多任务操作系统。 RTX51使复杂的系统和软件设计以及有时间限制的工程开发变得简单。 RTX51是一个强大的工具,它可以在 单个 CPU上管理几个作业(任务)。 RTX51有两种不同的版本: RTX51 Full 允许 4个优先权任务的循环和切换,并且还能并行的利用中断功能。 RTX51支持信号传递,以及与系统邮箱和信号量进行消 息 传递。 RTX51的os_wait 函数 可以 等待 以 下事 件 : 中断 、 时间 到、来自 任务 或 中断的信号 、来自任务 或 中断的消 息、 信号量。 RTX51 Tiny 是 RTX51 Full 的一个 子集 。 RTX51 Tiny 可以 很容易 的 运 行在没 有 扩展外部存储器 的单 片机 系统上。 但 是,使用 RTX51 Tiny 的程 序 可以 访问外部 存储器 。 RTX51 Tiny允许循环任务切换,并且支持信号传递,还能并行的利用中断功能。 RTX51 Tiny 的 os_wait函数 可以 等待 以 下事 件 : 时间 到、 时间间 隔、来自 任务 或者 中断的信号。 以 后 的 部分 用 RTX-51 来指代 RTX-51 Full 和 RTX-51 Tiny。在两 者之 间不同的 地方会加 以 说明 。 导 言 许多 微处 理 器 应用 都需要 同时 执 行多个作业 或者 任务。 对 于 这 种应用,一个实时的操作系统( RTOS)允许系统 资源 ( CPU、内存等 ) 被灵活 的 分配给 几个任务。 RTX-51是一个强大的实时操作系统,并且 易 于应用。 RTX-51 可以工作在 8051系 列 的 微处 理 器 上。 你使用 标准 C语言编写 RTX-51应用程 序 ,并且用 C51来编译它 们 。 为了 具 体指明 任务的 标志 和优先 级 , 会 与 标准 C存 在一 点差别 。 RTX-51应用程 序要求 你 将 RTX51.H或者 RTX51TNY.H头文 件 包含 进 来 。 当 你在 Vision2集成环 境里打 开 目标选项对话 框 , 选 择 目标 操作系统以 后 , 链接 器 便 会 添 加 合 适的RTX-51库 文 件。 单任务程序 一个 标准 C程 序 从主 函数 开始 执 行。在 嵌入式 应用 里 , 主 函数 经常 被编写为一个 无穷 循环, 也 可以 被 认 为 是一个 连续 执 行的单个任 务。 例如 : 2 循环任务切换 RTX51 Tiny 允许 “ 准 并行 ” 的同时 执 行几个任务。 每 一个任务在 预 先 定义好 的时间 片内 得以 执 行。时间 到 使 正 在 执 行的任务 挂起 ,并使 另 一个任务开始 执行。 下 面 的 例 子 使用 了 循环任务切换的 技术 。 使用 RTX51的 C程 序 例 子 RTX51 从 任务 0( 分配给 作业 0)开始 执 行程 序 。 os_create_task 函数标 记任务 1( 分配给 作业 1) 为准 备 执 行。 这 两个任务是简单的计 数 循环。在一个时间片 结束 后 , RTX51 中断作业 0,并且开始 执 行作业 1。作业 1 在一个时间 片 结束 后 ,系统 重新 开始 执 行作业 0。 os_wait 函数 os_wait 函数 提供 了 一种 更 为 有 效 的 方 式 来给 几个任务 分配 可使用的 处 理 器 时间。 os_wait函数 中断 当 前正 在 运 行的任务,并且 等待 特定 的 事 件。在一个任务等待事 件的时间 里 , 其他 任务可以 被执 行。 等待时间到 RTX51使用 8051 的一个 定 时 器来 产生 一个循环的中断(时 钟周期 )。 响 应 3 os_wait 的 最 简单 事 件是时间 到 , 当 前正 在 执 行的任务 被指 定 的时 钟周期所 中断。 下 面 的 延 时 例 子 使用的是时间 到 。 使用 os_wait 函数编 程 这 个程 序 与上一个程 序 相似 ,不同的是作业 0 是在计 数器 0 完 成 计 数后 os_wait函数 所 中断的。 RTX51等待 3 个时 钟周期直 到 作业 0 准 备好再次 运 行 为 止 。在 这期 间,作业 1得以 执 行。作业 1 也调 用 了 os_wait 函数 , 等待 5 个时 钟周期 。 结果 是 : 定 时 器 0 每三 个时 钟周期增 加 一 次 ,计 数器 1则每 5个时 钟周期增 加 一 次 。 等待信号 os_wait 函数 的 另 一个 事 件是信号。信号 被 用 来 协调 任务。 直 到 另 一个任务发 出 信号,在 os_wait 函数 控 制 下 的任务 才结束 等待 状 态 。 如果 信号 预 先 就 被 发送 出 来 , 那么 任务 将 立即继 续 执 行。 使用 等待 信号的程 序 4 在 这 个 例 子当 中,任务 1等待 着由 任务 0发 出 的信号,并且以 此 来处 理计 数器 0产生 的 溢 出 。 抢先任务切换 RTX51 Full 提供 了 抢 先的任务切换, RTX51 Tiny 不具 备 这 个功能。 为了对多任务的 概念 有一个 完 整 的 了 解 ,在 这里对 抢 先任务切换 加 以 解释 。 在上一个 例 子 中,任务 1收 到 一个信号 后 不 会 立即 开始, 只 有 当 任务 0 发 生 了 时间 到事 件 后 ,任务 1才 会 启动 。 如果 任务 1被 赋予 了 比 任务 0 高 的优先 级 , 通过抢先任务切换, 如果 任务 1收 到了 信号, 就 会 立即 开始。优先 级 在任务 定义 中 被指定 ( 默 认 的优先 级 是 0)。 RTX51 的技术参 数 描述 RTX-51 Full RTX-51 Tiny 任务 数 量 最 多 256个 ; 可同时 激活 19个 16个 RAM需求 40 到 46 字 节 DATA空间 20 到 200字 节 IDATA空间 (用 户堆栈 ) 最 小 650字 节 XDATA空间 7字 节 DATA空 间 3倍 于任务 数 量的IDATA空 间 代 码 要求 6KB到 8KB 900字 节 5 硬 件 要求 定 时 器 0 或 定 时 器 1 定 时 器 0 系统时 钟 1000 到 40000个 周期 1000到 65535个 周期 中断 请 求 时间 小 于 50个 周期 小 于 20个 周期 任务切换时间 70 到 100个 周期 ( 快速任务) 180 到 700 个 周期 ( 标准 任务) 取决 于 堆栈 的 负 载 100到 700个 周期 取决 于 堆栈 的 负 载 邮箱系统 8个 分别 带 有 整 数 入 口的信箱 不 提供 内存 池 最 多 16个 内存 池 不 提供 信号量 8 1 位 不 提供 RTX51 程序概览 下列 表格 里列 出 了 RTX51 的一 些 函数 ,并 带 有简 要 的 说明 和 执 行时间( 针 对 RTX51 Full)。 函数 描述 CPU周期 isr_recv_message 收 到 消 息 ( 来自 中断 调用 ) 71(具 有消 息 ) isr_send_message 发 送 消 息 ( 来自 中断 调用) 53 isr_send_signal 给 任务发 去 信号( 来自中断 调 用) 46 os_attach_interrupt 分配 中断 资源给 任务 119 os_clear_signal 删除 一个以 前 发 送 的信号 57 os_create_task 将 一个任务 放 入 执 行队 列 中 302 os_create_pool 定义 一个 内存 池 644(大 小 20 10 字节 ) os_delete_task 从 执 行 队 列 中 移走 一个任务 172 os_detach_interrupt 移走 一个 分配 的中断 96 os_disable_isr 禁 止 8051硬 件中断 81 os_enable_isr 允许 8051硬 件中断 80 os_free_block 归 还一 块 存储 空 间 给内存 池 160 os_get_block 从 内存 池获 得一 块 存储 空 间 148 6 os_send_message 发 送 一 条 消 息 ( 从 任务中 调 用) 443(具有任务切换) os_send_signal 向 任务发 送 一个信号( 从 任务中 调 用) 408(具有任务切 换) 316(具有 快速 任务切换) 71( 没 有任务切换) os_send_token 发 送 一个信号量( 从 任务中 调 用) 343(具有 快速 任务切换) 94( 没 有任务切换 os_set_slice 设 置 RTX51系统时 钟 时间 片 67 os_wait 等待事 件 68(用于 等待 信号) 160(用于 等待 消 息 ) 标 记 的 函数 仅仅 在 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_tasks 返回 所 有的系统任务的 状 态 信 息 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 直接 读取 一个 对 象 的 数 据 7 can_receive 接 收 所 有 无 界 的 对 象 can_request 向 一个 指 定 的 对 象 发 送 一个 远 程 帧 can_send 通过 CAN总线 发 送 一个 对 象 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 的应用。在一个用 户 定义 的时间 段 里 , 交 通灯 受 到 控 制。在时间 段以 外 , 黄色 灯 闪烁 。 如果 一个 步 行 者 按 下了 请 求 按钮 , 交 通灯立即 进 入 行走 状 态 。否 则 , 交 通灯 持 续 不断的工作。 交通灯控制器命令 下 表 列 出 了 TRAFFIC所 支持的一系 列 命令 。 这 些 命令 由 ASCII文 本 字 符构 成 。 所 有的 命令必须 以 回 车符 来 终 止 。 命令 连续 的 文 本 描述 Display D 显示 时 钟 ,开始和 结束时间 Time T hh:mm:ss 设 置 当 前 时间 为 24小时 格 式 Start S hh:mm:ss 设 置 开始时间 为 24小时 格 式 。 交 通 控 制 通 常 在开始和 结束 的 时间 段 里 操作,在 此 时间 段 以 外 , 黄色 灯 闪烁 。 End E hh:mm:ss 设 置 结束 时间 为 24小时 格 式 软件 TRAFFIC 应用程 序 由 3个 文 件 组 成 , 这 些 文 件可以 8 KEILC51EXAMPLESTRAFFIC 文 件 夹 里 找 到 。 TRAFFIC.C 包含了 交 通灯 控 制程 序 , 被分成了 如 下 几个任务 : 任务 0 初始化 : 初 始 化 串 口 ,并且 启动 所 有 其他 的任务。 由 于 初 始 化只 需要进行一 次 ,任务 0将自 己 删除 自 己 。 任务 1 命令 : 任务 1完 成 交 通灯 控 制 器 的 命令 处 理。 这 个任务 负 责 控 制和 处理 接 收 到 的 串 行 命令 。 任务 2 时钟 : 控 制时 钟 。 任务 3 闪烁 :当 时间 落 在 活 跃 的时间 段 以 外后 , 黄色 灯 闪烁 。 任务 4 灯 :当 时间 落 在 活 跃 的时间 段 (在开始和 结束 时间 之 间) 里 以 后 ,控 制 交 通灯 的 相 位 。 任务 5 读按键 : 读取 行 人 按 下 的 按钮 ,并且 向 任务 4发 送 信号。 任务 6 退出 : 如果 在 串 行 指 令流 里 遇 到了 ESC字 符 ,任务 1获 得一个信号,并且 终 止 显示命令 。 SERIAL.C 执 行一个中断 来 驱 动 串 行 口 。 这 个 文 件 包含了函数 putchar 和 getkey 。 高 级 的 输 入 输 出 函数 printf 和 getline 调 用 这 些 基 本的 输 入 输 出 子函数 。 没 有中断 驱 动 串 行 输 入 输 出 , 交 通灯 应用程 序 也 会 启动 , 但 不 会 完 成 任务。 GETLINE.C 是一个 命令 行 编 辑 器 ,用 来编 辑 从 串 口 接 收 到 的 字 符 。 这 个 源文 件 也被 测量 应用程 序 所 使用。 TRAFFIC 工程 在 Vision2 环 境里 , 打 开 位 于 KEILC51EXAMPLESTRAFFIC 文 件 夹 里TRAFFIC.UV2文 件。在 工程窗口 的 文件 页 里将会 看 到源文 件。 在 目标选项里选 择 RTX-51 Tiny Real-Time OS。 选 择 工程 编译 或者 工具 栏 上的 编译 按钮 , 编译 TRAFFIC程 序 。 运行 TRAFFIC 9 程序 你可以 使用 Vision2 里 的 仿真 来 测 试 TRAFFIC应用程 序 。 下图 的变量 观察窗 口 允许你 观察驱 动 交 通灯 的 端 口 状 态 。 push_key 信号 函数 模拟 行 人 按 下 按钮 ,切换 交 通灯 进 入 行走 状 态 。 这 个 函数被 称 为 按下以通过 工具 按钮 。 使用 调试 函数编辑器 , 打 开 TRAFFIC.INC 文 件。在 目标选项 调试 初始化文件 里选 择 这 个 文 件,并且 定义 信号 函数 push_key, 端 口初 始 化 和 按钮工具 栏 。 注意 : 因 为 在 TRAFFIC.C 模 块 里 有一个 叫 时 钟 的 函数 , 所 以 VTREG符 号 Clock 后面 跟 一个 后 引 号( )。 现 在 运 行 TRAFFIC 应用程 序 。允许 查看 周期窗口更新 ,在程 序执 行 期 间, 通过观察窗 口 查看交 通灯 。 1 号串口 窗 口 显示 了 printf 的 输 出 ,并且允许你 输 入 下 表 里 描述 的 交 通灯 控 制器 的 命令 。 设 置 时间在开始 结束 时间 段 以 外 , 让黄色 灯 闪烁 。 RTX 内核调试 10 一个 RTX应用程 序 能 够 使用同 标准 8051 应用程 序 相 同的 方 法 和 命令 进 行 测试 。 当 你在 目标选项 目标 里选 择 了 一种操作系统, Vision2 能 够 允许 附 加 的调 试 特 性 : 一个 对话 框 列 出 了 操作系统 状 态 ,并且 当 一个任务是 活 跃 的时 候 ,你可以应用 _TaskRunning_调 试 函数来 终 止 程 序 的 运 行。 下 面 的 部分 通过 TRAFFIC例 程 来 解释 RTX的 调 试 。 停 止 程 序 的 运 行,复 位 CPU, 取 消 所 有断 点 。 一个 RTX-51应用可以 象 标准 应用一 样 使用 相 同的 方 式 来 测 试 。 你可以打开源文件 ,设 置 断 点 ,单 步 执 行。 TRAFFIC应用 从 任务 0 初始化 开始 启动 。 通过 Vision2 可以 完 全清楚 的 了 解 内 核 。你可以使用 菜 单 命令 外设 RTX Tiny任务列 表 来 显示 任务 状 态 。 对话 框 RTX Tiny 任务列 表 向 你 显示 了 如 下 信 息: 头 描述 TID 在任务 函数 定义 里 使用 task_id Task Name 任务 函数 名 字 State 函数 的任务 状 态; 在 下 一个 表 里 详细 解释 。 Wait for 任务 等待 的 事 件 ; 下列事 件是可能的( 也 可以是复 合 事 件) Event 时间到 : 任务 计 时器 被 设 置 为 持 续 的时间, 该 时间在 os_wait 函数 调 用中 被指 定 。 当 计 时器 减 为 0以 后 ,任务 便 进 入 准 备 状 态 . 时间间 隔 : 任务 计 时器 值 被 设 置 为 时间间 隔 , 该 时间间 隔 在os_wait 函数 调 用中 被指 定 。 当 计 时器 减 为 0以 后 ,任务 便 进 入 准备 状 态 . 11 信号 : os_wait 函数被 K_SIG 调 用,并且任务 等待 SIG=1。 Sig 分配给 任务的信号 位 的 状 态 Timer 分配给 任务的 计 时器 的 值 。计时 器 值 在 每 一个 RTX 系统时 钟周期后 减 1。 如果 计 时器 的 值 变 为 0,并且任务 等待 时间到 或 时间间 隔 事件, 那么 任务进 入 准备 状 态 。 Stack 当 任务 运行 时, 被 使用的 堆栈 指 针 ( SP)的 值 RTX-51 Tiny 包 含了 一个有 效 地 堆栈 管理 器 , 该 管理 器 在 “ RTX51 Tiny”用户指南 第 五 章: RTX51 Tiny, 堆栈 管理 器 中 被 解释 。 该手册 提供 了 详细 的 堆栈 值 的信 息 。 状 态 描述 Deleted 尚 未 启动 的任务 处 于 删除 状 态 。 Ready 等待执 行的任务 处 于 准备 状 态 。 当 正 在进行的任务 结束 后 ,RTX 启动 下 一个 处 在 准备 状 态 下 的任务。 Running 当 前正 在 运 行的任务 处 于 运行 状 态 ,在同一时 刻 , 仅仅 有一个任务 处 于 运行 状 态 。 Timeout 被 循环任务切换时间 到事 件 所 中断的任务 处 于 时间到 状 态 ,这 个 状 态 与 等待 状 态 等 价 ; 但 是,循环任务切换是 根 据 内部 的操作 过 程 被标 记 的。 Waiting 等待事 件的任务 处 于 等待 状 态 。 如果 一个任务 正 在 等待 的 事件发 生 了 , 该 任务 就 进 入 准备 状 态 。 只 有 当 在 _TakRunning_调 试 函数 声 明里指 定 的任务 正在 运行 时, 调试 断点 对话框 允许你 定义 停 止 程 序运 行的断 点 。 参考 “预定义 函数 ” ,可以 找 到 关 于_TakRunning_调 试 函数 的 详细 描述 。 仅仅 当 此 刻 正在 运行 的任务是 灯 的时 候 ,在 signalon函数里 的断 点 才 会 停 止程 序 的 执 行。 12 附件 2:外文原文 (复印件) RTX-51 Real-Time Operating System RTX51 is a multitasking real-time operating system for the 8051 family. RTX51simplifies system and software design of complex and time-critical projects.RTX51 is a powerful tool to manage several jobs (tasks) on a single CPU. Thereare two distinct versions of RTX51: RTX51 Full which performs both round-robin and preemptive task switchingwith 4 task priorities and can be operated with interrupt functions in parallel.RTX51 supports signal passing; message passing with a mailbox system andsemaphores. The os_wait function of RTX51 can wait for the following events:interrupt; timeout; signal from task or interrupt; message from task or interrupt;semaphore.RTX51 Tiny which is a subset of RTX51 Full. RTX51 Tiny easily runs onsingle-chip systems without off-chip memory. However, program using RTX51Tiny can access off-chip memory. RTX51 Tiny allows round-robin taskswitching, supports signal passing and can be operated with interrupt functionsin parallel. The os_wait function of RTX51 Tiny can wait for the following events: timeout; interval; signal from task or interrupt.The rest of this section uses RTX-51 to refer to RTX-51 Full and RTX-51 Tiny.Differences between the two are stated where applicable. Introduction Many microcontroller applications require simultaneous execution of multiplejobs or tasks. For such applications, a real-time operating system (RTOS) allowsflexible scheduling of system resources (CPU, memory, etc.) to several tasks.RTX-51 implements a powerful RTOS that is easy to use. RTX-51 works withall 8051 derivatives. You write and compile RTX-51 programs using standard C constructs andcompiling them with C51. Only a few deviations from standard C are requiredin order to specify the task ID and priority. RTX-51 programs also require thatyou include the RTX51.H or RTX51TNY.H header file. When you select in theVision2 dialog Options for Target - Target the operating system, the linker addsthe appropriate RTX-51 library file. Single Task Program A standard C program starts execution with the main function. In an embeddedapplication, main is usually coded as an endless loop and can be thought of as asingle task that is executed continuously. For example: 13 Round-Robin Task Switching RTX51 Tiny allows a quasi-parallel, simultaneous execution of several tasks.Each task is executed for a predefined timeout period. A timeout suspends theexecution of a task and causes another task to be started. The following exampleuses this round-robin task switching technique. Simple C Program using RTX51 RTX51 starts the program with task 0 (assigned to job0). The functionos_create_task marks task 1 (assigned to job1) as ready for execution. Thesetwo functions are simple count loops. After the timeout period has beencompleted, RTX51 interrupts job0 and begins execution of job1. This functioneven reaches the timeout and the system continues with job0. The os_wait Function The os_wait function provides a more efficient way to allocate the availableprocessor time to several tasks. os_wait interrupts the execution of the currenttask and waits for the specified event. During the time in which a task waits foran event, other tasks can be executed. Wait for Timeout RTX51 uses an 8051 timer in order to generate cyclic interrupts (timer ticks).The simplest event argument for os_wait is a timeout, where the currentlyexecuting task is interrupted for the specified number of timer ticks. Thefollowing uses timeouts for the time delay. Program with os_wait Function 14 This program is similar to the previous example with the exception that job0 isinterrupted with os_wait after counter0 has been incremented. RTX51 waitsthree timer ticks until job0 is ready for execution again. During this time, job1 isexecuted. This function also calls os_wait with a timeout of 5 ticks. The result:counter0 is incremented every three ticks and counter1 is incremented every fivetimer ticks. Wait for Signal Another event for os_wait is a signal. Signals are used for task coordination: ifa task waits with os_wait until another task issues a signal. If a signal waspreviously sent, the task is immediately continued. Program with Wait for Signal. In this example, task 1 waits for a signal from task 0 and therefore processes theoverflow from counter0. Preemptive Task Switching 15 The full version of RTX51 provides preemptive task switching. This feature isnot included in RTX51 Tiny. It is explained here to provide a completeoverview of multitasking concepts. In the previous example, task 1 is not immediately started after a signal hasarrived, but only after a timeout occurs for task 0. If task 1 is defined with ahigher priority than task 0, by means of preemptive task switching, task 1 isstarted immediately after the signal has arrived. The priority is specified in thetask definition (priority 0 is the default value). RTX51 Technical Data Description RTX-51 Full RTX-51 Tiny Number of tasks 256; max. 19 tasks active 16 RAM requirements 40 . 46 bytes DATA 20 . 200 bytes IDATA (user stack) min. 650 bytes XDATA 7 bytes DATA 3 * IDATA Code requirements 6KB . 8KB 900 bytes Hardware requirements timer 0 or timer 1 timer 0 System clock 1000 . 40000 cycles 1000 . 65535 cycles Interrupt latency 50 cycles 20 cycles Context switch time 70 . 100 cycles (fast task) 180 . 700 cycles (standard task) depends on stack load 100 . 700 cycles depends on stack load Mailbox system 8 mailboxes with 8 integer entries each not available Memory pool system up to 16 memory pools not available Semaphores 8 * 1 bit not available Overview of RTX51 Routines The following table lists some of the RTX-51 functions along with a briefdescription and execution timing (for RTX-51 Full). function Description CPU Cycles sr_recv_message Receive a message (call from interrupt). 71 (with message) isr_send_message Send a message (call from interrupt). 53 isr_send_signal Send a signal to a task (call from interrupt). 46 os_attach_interrupt Assign task to interrupt 119 16 source. os_clear_signal Delete a previously sent signal. 57 os_create_task Move a task to execution queue. 302 os_create_pool Define a memory pool. 644 (size 20 * 10 bytes) os_delete_task Remove a task from execution queue. 172 os_detach_interrupt Remove interrupt assignment. 96 os_disable_isr Disable 8051 hardware interrupts. 81 os_enable_isr Enable 8051 hardware interrupts. 80 os_free_block Return a block to a memory pool. 160 os_get_block Get a block from a memory pool. 148 os_send_message Send a message (call from task). 443 with task switch os_send_signal Send a signal to a task (call from tasks). 408 with task switch 316 with fast task switch 71 without task switch os_send_token Set a semaphore (call from task). 343 with fast task switch 94 without task switch os_set_slice Set the RTX-51 system clock time slice. 67 os_wait Wait for an event. 68 for pending signal 160 for pending message Function Description These functions are available only in RTX-51 Full. Additional debug and support functions in RTX-51 Full include the following: Function Description oi_reset_int_mask Disables interrupt sources external to RTX-51. oi_set_int_mask Enables interrupt sources external to RTX-51. os_check_mailbox Returns information about the state of a specific mailbox. os_check_mailboxes Returns information about the state of all mailboxes in the system. 17 os_check_pool Returns information about the blocks in a memory pool. os_check_semaphore Returns information about the state of a specific semaphore. os_check_semaphores Returns information about the state of all semaphores in the system. os_check_task Returns information about a specific task. os_check_tasks Returns information about all tasks in the system. CAN Functions The CAN functions are available only with RTX-51 Full. CAN controllerssupported include the Philips 82C200 and 80C592 and the Intel 82526. MoreCAN controllers are in preparation.on CAN Function Description can_bind_obj Bind an object to a task; task is started when object is received. can_def_obj Define communication objects. can_get_status Get CAN controller status. can_hw_init Initialize CAN controller hardware. can_read Directly read an objects data. can_receive Receive all unbound objects. can_request Send a remote frame for the specified object. can_send Send an object over the CAN bus can_start Start CAN communications. can_stop Stop CAN communications. can_task_create Create the CAN communication task. can_unbind_obj Disconnect the binding between a task and an object. can_wait can_write Wait for reception of a bound object. Write new data to an object without sending it. TRAFFIC: RTX-51 Tiny Example Program The TRAFFIC example is a pedestrian traffic light controller that shows theusage of multitasking RTX-51 Tiny Real-time operating system. D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论