<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 在嵌入式系統中應用Linux深入探究

在嵌入式系統中應用Linux深入探究

作者: 時(shí)間:2012-05-22 來(lái)源:網(wǎng)絡(luò ) 收藏
計算機用于嵌入式控制設備領(lǐng)域的歷史和計算機本身的歷史一樣久遠。最初的用于控制機電式電話(huà)交換器的通訊設備中“固態(tài)控制程序”就是嵌入式程序?!坝嬎銠C系統”在當時(shí)并不普遍;所以固態(tài)程序存放在內存中控制相應的設備。在那種時(shí)代,運行控制程序是很先進(jìn)的思想,而且當時(shí)也只能如此而已。

那時(shí)的計算機是專(zhuān)為特定的用戶(hù)設計,特殊的應用程序指令、I/O設備和主要的計算設備集成在一起。微處理器的產(chǎn)生改變了這種局面,價(jià)格低廉、結構小巧的 CPU和外設連接在總線(xiàn)上形成了比較大的系統。這種硬件架構很穩定,于是在這個(gè)基礎上,這建立起了通用的軟件開(kāi)發(fā)環(huán)境和編程模式,且簡(jiǎn)化了編程,。

軟件也在隨著(zhù)硬件的發(fā)展而發(fā)展;開(kāi)始只有簡(jiǎn)單的工具用于編程和調試,而且每一個(gè)軟件都必須從頭編寫(xiě)。程序大都采用宏匯編語(yǔ)言,匯編程序還不很完善,調試是一件很麻煩的事。因此一直到70年代的中期,模塊化編寫(xiě)程序和標準化的運行庫才逐漸流行起來(lái)。在70年代的后期,出現了的操作系統。它們采用匯編語(yǔ)言編寫(xiě),而且只能運行在相應的特殊處理器上;處理器過(guò)時(shí),則這個(gè)操作系統就沒(méi)有用處了,對新的處理器必須重新編寫(xiě)操作系統的所有代碼。C語(yǔ)言出現以來(lái),采用C語(yǔ)言操作系統更有效率了,操作系統的編寫(xiě)有了很大的改觀(guān)。C語(yǔ)言有很好的穩定性和可移植性,所以今天的許多操作系統都使用C來(lái)編寫(xiě)。于是在 80年代末,出現了好幾個(gè)商業(yè)的嵌入式操作系統。而且它們已經(jīng)演化成為今天的主流嵌入式操作系統。比如很有名的、使用者眾多的操作系統:Vxwork、 pSOS、Neculeus和WindowssCE。

不過(guò)很多的還沒(méi)有使用操作系統,它們僅僅包含一些控制流程而已。在相對簡(jiǎn)單的情況下,這些控制流足以應付。但是,當嵌入式系統的功能復雜后,簡(jiǎn)單控制邏輯就不夠用了,這時(shí)你必須使用操作系統。如果不使用操作系統將會(huì )使得控制系統邏輯結構復雜混亂,很容易出錯。再者,有些嵌入式系統需要接入網(wǎng)絡(luò )系統,比如賓館的門(mén)鎖控制已經(jīng)需要接入網(wǎng)絡(luò ),因此就更需要嵌入式的操作系統來(lái)支持應用軟件。

除了商業(yè)化的操作系統外,還有其他的有版權要求的非商業(yè)化嵌入式操作系統可以使用。然而今天的 系統有著(zhù)嵌入式操作系統需要的很多特色、突出的優(yōu)勢:適應于多種CPU和多種硬件平臺,性能穩定,裁剪性很好,開(kāi)發(fā)和使用都很容易。因此,我們決定在嵌入式系統中使用操作系統。

1.它具有很好的工具,可以跨越ICE等屏障

原來(lái)開(kāi)發(fā)嵌入式系統的關(guān)鍵是需要一套好用的開(kāi)發(fā)和調試工具;而且在開(kāi)發(fā)所不同階段還需要不同的工具。就比如工匠,只有好的工具才能夠使工作完成得又好又快。

傳統的開(kāi)發(fā)調試工具就是ICE-在線(xiàn)仿真器;它取代目標板的微處理器,給目標程序提供仿真環(huán)境,同時(shí)可以連接監視器;允許開(kāi)發(fā)者調試和監視程序的運行。盡管這種運行方式會(huì )引起一些奇怪的問(wèn)題,但是它總能夠讓你明了程序在目標板的工作狀態(tài),免除了對底層的軟硬件接口的猜測。但是,這種設備價(jià)格非常貴。過(guò)去,甚至在整個(gè)開(kāi)發(fā)期內,開(kāi)發(fā)嵌入式系統主要依靠這些調試工具??墒?,我們發(fā)現,一旦軟硬件能夠正常支持串口的運行時(shí),我們可以使用其他的調試辦法?,F代的嵌入式系統采用相當成熟的微處理器。因此很容易使得串口工作。串口連接成功,可以進(jìn)行很多的開(kāi)發(fā)調試。所以我們不用ICE也可以很好地開(kāi)始開(kāi)發(fā)和調試工作了,同時(shí)還降低開(kāi)發(fā)費用。

利用GNU項目的C編譯器來(lái)編譯程序,使用gdb源程序級調試器來(lái)調試程序。它們提供了合適的手段來(lái)使你能夠開(kāi)發(fā)嵌入式的Linux系統。為了開(kāi)發(fā)基于Linux的嵌入式系統,可以按以下方法進(jìn)行:

向串口輸出提示字符串,例如“helloword”或“Waston,comehereIneedyou!”等,然后通過(guò)串口,指揮gdb 開(kāi)始工作。以這種方式和另外一臺運行g(shù)db程序的Linux主機系統“交談”,通過(guò)串口,你可以很方便地讓gdb調試目標程序。通過(guò)串口和gdb通訊,可以進(jìn)行C源程序級的調試。甚至你還可以以串口把其他的程序下裝到RAM或flash存儲器。通過(guò)串口,使用gdb可以使得軟硬件的初始化代碼繼續運行到核心全部啟動(dòng)。

一旦核心在運行了,你就可以使用其他的更好的調試工具,象Kgdb等,如果連接了網(wǎng)絡(luò ),你也可以讓網(wǎng)絡(luò )工作起來(lái)。同時(shí)你就可以用GUI的xgdb來(lái)調試應用程序。
2.滿(mǎn)足實(shí)時(shí)性時(shí)要求

細細分析起來(lái),大多數系統并不需要嚴格的實(shí)時(shí)性。而嵌入式系統也經(jīng)常被誤解為就是實(shí)時(shí)性系統。其實(shí),多數嵌入式系統并不需要實(shí)時(shí)性,而且實(shí)時(shí)性本身是個(gè)相對的概念絕對的實(shí)時(shí)性是指對需要的服務(wù)以限定的方式和在限定時(shí)間內提供,比如在微秒級內響應。這種硬實(shí)時(shí)性功能只是針對特殊的設備而言,例如數字信號處理等。而這些要求使用特殊的硬件如FIFO、DMA和其他特殊設計的硬件也可以滿(mǎn)足。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>