学 校 编 码 :10384 分 类 号 密 级 学 号 :23120061152512 UDC 硕 士 学 位 论 文 以 太 网 技 术 在 嵌 入 式 系 统 中 的 应 用 研 究 Research on the Application of Ethernet in Embedded Systems 朱 旭 峰 指 导 教 师 姓 名 : 周 剑 扬 专 业 名 称 : 电 路 与 系 统 论 文 提 交 日 期 : 论 文 答 辩 时 间 : 学 位 授 予 日 期 : 答 辩 委 员 会 主 席 : 评 阅 人 : 副 教 授 2009 年 5 月
厦 门 大 学 学 位 论 文 原 创 性 声 明 本 人 呈 交 的 学 位 论 文 是 本 人 在 导 师 指 导 下, 独 立 完 成 的 研 究 成 果 本 人 在 论 文 写 作 中 参 考 其 他 个 人 或 集 体 已 经 发 表 的 研 究 成 果, 均 在 文 中 以 适 当 方 式 明 确 标 明, 并 符 合 法 律 规 范 和 厦 门 大 学 研 究 生 学 术 活 动 规 范 ( 试 行 ) 另 外, 该 学 位 论 文 为 ( ) 课 题 ( 组 ) 的 研 究 成 果, 获 得 ( ) 课 题 ( 组 ) 经 费 或 实 验 室 的 资 助, 在 ( ) 实 验 室 完 成 ( 请 在 以 上 括 号 内 填 写 课 题 或 课 题 组 负 责 人 或 实 验 室 名 称, 未 有 此 项 声 明 内 容 的, 可 以 不 作 特 别 声 明 ) 声 明 人 ( 签 名 ): 年 月 日
厦 门 大 学 学 位 论 文 著 作 权 使 用 声 明 本 人 同 意 厦 门 大 学 根 据 中 华 人 民 共 和 国 学 位 条 例 暂 行 实 施 办 法 等 规 定 保 留 和 使 用 此 学 位 论 文, 并 向 主 管 部 门 或 其 指 定 机 构 送 交 学 位 论 文 ( 包 括 纸 质 版 和 电 子 版 ), 允 许 学 位 论 文 进 入 厦 门 大 学 图 书 馆 及 其 数 据 库 被 查 阅 借 阅 本 人 同 意 厦 门 大 学 将 学 位 论 文 加 入 全 国 博 士 硕 士 学 位 论 文 共 建 单 位 数 据 库 进 行 检 索, 将 学 位 论 文 的 标 题 和 摘 要 汇 编 出 版, 采 用 影 印 缩 印 或 者 其 它 方 式 合 理 复 制 学 位 论 文 本 学 位 论 文 属 于 : ( )1. 经 厦 门 大 学 保 密 委 员 会 审 查 核 定 的 保 密 学 位 论 文, 于 年 月 日 解 密, 解 密 后 适 用 上 述 授 权 ( )2. 不 保 密, 适 用 上 述 授 权 ( 请 在 以 上 相 应 括 号 内 打 或 填 上 相 应 内 容 保 密 学 位 论 文 应 是 已 经 厦 门 大 学 保 密 委 员 会 审 定 过 的 学 位 论 文, 未 经 厦 门 大 学 保 密 委 员 会 审 定 的 学 位 论 文 均 为 公 开 学 位 论 文 此 声 明 栏 不 填 写 的, 默 认 为 公 开 学 位 论 文, 均 适 用 上 述 授 权 ) 声 明 人 ( 签 名 ): 年 月 日
摘 要 摘 要 网 络 存 储 技 术 是 最 近 几 年 高 科 技 行 业 最 热 门 的 技 术 之 一 随 着 计 算 机 技 术 和 网 络 技 术 的 发 展, 越 来 越 多 的 信 息 被 数 据 化 这 些 数 据 化 的 信 息 需 要 能 长 时 间 保 存, 并 且 能 快 速 方 便 地 检 索 电 子 商 务 电 子 政 务 等 信 息 化 技 术 的 推 广 对 数 据 的 存 储 容 量 速 度 以 及 安 全 提 出 了 更 高 的 要 求 存 储 技 术 也 从 本 地 存 储 发 展 到 网 络 存 储 ARC810 处 理 器 是 台 湾 信 亿 科 技 有 限 公 司 生 产 的, 基 于 LEON2 内 核 的 一 款 SOC( System On Chip) 芯 片 本 论 文 主 要 承 担 了 宜 展 电 子 ( 厦 门 ) 有 限 公 司 的 网 络 存 储 项 目 的 底 层 部 分, 即 实 现 RTEMS(Real Time Executive for Multiprocessor Systems) 操 作 系 统 的 移 植, 并 在 RTEMS 操 作 系 统 下 实 现 Rhine 快 速 以 太 网 卡 的 驱 动 程 序 的 开 发 此 外, 本 论 文 还 针 对 当 前 ARC810 芯 片 的 调 试 工 具 的 不 足, 设 计 和 实 现 了 基 于 以 太 网 调 试 的 调 试 方 案, 对 ARC810 芯 片 的 交 叉 调 试 工 具 作 了 很 好 的 补 充 和 完 善 本 论 文 的 特 色 与 创 新 点 主 要 体 现 在 以 下 几 个 方 面 : 1) 在 ARC810 平 台 下, 实 现 了 RTEMS 下 的 Rhine 快 速 以 太 网 卡 的 驱 动 程 序, 并 对 其 进 行 了 测 试 以 及 优 化 2) 针 对 ARC810 现 有 调 试 工 具 的 不 足, 设 计 和 实 现 了 一 种 基 于 以 太 网 的 交 叉 调 试 工 具 关 键 词 :RTEMS; 驱 动 程 序 ; 交 叉 调 试
Abstract Abstract Network storage is one of the most popular technologies in high-tech industry in recent years. With the development of the computer and network technology, more and more information must be handled as data which is stored in the computer. This data may need to be saved for a long time and can be retrieved quickly and easily. The popularity of the information technologies, such as e-commerce and e-government, requests the data storage technology to have much more capacity, speed and security. Storage technology also develops from local storage to network storage. ARC810 processor is a SOC chip based on LEON2 core and it is produced by ACARD Technology Corporation in Taiwan. This paper mainly implements the bottom part of the Yizhan(Xiamen) electronic Company s network storage project. The mainly work consists of the transplant of RTEMS to ARC810 board, implementation the driver of the Rhine fast ethernet network adapter under RTEMS. In addition, this paper designs and implements a cross debug tool based on ethernet in order to fix the deficiencies of the ARC810 s current cross debug tool. The characteristics and innovations in this thesis are as follows: 1) implement the driver of the Rhine fast ethernet network adapter under RTEMS on ARC810 board, also test and optimization the driver. 2) design and implement a cross debug tool based on ethernet to fix the deficiencies of the current tool of ARC810. Key Words: RTEMS; Driver; Cross Debug
目 录 目 录 第 一 章 绪 论...1 1.1 提 出 背 景...1 1.2 论 文 结 构 安 排...2 1.3 研 究 成 果...3 第 二 章 RTEMS 实 时 操 作 系 统 及 其 开 发 环 境...4 2.1 嵌 入 式 实 时 操 作 系 统 RTEMS...4 2.1.1 RTEMS 的 特 点...4 2.1.2 与 常 见 实 时 操 作 系 统 的 比 较...5 2.2 RTEMS 开 发 工 具 及 环 境...7 2.2.1 RTEMS 开 发 工 具...7 2.2.2 交 叉 编 译 环 境 的 搭 建...8 2.2.3 硬 件 开 发 环 境...11 2.3 RTEMS 下 的 设 备 驱 动...15 2.4 本 章 小 结...16 第 三 章 RTEMS 下 网 卡 驱 动 程 序 的 设 计 与 实 现...17 3.1 网 卡 驱 动 程 序 的 架 构...17 3.1.1 功 能...17 3.1.2 系 统 结 构...17 3.2 网 卡 驱 动 程 序 的 关 键 技 术...20 3.2.1 关 键 数 据 结 构...20 3.2.2 缓 冲 区 管 理 策 略...24 3.2.3 DMA 与 零 拷 贝 技 术...25 3.3 RTEMS 网 卡 驱 动 程 序 的 实 现...28 3.3.1 驱 动 程 序 attach 函 数 的 实 现...28 3.3.2 驱 动 程 序 init 函 数 的 实 现...30 3.3.3 驱 动 程 序 start 函 数 的 实 现...33 3.3.4 驱 动 程 序 发 送 守 护 进 程 的 实 现...34 3.3.5 驱 动 程 序 中 断 处 理 函 数 的 实 现...39
目 录 3.3.6 驱 动 程 序 接 收 守 护 进 程 的 实 现...41 3.3.7 驱 动 程 序 IOCTL 函 数 的 实 现...44 3.3.8 驱 动 程 序 数 据 统 计 模 块 的 实 现...44 3.3.9 驱 动 程 序 关 闭 函 数 的 实 现...45 3.4 网 卡 驱 动 程 序 的 编 译 测 试 调 试 与 优 化...46 3.4.1 网 卡 驱 动 程 序 的 编 译...46 3.4.2 网 卡 驱 动 程 序 的 测 试...47 3.4.3 网 卡 驱 动 程 序 的 调 试 与 优 化...54 3.5 本 章 小 结...55 第 四 章 基 于 以 太 网 的 交 叉 调 试 工 具 的 设 计 与 实 现...56 4.1 交 叉 调 试...56 4.2 嵌 入 式 远 程 调 试 方 法...57 4.2.1 软 件 插 桩 ( Stub-Debugger) 方 式...57 4.2.2 片 上 调 试 (On-Chip Debugging) 方 式...58 4.3 基 于 以 太 网 调 试 的 方 案 设 计 与 实 现...58 4.3.1 ARC810 调 试 基 本 原 理...58 4.3.2 通 信 协 议 设 计...59 4.3.3 软 件 系 统 结 构 设 计 与 实 现...60 4.4 调 试 流 程 测 试 以 及 优 化...63 4.4.1 源 代 码 级 调 试 流 程...63 4.4.2 性 能 测 试 及 优 化...63 4.5 本 章 小 结...64 第 五 章 总 结 与 展 望...65 5.1 总 结...65 5.2 展 望...65
Contents TABLE OF CONTENTS Chapter 1 Introduction...1 1.1 Background...1 1.2 Thesis structure...2 1.3 Research Results...3 Chapter 2 RTEMS and development environment...4 2.1 RTEMS...4 2.1.1 RTEMS characteristics...4 2.1.2 Comparison of RTEMS with others...5 2.2 Development tools and environment...7 2.2.1 RTEMS build tools...7 2.2.2 Build RTEMS cross compiler environment...8 2.2.3 Hardware development environment...11 2.3 RTEMS Device Drivers...15 2.4 Summary...16 Chapter 3 Study and implementation of NIC driver in RTEMS...17 3.1 Structure of NIC driver...17 3.1.1 Function of NIC driver...17 3.1.2 System structure...17 3.2 Key technologies used in NIC driver...20 3.2.1 Key data structures...20 3.2.2 Buffer management strategy...24 3.2.3 DMA and zero copy...26 3.3 Implement of NIC driver in RTEMS...28 3.3.1 Implement of attach function...28 3.3.2 Implement of init function...30 3.3.3 Implement of start function...34 3.3.4 Implement of transmit daemon...35 3.3.5 Implement of interrupt handler...39
Contents 3.3.6 Implement of receive daemon...40 3.3.7 Implement of IOCTL function...44 3.3.8 Implement of data statistics function...44 3.3.9 Implemnet of stop function...45 3.4 Building testing debuging and optimization of NIC driver...46 3.4.1 Building NIC driver under RTEMS...46 3.4.2 Testing of NIC driver...47 3.4.3 Debugging and optimization of NIC driver...54 3.4 Summary...55 Chapter 4 Study and implementation of cross debugging tools based on ethernet...56 4.1 Cross debugging...56 4.2 Embedded remote debugging method...57 4.2.1 Stub debugging...57 4.2.2 On-Chip debugging...58 4.3 Study and implementation of debugging based on ethernet...58 4.3.1 The basic principles of debugging on ARC810...58 4.3.2 Design of communication protocol...59 4.3.3 Study and implementation of software system structure...60 4.4 Debugging process testing and optimization...63 4.4.1 Source level debugging process...63 4.4.2 Testing and optimization...63 4.4 Summary...64 Chapter 5 Summary and outlook...65 5.1 Summary...65 5.2 Outlook...65
第 一 章 绪 论 第 一 章 绪 论 1.1 提 出 背 景 在 计 算 机 网 络 技 术 计 算 机 软 / 硬 件 技 术 及 计 算 机 应 用 技 术 迅 速 发 展 过 程 中, IT 技 术 经 历 了 三 个 阶 段 的 发 展 过 程 第 一 个 阶 段 是 以 处 理 器 为 核 心, 它 促 进 了 计 算 机 的 普 及 与 应 用 ; 第 二 个 阶 段 是 以 传 输 技 术 为 核 心, 它 带 动 了 计 算 机 网 络 的 使 用 和 普 及, 使 得 数 字 化 信 息 的 应 用 席 卷 全 球, 并 因 此 导 致 数 字 化 信 息 的 爆 炸 性 增 长, 从 而 引 发 了 第 三 个 阶 段 存 储 技 术 的 发 展 [1] 因 此 信 息 存 储 系 统 已 成 为 国 内 外 研 究 的 重 点 和 新 的 经 济 增 长 点 受 各 种 技 术 进 步 和 应 用 的 推 动, 现 代 企 业 和 个 人 的 数 据 信 息 量 正 在 持 续 地 爆 炸 式 地 增 长 由 于 现 代 信 息 技 术 发 展 的 迅 速 和 不 平 衡, 传 统 的 存 储 系 统 结 构 已 无 法 满 足 需 求, 网 络 存 储 由 此 应 运 而 生 所 谓 网 络 存 储, 就 是 采 用 高 速 网 络 把 存 储 设 备 连 接 起 来, 通 过 系 统 软 件 进 行 存 储 资 源 合 理 的 调 度 和 分 配, 使 系 统 的 整 体 性 能 达 到 最 优, 以 一 个 系 统 的 协 同 工 作 来 满 足 众 多 单 个 用 户 的 需 求 [1] 与 传 统 的 存 储 结 构 相 比 较, 网 络 存 储 系 统 具 有 以 下 的 技 术 优 势 [2] : 良 好 的 可 扩 展 性 数 据 共 享 更 好 的 可 管 理 性 更 高 的 系 统 性 能 即 插 即 用, 更 强 的 容 错 能 力 更 具 开 放 性 更 高 的 智 能 性 和 并 行 性 更 多 更 新 的 功 能 更 低 的 成 本 本 论 文 的 提 出 背 景 正 是 在 网 络 存 储 已 成 为 研 究 热 点 的 情 况 下, 宜 展 电 子 ( 厦 门 ) 有 限 公 司 所 开 展 的 网 络 存 储 设 备 的 项 目 开 发 在 此 项 目 中, 选 用 信 亿 科 技 有 限 公 司 生 产 的 32 位 芯 片 ARC810, 采 用 RTEMS 操 作 系 统 本 人 承 担 了 此 项 目 中 1
第 一 章 绪 论 网 卡 驱 动 的 开 发 任 务, 即 在 RTEMS 操 作 系 统 下 实 现 Rhine 网 卡 的 驱 动 在 网 卡 驱 动 的 开 发 过 程 中, 本 人 针 对 ARC810 现 有 交 叉 调 试 工 具 下 载 待 调 试 程 序 的 不 足, 对 该 调 试 工 具 进 行 了 功 能 上 的 补 充 和 完 善 驱 动 程 序 是 操 作 系 统 内 核 的 一 部 分, 在 计 算 机 系 统 和 嵌 入 式 系 统 中 起 着 举 足 轻 重 的 作 用 驱 动 程 序 开 发 属 于 系 统 编 程 范 畴, 也 是 系 统 编 程 中 比 较 困 难 的 部 分, 而 交 叉 调 试 工 具 是 嵌 入 式 系 统 开 发 者 使 用 最 多 的 工 具, 也 是 整 个 开 发 周 期 中 使 用 时 间 最 长 的 工 具 本 文 之 所 以 选 择 这 两 个 方 面 为 课 题 研 究 的 主 要 内 容, 主 要 是 基 于 以 下 几 个 方 面 的 考 虑 : RTEMS 作 为 一 个 优 秀 的 实 时 操 作 系 统, 已 经 在 航 空 航 天 等 领 域 有 广 泛 的 应 用 掌 握 该 系 统 的 设 备 驱 动 开 发 技 术 具 有 很 重 要 的 现 实 意 义 现 在 嵌 入 式 领 域 蓬 勃 发 展, 国 内 很 多 厂 商 都 有 自 己 开 发 的 硬 件, 这 些 硬 件 都 没 有 RTEMS 的 驱 动 程 序 嵌 入 式 领 域 很 多 新 的 设 备, 如 USB 设 备 PCMCIA 设 备 CF 卡 等 等, 在 用 到 RTEMS 操 作 系 统 时, 需 要 RTEMS 驱 动 程 序 的 支 持 现 阶 段 ARC810 的 交 叉 调 试 工 具 采 取 串 口 下 载 待 调 试 程 序, 通 过 以 太 网 下 载 程 序 对 在 ARC810 上 进 行 嵌 入 式 系 统 的 开 发 效 率 的 提 高 有 着 很 大 的 帮 助 1.2 论 文 结 构 安 排 根 据 课 题 所 涉 及 的 主 要 研 究 工 作, 本 论 文 的 内 容 分 为 5 章 进 行 阐 述 第 一 章 主 要 阐 述 了 论 文 的 由 来 以 及 研 究 意 义, 介 绍 了 论 文 的 结 构 安 排 以 及 研 究 成 果 第 二 章 首 先 介 绍 了 本 论 文 所 处 的 开 发 环 境 即 RTEMS 实 时 操 作 系 统, 然 后 详 细 阐 述 了 RTEMS 开 发 环 境 的 整 个 搭 建 过 程, 本 章 的 最 后 介 绍 了 不 同 设 备 的 驱 动 程 序 在 RTEMS 源 代 码 中 的 组 织 第 三 章 首 先 分 析 了 RTEMS 下 网 卡 驱 动 程 序 的 基 本 架 构, 接 着 阐 述 了 在 网 卡 驱 动 程 序 所 使 用 的 关 键 技 术, 然 后 研 究 了 Rhine 网 卡 驱 动 程 序 各 个 模 块 的 设 计 与 实 现 方 法, 本 章 的 最 后 给 出 了 网 卡 驱 动 程 序 的 测 试 流 程 以 及 结 果 2
第 一 章 绪 论 第 四 章 首 先 介 绍 了 嵌 入 式 调 试 工 具 的 基 本 调 试 原 理, 然 后 针 对 ARC810 芯 片 调 试 时 通 过 串 口 下 载 待 调 试 程 序 速 度 上 的 不 足, 设 计 和 实 现 了 基 于 以 太 网 的 一 种 新 的 调 试 方 法 第 五 章 是 对 全 文 工 作 的 总 结 以 及 对 未 来 工 作 的 展 望 1.3 研 究 成 果 本 论 文 的 工 作 是 在 RTEMS 实 时 操 作 系 统 下, 进 行 网 卡 驱 动 程 序 的 设 计 和 实 现 以 及 基 于 以 太 网 的 一 种 新 的 调 试 方 法 的 实 现 主 要 包 括 以 下 几 个 部 分 : 1. 熟 悉 了 RTEMS 实 时 操 作 系 统 的 开 发 环 境 并 且 阐 述 了 RTEMS 实 时 操 作 系 统 为 何 适 合 进 行 嵌 入 式 系 统 开 发 2. 熟 悉 了 LEON2 处 理 器 调 试 工 具 Grmon, 并 通 过 Grmon 和 Insight 进 行 联 合 调 试, 在 此 基 础 上 顺 利 完 成 了 RTEMS 应 用 程 序 的 编 译 调 试, 最 终 完 成 了 RTEMS 下 网 卡 驱 动 程 序 的 调 试 和 测 试 工 作 3. 分 析 了 Linux 操 作 系 统 下 和 RTEMS 操 作 系 统 下 网 卡 驱 动 程 序 架 构 的 不 同, 完 成 了 RTEMS 下 网 卡 驱 动 程 序 各 个 模 块 的 设 计 和 实 现, 重 点 是 框 架 的 设 计 软 硬 件 的 初 始 化 中 断 处 理 以 及 接 收 和 发 送 数 据 包 4. 给 出 了 所 编 写 的 网 卡 驱 动 程 序 的 测 试 结 果, 列 出 了 在 网 卡 驱 动 程 序 的 开 发 过 程 当 中 遇 到 的 主 要 问 题 以 及 解 决 方 法, 并 用 PC-Lint 对 所 编 写 的 网 卡 驱 动 程 序 进 行 静 态 测 试 分 析 5. 分 析 了 当 前 交 叉 调 试 工 具 的 一 般 特 点, 并 在 此 基 础 上 针 对 ARC810 芯 片 的 调 试 工 具 的 不 足, 实 现 了 通 过 以 太 网 下 载 待 调 试 程 序, 大 大 提 高 了 在 ARC810 芯 片 环 境 中 进 行 嵌 入 式 软 件 开 发 的 效 率 3
第 二 章 RTEMS 实 时 操 作 系 统 及 其 开 发 环 境 第 二 章 RTEMS 实 时 操 作 系 统 及 其 开 发 环 境 嵌 入 式 系 统 的 发 展 和 应 用 是 现 代 信 息 社 会 的 一 个 重 要 特 征, 对 人 们 的 生 活 和 工 作 有 着 深 入 的 影 响 在 一 个 嵌 入 式 系 统 中, 其 所 使 用 的 操 作 系 统 是 整 个 嵌 入 式 系 统 的 核 心 所 在 本 章 主 要 介 绍 了 本 论 文 所 使 用 的 嵌 入 式 实 时 操 作 系 统 RTEMS 创 建 RTEMS 的 交 叉 编 译 环 境 以 及 RTEMS 下 的 设 备 驱 动 的 组 织 2.1 嵌 入 式 实 时 操 作 系 统 RTEMS 2.1.1 RTEMS 的 特 点 RTEMS(Real Time Executive for Multiprocessor Systems), 中 文 全 称 叫 实 时 多 处 理 系 统 RTEMS 是 由 美 国 军 方 研 制 的 嵌 入 式 系 统, 最 早 用 于 美 国 国 防 系 统, 早 期 的 名 词 为 实 时 导 弹 系 统 (Real Time Executive for Missile Systems), 后 来 改 名 为 实 时 军 用 系 统 (Real Time Executive for Military Systems) [3] RTEMS 是 开 源 的 嵌 入 式 实 时 操 作 系 统, 目 前 由 OAR(On-Line Applications Research Corporation) 公 司 负 责 版 本 的 维 护 和 升 级, 广 泛 运 用 于 军 事 科 研 工 业 等 领 域 它 在 全 球 有 很 多 用 户, 其 中 包 括 Motorola, 朗 讯, 以 及 欧 空 局 等 [4] 使 用 RTEMS 主 要 有 以 下 三 大 优 势 : 1. 免 费 : 由 于 RTEMS 是 开 源 的 RTOS(Real-time operating system), 因 此 使 用 RTEMS 的 最 大 好 处 就 是 源 代 码 免 费, 而 且 相 应 的 开 发 工 具 也 是 免 费 的, 开 发 工 具 的 使 用 平 台 Linux 同 样 也 是 免 费 的 2. 支 持 多 硬 件 平 台 :RTEMS 能 在 超 过 40 种 不 同 的 硬 件 平 台 上 运 行, 这 意 味 着 目 标 板 并 不 需 要 特 殊 的 定 制 3. 好 的 支 持 系 统 : 现 在 为 RTEMS 用 户 提 供 支 持 的 是 OAR 公 司, 这 些 支 持 服 务 包 括 培 训 和 应 用 开 发 另 外,RTEMS 使 用 者 还 能 通 过 邮 件 组 的 方 式 从 RTEMS 社 区 获 得 帮 助 RTEMS 作 为 一 个 嵌 入 式 实 时 操 作 系 统, 其 本 身 也 有 众 多 的 优 点, 包 括 [3] : 支 持 多 任 务 支 持 优 先 级 继 承 4
第 二 章 RTEMS 实 时 操 作 系 统 及 其 开 发 环 境 支 持 基 于 优 先 级 和 事 件 驱 动 的 多 任 务 实 时 调 度 支 持 任 务 间 的 同 步 和 通 信 支 持 中 断 管 理 支 持 动 态 内 存 分 配 和 管 理 支 持 多 种 网 络 协 议,RTEMS 带 有 完 整 的 TCP/IP 协 议 栈, 具 有 强 大 的 网 络 功 能 高 度 可 配 置 2.1.2 与 常 见 实 时 操 作 系 统 的 比 较 在 工 业 领 域 内 的 可 用 实 时 操 作 系 统 的 数 量 与 日 俱 增 据 嵌 入 式 系 统 编 程 (Embedded Systems Programming) 杂 志 的 最 新 报 告, 世 界 各 国 有 40 多 家 公 司, 已 成 功 推 出 了 200 多 种 的 可 供 嵌 入 式 应 用 的 实 时 操 作 系 统 在 这 其 中 选 取 VxWorks 与 RTLinux 和 RTEMS 进 行 比 较,VxWorks 是 WindRiver 公 司 开 发 的 具 有 工 业 领 导 地 位 的 高 性 能 实 时 操 作 系 统,RTLinux 的 全 称 是 Real-Time Linux, 其 是 Linux 系 统 中 能 提 供 硬 实 时 功 能 的 版 本 [5][6] 比 较 将 在 以 下 3 个 方 面 进 行 展 开 1. 获 得 相 关 文 档 的 难 易 程 度 RTEMS 和 RTLinux 在 其 操 作 功 能 设 计 和 实 现 上 都 有 十 分 丰 富 的 文 档, VxWorks 则 在 其 产 品 配 置 测 试 和 应 用 方 面 都 有 相 当 多 的 文 档 因 此, 工 业 领 域 内 的 用 户 倾 向 于 选 择 像 VxWorks 一 样 对 系 统 特 性 性 能 和 应 用 提 供 了 详 尽 统 计 数 据 的 操 作 系 统 ; 反 之, 那 些 研 究 型 企 业 开 发 者 和 研 究 机 构 对 第 一 种 类 型 的 操 作 系 统 更 加 感 兴 趣, 因 为 这 些 系 统 在 设 计 和 实 现 上 有 丰 富 的 技 术 文 档 2. 进 行 系 统 开 发 的 难 易 程 度 在 开 发 的 难 易 程 度 方 面,RTLinux 和 RTEMS 都 优 于 VxWorks RTLinux 和 RTEMS 都 对 其 各 自 内 核 系 统 结 构 以 及 开 发 者 能 用 以 优 化 目 标 系 统 的 关 键 参 数 有 清 晰 详 尽 的 说 明 尽 管 RTLinux 和 RTEMS 都 是 开 源 的, 但 RTEMS 还 是 licence free 的 这 意 味 着 开 发 者 能 自 由 的 修 改 发 布 改 进 RTEMS, 甚 至 将 RTEMS 作 为 私 有 工 作 的 一 部 分 ;VxWorks 则 是 一 个 私 有 操 作 系 统 由 于 缺 乏 描 述 VxWorks 内 核 的 相 关 文 档, 导 致 了 对 开 发 者 而 言 VxWorks 操 5
第 二 章 RTEMS 实 时 操 作 系 统 及 其 开 发 环 境 作 系 统 的 内 核 开 发 是 一 项 不 小 的 挑 战 3. 各 个 系 统 的 中 断 迟 延 及 上 下 文 切 换 参 数 中 断 迟 延 和 上 下 文 切 换 所 用 时 间 是 实 时 操 作 系 统 中 有 两 个 重 要 的 指 标 在 第 8 届 国 际 控 制 年 会 上,straumann 的 一 篇 报 道 做 过 如 下 的 测 试, 测 试 的 硬 件 平 台 是 PowerPC604(300MHz),RTLinux RTEMS 和 VxWorks 的 BSP 都 是 由 Motorola 提 供 测 试 内 容 包 括 初 始 化 中 断 处 理 普 通 程 序 ( 包 括 网 络 程 序 SPI 串 口 等 ) 测 试 中 产 生 了 2,000,000 次 中 断, 中 断 的 平 均 频 率 为 4kHz [7] 可 以 看 出, 这 个 测 试 程 序 对 内 核 的 实 时 性 以 及 任 务 调 度 都 是 一 个 严 格 的 考 验 测 试 的 结 果 如 图 2-1 所 示 : RTLinux RTEMS VxWorks RTLinux RTEMS VxWorks Interrupt Latency Max avg+σ Context Switching Max avg+σ Idle system 13.5 1.7+0.2 33.1 8.7+0.5 15.1 1.3+0.1 16.4 2.2+0.1 13.1 2.0+0.2 19.0 3.1+0.3 Loaded system 196.8 2.1+3.3 20.5 2.9+1.8 25.2 2.9+1.5 193.9 11.2+4.5 51.3 3.7+2.0 38.8 9.5+3.2 图 2-1:RTLinux, RTEMS, VxWorks 性 能 比 较 根 据 图 2-1 可 以 看 到,RTLinux 无 论 是 在 实 时 性 还 是 在 上 下 文 切 换, 都 和 RTEMS 以 及 VxWorks 有 较 大 差 距 尤 其 是 在 重 负 载 的 情 况 下, 处 理 中 断 的 时 延 波 动 非 常 厉 害,RTLinux 的 中 断 处 理 平 均 时 间 是 2.1us, 但 是 在 实 际 运 用 中 可 能 达 到 200us, 这 在 时 间 有 严 格 要 求 的 系 统 中 是 不 能 允 许 的 与 此 同 时,RTEMS 在 测 试 中 表 现 的 性 能 非 常 理 想, 基 本 上 达 到 或 者 超 过 了 老 牌 商 业 系 统 VxWorks 综 上 所 述,RTEMS 作 为 一 个 开 源 的 实 时 操 作 系 统, 和 RTLinux 一 起 比 VxWorks 更 适 合 于 开 发 者 和 学 术 机 构 进 行 研 究 和 学 习, 由 于 RTEMS 的 licence 6
第 二 章 RTEMS 实 时 操 作 系 统 及 其 开 发 环 境 free 的 特 性,RTEMS 比 起 RTLinux 在 这 方 面 更 有 优 势 RTEMS 和 VxWorks 在 实 时 性 和 上 下 文 切 换 上 表 现 优 秀, 而 RTLinux 则 不 适 合 对 实 时 性 要 求 非 常 高 的 系 统 2.2 RTEMS 开 发 工 具 及 环 境 2.2.1 RTEMS 开 发 工 具 在 裁 剪 和 定 制 实 时 操 作 系 统 内 核 用 于 嵌 入 式 系 统 之 前, 由 于 一 般 嵌 入 式 开 发 系 统 存 储 大 小 有 限, 通 常 都 要 在 性 能 优 越 的 PC 机 上 建 立 一 个 用 于 目 标 机 的 交 叉 编 译 工 具 链, 用 该 交 叉 编 译 工 具 链 在 PC 上 编 译 目 标 机 上 要 运 行 的 程 序 交 叉 编 译 工 具 链 是 一 个 由 编 译 器 连 接 器 和 解 释 器 组 成 的 综 合 开 发 环 境, 交 叉 编 译 工 具 链 主 要 由 binutils gcc 和 glibc 3 个 部 分 组 成 [8] 有 时 出 于 减 小 libc 库 大 小 的 考 虑, 也 可 以 用 别 的 c 库 来 代 替 glibc, 例 如 uclibc dietlibc 和 newlib 在 对 RTEMS 建 立 交 叉 编 译 工 具 中 就 选 用 的 是 newlib 库 下 面 对 这 些 交 叉 编 译 工 具 进 行 一 下 简 单 介 绍 1. GNU Binutils GNU Binutils 是 一 套 用 来 构 造 和 使 用 二 进 制 文 件 所 需 要 的 工 具 其 中 最 为 关 键 的 binutils 是 GNU 链 接 器 (ld) 和 GNU 汇 编 程 序 (as) [9] 这 两 个 工 具 是 GNU 工 具 链 的 两 个 完 整 部 分, 通 常 是 由 GCC 前 端 进 行 驱 动 的 除 此 之 外 GNU Binutils 还 包 括 其 他 的 一 些 工 具, 包 括 静 态 库 归 档 (ar) 反 汇 编 (objdump) elf 结 构 分 析 工 具 (readelf) 等 Binutils 所 支 持 的 平 台 种 类 很 多, 不 仅 包 括 很 多 种 Unix 平 台, 甚 至 还 包 括 Wintel 系 统 其 主 要 目 的 是 为 GNU 系 统, 包 括 GNU/Linux 系 统 提 供 汇 编 和 连 接 工 具 2. GNU GCC GCC 是 GNU 公 社 的 一 个 项 目 是 一 个 用 于 编 程 开 发 的 自 编 译 器 最 初,GCC 只 是 一 个 C 语 言 编 译 器, 他 是 GNU C Compiler 的 英 文 缩 写 [9] 随 着 众 多 自 开 发 者 的 加 入 和 GCC 自 身 的 发 展, 如 今 的 GCC 已 经 是 一 个 包 含 众 多 语 言 的 编 译 器 了 其 中 包 括 C,C++,Ada,Object C 和 Java 等 所 以 GCC 也 有 原 来 的 GNU Compiler 变 为 GNU Complier Collection, 也 就 是 GNU 编 译 器 家 族 的 意 思 7
Degree papers are in the Xiamen University Electronic Theses and Dissertations Database. Full texts are available in the following ways: 1. If your library is a CALIS member libraries, please log on http://etd.calis.edu.cn/ and submit requests online, or consult the interlibrary loan department in your library. 2. For users of non-calis member libraries, please mail to etd@xmu.edu.cn for delivery details.