⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linux

📁 嵌入式系统
💻
📖 第 1 页 / 共 2 页
字号:
      <P align=left>4. 选 择 合 适 的 硬 件 平 台 选 择 硬 件 平 台 是 一 件 很 麻 烦 的 事,受 很 多 因 素 影 
      响, 比 如 公 司 的 指 导 原 则、 个 人 偏 见、 过 去 产 品 的 影 响 和 消 息 不 灵 通 等。 费 用 是 考 虑 的 主 
      要 因 素。 提 醒 你 考 虑 价 格 时 不 要 只 注 意CPU 的 价 钱, 要 对 整 个 系 统 进 行 考 虑。 但 是 如 果 你 
      是 系 统 设 计 师, 你 必 须 把 软 件 的 实 时 性 和 硬 件 结 合 起 来 考 虑。 首 先 考 虑 需 要 多 快 的CPU, 
      然 后 把 选 择 三 倍 化 的 结 果; 因 为 在 实 际 中应 用 程 序 会 使 用 一 些cache( 缓 冲), 所 以 理 论 上 
      速 度很 快 的CPU 的 实 际 速 度 会 降 低。 其 次 考 虑 选 择 多 快 的BUS( 总 线); 如 果 可 以 包 括 其 他 的 
      总 线, 比 如PCI, 就 加 上 它。 因 为 有 时 即 使 使 用DMA 方 式 传 输, 也 会 使 快 速CPU 变 得 象 蜗 牛 一 
      般。 选 用 集 成 外 设 的CPU 比 较 好,而 且 还 可 选 用 现 成的 外 设 驱 动 程 序 , 大 大 减 少 调 试 工 作, 
      实 际 上 有 些 芯 片 集 成 的 功 能 并 不 是 我 们 所 需 要 的, 所 以 也 不 要 认 为 凡 是 集 成 的 都 是 好 东 
      西。</P>
      <P align=left>5. 压 缩 制 作 Linux 系 统 对Linux 的 通 常 感 觉 是 大, 似 乎 不 适 合 于 嵌 入 式 
      系 统。 事 实 并 非 如 此。 因 为典 型 的 发 行Linux 集 成 了 很 多 桌 面PC 机 需 要 而 嵌 入 式 系 统 并 不 
      需 要 的 功 能。 首 先 , 我 们 可 以 把 核 心(kernel) 从 其 他 任 务 中 分 离 出 来。 标 准 的Linux 核 心 
      总 是 贮 留 在 内 存 中 ; 当 需 要 应 用 程 序 时, 它 把 需 要 的 程 序 从 磁 盘 调 入 内 存 运 行。 程 序 运 
      行 完 毕, 内 存 清 空, 卸 载 程 序。 在 嵌 入 式 系 统 中 , 经 常 没 有 磁 盘 。 目 前 有 两 种 办 法 来 处 理 
      没 有 磁 盘 的 情 况。 对 于 比 较 简 单 的 系 统, 核 心(kernel) 和 应 用 程 序 同 时 贮 留 在 内 存 , 当 
      系 统 启 动 时, 就 启 动 应 用 程 序。 这 种 方 式 和 以 前 的 嵌 入 式 系 统 一 样 工 作。Linux 系 统 也 支 
      持 这 种 方 式。 第 二 种 方 式 是, 考 虑 到Linux 有load ( 装 载)和unload( 卸 载) 程 序 的 能 力, 嵌 
      入 式 系 统 也 可 以 使 用 这 一 特 点, 来 节 约 内 存。 假 如 有 一 个 典 型 的 嵌 入 式 系 统: 包 括8 到16 
      M 的Flash Memory 和8 到16 M 的RAM ;可 以 在Flash Memory上 建 立 文 件 系 统, 使 用Flash 的 
      驱 动 程 序 来 驱 动Flash Memory上 文 件 系 统 工 作。 另 外, 也 可 以 使 用Flash Didsk, 其 中 有 一 
      个 例 子 是M-system 的DiskOnChip, 它 可 以 支 持达160 M 的Flash Disk。 把 使 用 的 应 用 程 序 
      文 件 存 放 在Flash 文 件 系 统 上, 根 据 需 要 调 入 程 序。 这 种 动 态 装 入 方 法 有 很 多 优 点: (1) 
      因 为 在Linux 中 有 一 些 应 用 程 序 只 是 在 初 始 化 时 使 用 一 次, 然 后 就 没 有 用 处 了, 另 外 它 们 
      运 行 方 式 是 一 个 接 一 个, 顺 序 进 行 的 。可 以 允 许 初 始 化 程 序 的代 码 在 使 用 完 毕 后 被 废 弃, 
      不 必 永 远 存 放 在 内 存。因 此 相 同 内 存 可 以 运 行 不 同 的 程 序。 这 样 很 节 省 内 存 的。 (2) 软 件 
      更 新 比 较 容 易; 可 以 在 系 统 运 行 的 情 况 下 更 新 应 用 程 序 和 驱 动 程 序。</P>
      <P align=left>6. 如 何 处 理 虚 拟 内 存 标 准 的Linux还 有 一 个 特 点 是 使 用 虚 拟 内 存,程 序 过 
      大, 可 以 交 换 到 虚 拟 存 储 器 上。 这 是 一 个 神 奇 的 功 能 , 它 使 得 程 序 有 很 大 的 运 行 空 间 。然 
      而 , 在 嵌 入 式 系 统 中, 这 个 功 能 似 乎 没 有 用 武 之 地, 因 为 没 有 磁 盘。 这 个 功 能 对 于 嵌 入 式 
      系 统 , 特 别 要 求 实 时 性 很 强 的 系 统来 说 的 确 不 那 么 重 要, 因 为 这 个 机 制 会 浪 花费 时 间, 所 
      以 , 嵌 入 式 系 统 的 应 用 程 序 还 是 在 固 定 的 地 方 运 行 比 较 好。 不 过 提 醒 你 重 注 意, 考 虑 到 
      一 些CPU 有 这 方 面 的 特 点, 建 议 保 留 虚 拟 存 储 器 的 代 码 。 不 仅 因 为 剔 除 这 部 分 代 码 很 费 
      事 , 如 果 剔 除 相 关 代 码 ,还 容 易 造 成 其 他 问 题。 更 主 要 的 是 这 保 留 了 这 部 分 功 能, 能 够 使 
      得 不 同 进 程 使 用 相 同 代 码 。 如 果 没 有 了 这 个 功 能, 每 个 程 序 都 需 要 自 己 的 运 行 库, 在 内 
      存 中 就 会 有 库 的 很 多 拷 贝。 其 实 只 需 把 交 换 空 间 的 长 度 设 置 为 零, 就 可 以 关 闭 虚 拟 内 存 
      的 页 面 换 入 和 换 出 功 能。 对 一 些CPU, 虚 拟 存 储 器 的 功 能 提 供 内 存 管 理, 防 止 不 同 程 序 占 
      用 相 同 的 地 址 空 间。 而 在 嵌 入 式 系 统 中, 使 用 简 单 、 绝 对 的 地 址 空 间, 因 此 这 种 功 能 也 不 
      会 起 作 用。 不 过 这 到 提 供 了 防 止 误 写 以 至 于 使 系 统 崩 溃 的 功 能。 很 多 嵌 入 式 系 统 习 惯 使 
      用“ 全 局 变 量”, 让 进 程 共 享 数 据 。 在Linux 系 统 中 提 供 共 享 内 存 方 法 让 进 程 共 享 数 据 信 
      息。 在RT-Linux 中 使 用FIFO 进 行 信 息 交 换。 </P>7. 处 理 文 件 系 统 很 多 嵌 入 式 系 统 没 有磁 
      盘 和文 件 系 统;Linux 也 可 以 在没 有 磁 盘 的 系 统 上 运 行。 正 如 上 面 提 到 的, 应 用 程 序 可 以 和 
      核 心 一 起 编 译, 在 启 动 时 一 起 装 入 运 行。 这 适 应 于 简 单 系 统, 但不 具 有 灵 活 性。 其 实, 许 多 
      商 业 的 嵌 入 式 系 统 都 提 供 文 件 系 统 的 选 择。 大 都 是 特 殊 的 文 件 系 统 或 者 兼 容MS-DOS 文 件 
      系 统。Linux 提 供 包 括MS-DOS 等许 多 选 择。 其 他 的 文 件 系 统 具 有 更 好 的 性 能。Linux 还 具 有 
      许 多 实 时商 业 操 作 系 统 所 不 具 备 的检 查 和 修 复 文 件 系 统 的 功 能。 这 种 功 能 对 于 通 过 网 络 更 
      新 的 系 统 尤 为 重 要。 Linux 的 文 件 系 统 可 以 建 立 在 传 统 的 磁 盘 上、Flash Memory、 或 其 他 
      载 体。 甚 至 可 以 用 RAM 磁 盘 存 放 临 时 文 件。 有 些 系 统 中 包 含 了 廉 价 的CD-ROM, 它 比Flash 
      Memory 更 便 宜, 更 新 升 级 更 容 易。Linux 系 统 可 以 从CD-ROM 中 启 动 以 及 运 行 程 序。 在 网 络 
      化 的 嵌 入 式 系 统 ,Linux 支 持NFS( 网 络 文 件 系 统)。 于 是 , 你 可 以 使 用 很 多 网 络 功 能。 首 
      先, 可 以 通 过 网 络 来 启 动 应 用 程 序。 因 为 通 过 服 务 器 来 启 动 应 用 程 序, 所 以 是 进 行 软 件 更 
      新 的 最 好 解 决 办 法。 其 次, 在 运 行 过 程 中, 可 以 很 方 便 地 导 入 和 导 出 数 据、 状 态 设 置 和 状 
      态 信 息 等。 这 个 功 能 很 适 合 用 于 远 程 监 视 和 控 制 应 用 系 统。 例 如, 在RAM 中 建 立 磁 盘, 保 存 
      各 种 需 要 的 重 要 数 据, 远 程 系 统 登 录 到 此RAM 文 件 系 统, 读 取 数 据, 然 后 在 操 作 者 的 机 器 
      上 用 图 形 界 面显 示 运 行状 态, 起 到 很 好 的 监 视 效 果。 
      <P align=left>8. 设 置 启 动-LILO 和BIOS 当 微 机 启 动 时, 它 运 行 预 定 地 址 的 代 码 ,那 地 
      址通 常 是 在 只 读 存 储 区, 存 放 有 启 动 代 码 。 在PC 中 , 即 BIOS, 它 执 行 底 层 的CPU 初 始 化 工 
      作 和 初 始 化 设 置 其 他 硬 件。BIOS 确 认 哪 个 硬 盘 存 放 操 作 系 统, 拷 贝 操 作 系 统 到RAM 中, 然 
      后 运 行 操 作 系 统。同 样,Linux 在PC 上 运 行, 依 靠PC 的BIOS 来 设 置 硬 件、 启 动OS。 在 嵌 入 式 系 
      统 中, 通 常 没 有BIOS, 因 此, 需 要 提 供 等 价 的 启 动 代 码。 嵌 入 式 系 统 并 不 需 要 象PC 那 样 灵 
      活 的BIOS 启 动 程 序, 它 初 始 化 的 硬 件 比 较 单 一。 这 段 代 码 其 实 很 简 单, 只 是 把 一 些 很 重 
      要, 而 且 还 要 特 殊 的 写 入 顺 序 要 求 的 数 据 写 入 硬 件 的 寄 存 器 。 另 外 必 须 具 备 的 功 能 有 内 
      存 检 测, 点 亮LED, 检 测 其 他 很 重 要 的 硬 件。 这 些 代 码 的 针 对 性 很 强, 不 需 要 很 好 的 移 植 
      性。 所 以 不 同 的 硬 件 环 境 需 要 不 同 的 启 动 代 码。 为 了 进 行 测 试, 可 以 使 用ICE( 在 线 仿 真 
      器) 或 其 他 的 设 备 来 调 试 这 部 分 代 码 。 这 部 分 代 码 总 是 运 行 在Flash 或EPROM 等 芯 片 上, 
      所 以, 需 要 把 它 们 写 入 这 些 芯 片。 如 何 写, 当 然 因 硬 件 的 不 同 而 不 同 了。 一 个 最 为 普 通 的 
      方 法 是 使 用EPROM 或Flash 烧 录 器, 把 程 序 烧 录 在 芯 片, 然 后 把 芯 片 插 入 板 上。 另 外 的 方 法 
      是 通 过JTAG 接 口 进 行。</P>
      <P align=left>9. 嵌 入 式 的 Linux 同 样 健 壮 可 靠 
      和其他的运行于PC的系统相比,Linux是最可靠和最稳定的操作系统。而嵌入式的核心也是如此的。Linux的核心移植到新的微处理器上,基本不用什么修改。因此Linux可以使用许多计算机板。外设的驱动程序也多如牛毛,而且比其他的都稳定好用。但是,如果不是PC平台环境,那么你必需为特殊硬件编写驱动程序。对于各种硬件的相似驱动程序市面上随处可见,所以,你可以DOWN下来修改而成,所以安装新的或特殊 
      驱动器、网卡、串口、并口就不困难了。不过,我还是建议你在身边放一本Kernel的书比较好,以备查找。 
      在我的经验中,我觉得使用Linux的错误大都是对系统的了解不准确所至。况且,Linux的源代码随处可得、注释丰富、文档齐全,你完全可能自己去解决问题。</P>
      <P align=left>10.结束语 
      嵌入式的Linux系统也有缺点。和某些商业操作系统一样,占用较大的内存。当然可以去掉部分无用的功能来减小使用的内存,但是,如果不仔细,将引起新的问题。 
      有些Linux的应用程序需要虚拟内存,而嵌入式系统中并没有或不需要虚拟内存,所以,并非所有的Linux应用程序可以在嵌入式系统运行。 
      核心的调试工具并非完尽人意,虽然可以使用kgdb,不过我们更多的是使用print语句来帮助调试。 
      在应用于嵌入式系统的主要问题是:Linux本身具有很大的灵活性,而嵌入式系统不具有灵活性,它们主要针对特殊的问题。这是问题的关键。 
      总之,Linux用于开发嵌入式系统的应用软件是可能的和可行的。 
</P></TD></TR></TBODY></TABLE></DIV></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -