嵌入式 Linux 开发简介,第 1 部分
在过去的十年中,嵌入式系统领域发生了翻天覆地的变化,这主要是由 PDA 和手机等先进新产品的出现以及可以封装到小型尺寸中的资源量不断增加所驱动的。传统的小型、专注于特定领域的嵌入式系统仍然占据着重要的地位,但这些新出现的系统可以利用嵌入式完整功能的操作系统。该操作系统提供了广泛的功能选择。例如,无线互联网连接和 GUI 已经内置。就在几年前,嵌入式操作系统通常只出现在嵌入式系统频谱的高端。
Linux 适用于多种架构,是嵌入式系统的明显候选者,并且已经广泛应用于该领域。其开放性使其对开发者特别有吸引力。开发工具套件已经开始出现以响应人们意识到的需求,尽管人们可以在没有这种奢侈品的情况下工作,并采用 Linux 中已经提供的集成度较低的工具。使用 Linux 的新型嵌入式系统公司已经开业,各种较老的嵌入式系统公司已将 Linux 添加到其产品线中。
假设经济的技术部门继续复苏,那么在嵌入式系统这个通用领域应该会涌现出许多软件工程师和程序员的机会。然而,这些潜在的开发者中有许多人曾使用过桌面系统,但没有使用过嵌入式系统。转型的门槛有多高?过去,每位嵌入式系统开发者都需要在某种程度上成为硬件大师。然而,有了常驻操作系统,嵌入式系统项目也许只需要一位硬件人员,然后根据需要添加应用程序开发者即可。在这种情况下,硬件知识不再是障碍,因为硬件人员成为共享资源——其他人可以掌握对其任务高效的任何表面硬件知识。简而言之,深入的硬件专业知识不是障碍。但是,必须熟悉开发环境。本系列文章的目的是提供足够的基础知识,让读者入门。
如果我们要了解嵌入式 Linux 开发环境,最好以动手实践的方式进行。即使没有动手实践部分,认真阅读这些文章仍然具有一定的价值。典型的读者可能有一台 Linux 机器用作开发工作站,但没有嵌入式目标。让我们讨论一下整合目标的选项。
选项 1: 停留在您的 Linux 机器环境中,并选择软盘、CD-ROM、USB 笔式驱动器或类似设备等目标。此选项提供了一些我们想要学习的原型功能,但这只是一个小的开始。
选项 2: 选择已知具有支持 Linux 功能的 PDA。夏普 Zaurus SL-5500 浮现在脑海中。它预装了 Linux,拥有活跃的开发者社区,并提供了相当完整的功能集。由于它不是市场上最新的 Zaurus,因此可以以大幅折扣的价格找到它。此目标比选项 1 中建议的目标更具原型性。但是,它仍然没有达到我们最终想要的目标。特别是,如果我们选择此选项,我们将没有机会学习有关引导加载程序的知识,这是一个重要的主题。
选项 3: 找到一款相对经济实惠的已知支持 Linux 的单板计算机 (SBC)。这为我们提供了一个真正典型的目标。如果我们幸运的话,我们会找到一家愿意与我们合作的供应商。应该注意的是,我曾使用过嵌入式系统,但不是硬件大师。随着本系列文章的展开,我可能需要这样的人提供一些意见。
我们将选择选项 3。但是,其他两个选项也提供了重要的价值。事实上,作者有一个课程的 Beta 版本,探讨了这两个选项,目前位于此处。基于本系列文章的材料最终将添加到该在线课程中。
我在 2004 年多伦多 Real World Linux Conference 上就上述课程的 Beta 版本做了一个演讲。在那里,我遇到了来自 Engineering Technologies Canada Ltd. 的 Iain Galloway。我们的讨论促使我从该公司选择了一款 SBC 来满足上述选项 3。我选择了带有 uClinux 的 LBOX,它配备了摩托罗拉 Coldfire MCF5272 处理器、闪存、串行端口、光纤端口、最多三个 10/100 以太网端口等。它开箱即可使用,无需先将其构建到其他设备中。也就是说,您可以使用任何 5-12 伏范围内的电源为其供电。LBOX 还具有完整的扩展端口,方便实验。
应该注意的是,我与 Engineering Technologies Canada 没有经济联系。LBOX 看起来只是一个合适的产品,我可以从中获得适当的帮助来解决沿途遇到的任何小故障。此外,Engineering Technologies Canada 愿意与我所在机构的学生合作。特别是,该公司愿意捐赠一些新的附加硬件,以换取可以提高其价值的开源代码——这对双方都有利。
本系列的第 2 部分将介绍包含 LBOX 作为目标的完整硬件设置,然后展示如何使其栩栩如生。
Richard Sevenich 博士是华盛顿州奇尼市东华盛顿大学的计算机科学教授。他在那里教授操作系统、编译器设计和汇编语言课程。他曾在 LinuxWorld Expo、O'Reilly 的开源大会和 RealWorld Linux 上发表演讲。此外,他还偶尔举办 Linux 设备驱动程序和嵌入式 Linux 开发培训课程。