学习嵌入式Linux怎么应用开发?

学习嵌入式Linux怎么应用开发?,第1张

提供一下几种方案\x0d\x0a\x0d\x0a一、还按照《嵌入死linux应用开发完全手册》(韦东山)的内容来,但是嵌入式linux的开发环境自己搭建。当时我是按照《鸟哥的私房菜-基础篇》和《鸟哥的私房菜-服务器篇》两篇,整出一套开发平台,CentOS5.3 + samba/vsftpd + gcc / linux-gcc 。 window平台上的工具sourceinsight、secureCRT。 注意:我使用了四个月学会linux *** 作。不知道你是否会先学这两本书,再学习韦东山老师的嵌入式呢。学完之后看似学习了很多,出来外面之后,我又去在windows平台开发,而且现在用C#。_。现在看什么嵌入式系统都非常快,很容易理解架构,如何实现。可惜自己太年轻,没有资本和人脉,不然可以实现很多有意思的东西。现在正在尝试创业。\x0d\x0a\x0d\x0a二、寻找开发板,而不是书籍作为实验的途径。书籍只是辅助,辅助你实现某种功能。可以集中linux书籍、嵌入式开发书籍、单片机开发、编程语言。宋宝华的嵌入式书籍。开发板当时用的是飞凌的,由国嵌负责技术讲解和培训。讲了不少有用的东西。现在网上的开发板多,可以淘,但是不用太贵,作用不大。找前卫的技术开发,中国看似不行。前卫老师都没搞出什么东西,我们在基本是0基础的前提下,很难实现比较前卫的技术。打好基础,看似是唯一的选择。\x0d\x0a\x0d\x0a三、单独找台PC机,直接安装ubuntu11,买本ubuntu相关的书,他会交你怎样安装使用工具的。其实和第一种解决方式是一样的,书是别人在五(六)年前写的,不符合摩尔定理。所以没办法,我们在嵌入式方面的教育还是欠缺啊,出的书都少,记那么基本,还全是个人。没有什么教育机构。\x0d\x0a\x0d\x0a希望以上对你有用。

有人会将Linux与微软的Windows相比较,确实Windows具有很好的互连性,且具有非常全面的软件栈。但一旦开发者用Windows 建立了产品,他也就丧失了实现差异化的机会。仅仅将Windows OS加到你的产品中并实现商用是十分迅速的。所以如果你想获得面市时间上的优势, Windows会给你带来很多功能性上的优势。但是你获得功能性的同时,也就失去了差异化的机会。

当然,Windows还有其他一些技术上的问题,这主要体现在可靠性和软件规模方面。Windows的“体积”十分庞大。人们都在说Linux很大,确实与传统RTOS的70~80k的代码规模相比,Linux的大小通常在几兆字节,而最小的Windows CE的代码规模也有27MB (BIPLIP标注:应该是2~3MB)。出于政治和法律上的考虑,微软是不能将Windows进行拆分的。

同时,Windows和其它RTOS还将遇到来自用户不断增加的使用成本(runtime costs)方面的挑战,因为他们收取高额的版税。嵌入式Windows的版权费大约为每拷贝12~15美元。对于那些大批量的产品,其每件产品上可承受的分摊成本十分有限,如果要向Windows支付这样的版税,很可能会造成亏本。其它商业化的RTOS采用的也是这样一种收取版税的商业模式。而 Linux,其突出的一个优点就是免版税的。

Linux还具有很好的可靠性。传统的RTOS通常不具备强大的内存保护功能,这使应用程序很容易被破坏。

另一个影响嵌入式系统对 *** 作系统选择的是商业因素。在这方面传统RTOS供应商和微软的境遇是相同的。传统RTOS供应商和微软都会在不与客户协商的情况下终止某一产品的供应,他们的商业决策是从他们公司自身的利益出发的,而不是站在客户的角度考虑。Linux则能给予使用者更多的选择。

如果采用一个开放源码的 *** 作系统,开发者能够主宰他们自己的命运,他们不必被一个供应商的决策牵着鼻子走,他们总是有很多选择。即使他们选择了 MontaVista这样商业化的Linux供应商,他们依然能够保有对开放资源进行客户化和利用的选择性,他们可以选择继续和MontaVista合作或是走开。

我们还注意到,现实中,与MontaVista所提供的商业化版本的Linux形成竞争的除了Windows和其它RTOS,还有由用户自主开发(roll -your-own)的Linux。但是建立和维护一个基于Linux的平台是很艰巨的工作,而对于用户来说,这是一种无法创造附加值的工作。我们日常管理着MontaVista的Linux环境中超过4200万行的代码。嵌入式应用程序平均的代码长度最多是50万行,很多组织是没有能力去管理 4200万行代码的。

如果你着眼于源代码的开发,即使是针对单一目的的应用,其源代码的规模也将以千万行计。为了完成内核的维护工作,你需要每年投入10个工程师的力量;同时你还要花费35~40人年去建立整个嵌入式Linux *** 作系统。很多公司试图用两个工程师去维护一个自主研发的 Linux项目,这样开发者很快就会发现他们已经陷入困境。

自主开发Linux过程中会遭遇到的另一个问题是,你是在一个开放资源基础上开始工作的,同时你需要投入大量的时间和精力在基础性资源的周围建立一个平台。但是Linux是开放源码的,其发展速度十分迅速。因此大多数自主开发的项目实际上是我们称之为“某一时间点(point-in-time)” 的版本,因为开发者只是选取了某一时段的源代码并基于它进行开发,而并不想继续投资以保持与Linux同步的发展。而象MontaVista这样的供应商会保持大量基础性的投入跟踪Linux的最新版本,并将其加入到产品中来。

有人会说,也许是因为开发者的规模太小而没有充足的预算去自主开发Linux,那么让我们来看看那些大的嵌入式开发者的选择又是如何的。规模较大系统 OEM,他们拥有数以千计的开发工程师,这些大公司也许应该有工程资源在内部开发一个Linux平台。但同样,他们的预算也十分有限,他们也面临着增加附加值的挑战,他们在Linux之外还有很多其他的问题需要解决。他们面临着不同的项目,而每个项目建立在不同的微处理器的基础上,同时还需要不同的中间件和应用软件栈与之相配。因此很难说他们是否能够在统一公司内部不同的Linux版本方面花力气。

MontaVista建立了一个统一的基础资源,可以为那些大OEM建立一个我们称之为“策略平台”的统一的Linux 平台。因此我们可以在相同的源代码上建立针对MIPS、ARM、PowerPC或SH等不同处理器架构的Linux。要想建立这样的Linux系统需要大量的基础性投入,而大多数嵌入式系统公司是不会在他们的产品之外投入一分钱的。

因此如果他


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8485978.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存