Linux嵌入式系统开发平台选型探讨
⑤ 是否内置调试工具。处理器如果内置调试工具可以大大缩小调试周期,降低调试的难度。
⑥ 供应商是否提供评估板。许多处理器供应商可以提供评估板来验证理论是否正确,决策是否得当。
3.2 硬件部件选择的其它因素
① 生产规模。打算做1套?多套?还是规模生产?如果生产规模比较大,可以自己设计和制备硬件,这样可以降低成本。反之,最好从第三方购买主板和I/O板卡。
② 开发的市场目标。如果想使产品尽快发售,以获得竞争力,此时要尽可能买成熟的硬件;反之,可以自己设计硬件,降低成本
。
③ 软件对硬件的依赖性。软件是否可以在硬件没有到位的时候并行设计或先行开发。
④ 只要可能,尽量选择使用普通的硬件。在 CPU 及架构的选择上,一个原则是:只要有可替代的方案,尽量不要选择 Linux 尚不支持的硬件平台。
4 软件平台的选择
图1所示的嵌入式软件的开发流程,主要涉及到代码编程、交叉编译、交叉连接、下载到目标板和调试等几个步骤,因此软件平台的选择也涉及到以下几个方面。
4.1 操作系统的选择
(1)操作系统选择应考虑的因素
硬件方案确定之后,操作系统的选择就相对轻松了。硬件的不同,会影响操作系统的选择。低端无MMU(Memory Management Unit,存储器管理单元)的CPU,要使用uClinux 操作系统;而相对高端的硬件,则可以用普通的嵌入式 Linux 操作系统。uClinux 和普通的 Linux 有各自的优势和缺点。可用于嵌入式系统软件开发的操作系统很多,但关键是如何选择一个适合开发项目的操作系统。经过多年的开发实践,笔者认为应该从以下几点进行考虑:
① 操作系统提供的开发工具。有些实时操作系统(RTOS)只支持该系统供应商的开发工具,因此,还必须向操作系统供应商获取编译器、调试器等;而有些操作系统使用广泛,且有第三方工具可用,因此,选择的余地比较大。
② 操作系统向硬件接口移植的难度。操作系统到硬件的移植是一个重要的问题,是关系到整个系统能否按期完工的一个关键因素。因此,要选择那些可移植性程度高的操作系统,避免操作系统难以向硬件移植而带来的种种困难,加速系统的开发进度。
③ 操作系统的内存要求。均衡考虑是否需要额外花钱去购买RAM或EEPROM来迎合操作系统对内存的较大要求。
④ 开发人员是否熟悉此操作系统及其提供的API。
⑤ 操作系统是否提供硬件的驱动程序,如网卡等。
⑥ 操作系统的可剪裁性。有些操作系统具有较强的可剪裁性,如嵌入式Linux、Tornado/VxWorks等等。
⑦ 操作系统的实时性能。
(2)几类嵌入式Linux系统的比较
(凹丫丫范文网fanwen.oyaya.net收集整理)
嵌入式Linux系统方面的产品主要分为三类:
第一类是专门为Linux的嵌入式应用而做的。如何让Linux更小、更容易嵌入到体积要求和功能、性能要求更高的硬件中去,是他们的产品开发方向,如MontaVista的MontaVista Linux等。第二类是专门为Linux的实时特性设计的产品。将Linux开发成实时系统尤其是硬实时系统,应用于一些关键的控制场合(不仅仅是信息电器)。如,Fsmlabs公司开发出来的RT-Linux产品已经用在工业控制的很多方面;葡萄牙的Coimbra大学已经利用RT-Linux实现了化工生产控制厂里用来控制反应和程序控制的系统。第三类的产品是将实时性和嵌入式方案结合起来的方案。很多公司都这么做,并且提供集成化的开发方案,如Lineo、TimeSys等等。
因此选择操作系统时,要根据自己的嵌入式要求和实时性要求,选择适合自己的嵌入式Linux;同时,和选择硬件的原则一样,如果可能,尽量选择使用普通的嵌入式 Linux 系统。
4.2 编程语言的选择
编程语言的选择主要考虑以下因素:
① 通用性。不同种类的微处理器都有自己专用的汇编语言。这就为系
《Linux嵌入式系统开发平台选型探讨(第2页)》