您的位置 首页 软件

几种Linux嵌入式开发环境的简略介绍

做Linux嵌入式系统的对常见的几种嵌入式开发环境一定不会默生,由于主要接触网络相关产品的一些系统设计,因此,将可能用到的嵌入式开发环境简要

做Linux嵌入式系统的对常见的几种嵌入式开发环境必定不会默生,因为首要触摸网络相关产品的一些系统规划,因而,将或许用到的嵌入式开发环境扼要总结一下。首要触及下面的几个东东:

emDebian – http://emdebian.sourceforge.net

uClinux – http://www.uclinux.org

buildroot – http://buildroot.uclibc.org

scratchbox – http://www.scratchbox.org

openEmbedded – http://oe.handhelds.org

emDebian

emDebian根据将Debian用于嵌入式系统的意图而开发。Debian是一个开展很快的项目,在我第一次用Debian时,就再也不乐意换用其它的发布版了,现在我用的Debian现已装置了有两年的时刻了,但现在系统依然是“最新”版别,杰出的在线软件晋级系统是Debian成功的原因之一。现在Debian现已支撑11个系统的系统,包含X86、PPC、MIPS、ARM、SH等(据最近的一则音讯,ARM有或许不再支撑),并包含了很多的软件。这些要归功于Debian的开发团队,正因为有许多人运用和支撑,因而,不是比较偏门的软件,根本上不需求从源码来装置,这也是我喜爱用 Debian的原因之一。

这样好的一个系统,当然有人乐意将其用到嵌入式系统中去。emDebian根据一个很简易的嵌入式系统开发的主意来结构嵌入式系统,即从一个老练的系统中去除不需求的部份(如文档和不需求的东西),精简出一个小的系统,这与下面要介绍的几个东西的主意刚好相反(下面几个都是根据 from scratch 即从无到有,从头构建的方法)。emDebian供给一些东西来帮忙完结从现有的系统或装置包(deb文件,相似Redhat的rpm)中提取需求的东东,并帮忙完结完好系统的构建,当然也支撑穿插构建了,比方你能够在X86 的PC上构建一个根据ARM的嵌入式系统,而整个进程不需求编译任何一行源代码。

水到渠成的,emDebian的重要优势就展现出来了,现在你用的CPU超出11个Debian支撑规模了吗?没有,那么你能够简略的经过 emDebian构建方针系统;你所需求的主体软件在Debian支撑的官方和非官方近2万个软件以外吗?没有,那么祝贺你,明日就能够给老板交工了。当然,关于特定的软件,或许仍是需求从源码来构建,不过相同的,咱们能够将其生成Deb包,然后将装备加到emDebian东西会集,同其它一切软件相同的选取和装备。

emDebian的开展好像不是想像的那么好,现在主页上的新闻更新仍是去2004年的。

buildroot

emDebian实际上并不用定适合于资源十分紧缺的超小型系统,比方只要2M Flash的小型操控系统。别的发行版的软件一般会以通用代码来编译,例如,为了尽或许在各种X86平台上都能够装置,大多数发行版一般会以i686乃至 i386代码集来编译软件,能够使文件的通用性很强,但CPU的功用却不能发恢到最好(这便是为什么有时会看到一些厂商或爱好者发布PIII、PIV、 athlon等优化系统的原因),这关于嵌入式系统来说也不会是一件好工作。别的,没有源码的操控权,一些需求定制的东西也会变得难以实现,因而,从源码开端构建依然有必要。

嵌入式Linux开发中运用的CPU速度往往向对不会太高,因而,尽或许进步代码的功用就十分必要。一般开发人员应该对该CPU的具体类型有必定的了解,以便启用编译器中对该类型的优化,以ARM为例,咱们能够经过 -march=armv5te 和 -mtune=arm9tdmi 来对代码在ARM9上的运转进行优化。有时这些优化表现出来的功用改进是比较大的,我曾对比过一些杂乱算法的代码优化前后的功用(履行速度),都有必定的提高。别的在PIV上测试过以i686和pentium4对一个语音编码算法进行优化,运算速度竟然进步了几倍。

这种起伏的提高或许仅仅一个特例,这个算法有很多的杂乱浮点运算,运用i386或i686指令集和运用更先进的PIV指令集编译出来的机器代码关于同一个运算的解说或许选用彻底不同的指令来完结,因而功用提高较大就家常便饭了。相同这种代码,在ARM上经过ARM4和ARM5来优化后在ARM9上运转,却没有那么大的提高。看来对CPU的必定了解也应该是嵌入式系统软件规划者应该具有的才能。

那么又怎么操控可履行文件的巨细呢?除了却除软件中不需求的部份外,咱们还应该考虑软件所引证的库文件。GNU的Glibc是一个十分宠大而完好的库,至少关于嵌入式系统来说,其体积显得过于大了一些。uClibc的提出较好的处理了这样一个问题。uClibc尽或许的兼容Glibc,大多数应用程序能够在很小或彻底不修正的情况下就或许运用uClibc替代glibc。经过uClibc来替代Glibc,能够在不改动应用程序功用的前提下,大大削减发布文件的巨细,不管应用程序以静态链接来编译,仍是以动态链接方法编译。

不过运用uClibc替代并不是简略的设置一两个参数就行了,一般需求运用一个不同的东西集(gcc/binutils等)来编译代源码。手艺的结构这样一个环境,关于大多数一般程序员来说,不用定是一件很简略的工作,因而,uClibc的开发者创造出一个叫做buildroot的东西集。 buildroot将主动结构编译根据uClibc代码的东西集和uClibc库,并供给一个可装备的结构和一些构建一个根本系统的装备文件。用户只需求经过装备菜单挑选了相应的方针软件,buildroot就能够从构建根本东西集开端,一向到最后构建出方针系统所需求的东西,如嵌入式系统常用的根据 ext2的initrd,jffs根文件系统,紧缩的根目录树等,这些代码都是根据uClibc而不是系统的Glibc的。Buildroot对主机系统的要求较小,一般只需求主机系统供给足以构建东西链(toolchain)的东西,如gcc/binutils等,当东西链编译完结后,对方针系统需求的源码的编译进程与主机系统的开发东西集根本上就没有什么关系了。因而,不同的主机假如能够经过第一步,编译完结东西链,那么编译出来的方针系统的履行代码就能够简直不存在因为系统引起的差异。这样,开发人员就或许在各自喜爱的Linux发行版上进行开发,而不用忧虑呈现什么兼容性问题。

uClinux

uClinux与emDebian至少有两个重要的差异,第一是构建方法,前面现已说到过了,uClinux归于 from scratch 一类的。另一个不同的当地,uClinux是支撑不在emDebian支撑的11种CPU的,当然,这个说法不是很恰当,正确的说法是uClinux支撑那些不具有MMU单元的CPU系统。uClinux的第一个意图是支撑MC68328芯片,现在现已能构支撑更多的CPU,如Intel i960,ARM等。不过,uClinux的主体开发团队现在现已不再支撑ARM了,还好 Samsung 的 Hyok S. Choi 接过了接励棒,Linux 2.6版别的补丁能够在 uClinux/ARM2.6 找到。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/ruanjian/297898.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部