linux嵌入式系統(tǒng)與硬件平臺(tái)_第1頁(yè)
linux嵌入式系統(tǒng)與硬件平臺(tái)_第2頁(yè)
linux嵌入式系統(tǒng)與硬件平臺(tái)_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、linux 嵌入式系統(tǒng)與硬件平臺(tái)王錚、劉渝萍完好的電器設(shè)備一般要包括軟件和硬件兩大部分。本文試圖從linux 軟件系統(tǒng)、硬件平臺(tái)以及開(kāi)發(fā)流程來(lái)討論linux嵌入式系統(tǒng)與硬件平臺(tái)的關(guān)系。一、linux 嵌入式系統(tǒng)統(tǒng)由于硬件的先天限制,經(jīng)常只具有極稀少的硬件資源,如頻率較低的 cpu、較少的內(nèi)存、常不具有磁盤而用小容diskonchip diskonmodule。在使用電池的系統(tǒng)中,它還要實(shí)現(xiàn)節(jié)省電池消耗、延長(zhǎng)電池使用時(shí)間的功能。linux 作為嵌入式操作系統(tǒng)是完全可行的,因?yàn)?linux 提供了完全嵌入功能的根本內(nèi)核及所有用戶界面。linux linux 的新成員。它對(duì)許多cpu 和硬件平臺(tái)都是

2、易移植的、穩(wěn)定的和易于開(kāi)發(fā)的。嵌入式linux 系統(tǒng)需要三個(gè)根本元素:引導(dǎo)工具;linux 微內(nèi)核、內(nèi)存管理、 程序管理;初始化進(jìn)程。假設(shè)要它成為完好的操作系統(tǒng)且繼續(xù)保持小型化,還得加上硬件驅(qū)動(dòng)程序、硬件接口程序、應(yīng)用程序組。linux 是基于gnu 的c 編譯器,作為gnu 工具鏈的一部分,與gdb 調(diào)試器一起工作。它提供了開(kāi)發(fā)嵌入式linux 系統(tǒng)的所有軟件工具。以下是一個(gè)典型開(kāi)發(fā)工具的使用流程:寫入或植入引導(dǎo)程序;向串口打印字符串的編碼;gdb 目的碼移植工作串口,這可與另一臺(tái)運(yùn)行g(shù)db 程序的linux 4.利用gdb 讓硬件和軟件初始化碼在linux 內(nèi)核啟動(dòng)時(shí)工作;linux內(nèi)核啟

3、動(dòng),串口成為linux 控制口并可用于后續(xù)開(kāi)發(fā);假設(shè)在你的目的硬件上運(yùn)行了完好的linux內(nèi)核,你可以調(diào)試你的應(yīng)用進(jìn)程。二、硬件平臺(tái)常是關(guān)鍵的議題。當(dāng)考慮本錢時(shí),我們需要考慮產(chǎn)品的整個(gè)本錢,而不僅是cpu 的本錢。因?yàn)楹玫腸pu 一旦加上總式軟件系統(tǒng),那么應(yīng)首先確定硬件平臺(tái),即確定微處理器cpu 的型號(hào)。如今比較流行的硬件平臺(tái)有intel 公司的strong arm motorola 公司的dragonball nec 公司的vr hitachi 公司 sh4 系列等等,它們都可選為硬件平臺(tái)。在選定前先要確定所做系統(tǒng)的應(yīng)用功能和所需速度,并且制定好外接設(shè)備和接口標(biāo)準(zhǔn)。這樣可準(zhǔn)確地定位所需要的硬

4、件方案,得到性價(jià)比最高的系統(tǒng)。圖 1 是以intel 公司的strongarm 為例來(lái)說(shuō)明硬件平臺(tái)。圖 1 intel 公司sa1110 微處理器構(gòu)造示意圖三、linux 嵌入式系統(tǒng)與硬件的關(guān)系我們可以將內(nèi)核與任務(wù)分開(kāi)來(lái)講解linux 嵌入式系統(tǒng)在硬件上的工作流程linux 每一個(gè)應(yīng)用程序都是從磁盤傳輸?shù)絻?nèi)存上執(zhí)行。當(dāng)程序完畢后,它所占用的內(nèi)存就被釋放,程序也就被下載了。在 一個(gè)嵌入式系統(tǒng)里,可能沒(méi)有磁盤。有兩種途徑可以消除對(duì)磁盤的依賴,這要看系統(tǒng)的復(fù)雜性和硬件的設(shè)計(jì)。在一 個(gè)簡(jiǎn)單的系統(tǒng)里,當(dāng)系統(tǒng)啟動(dòng)后,內(nèi)核和所有的應(yīng)用程序都在內(nèi)存里。這就是大多數(shù)傳統(tǒng)嵌入式系統(tǒng)的工作形式。 它同樣可以被lin

5、ux 支持。有了linux,就有了第二種可能性。因?yàn)閘inux 卸載程序。一個(gè)嵌入式系統(tǒng)就可以利用它來(lái)節(jié)省內(nèi)存。假設(shè)我們已構(gòu)造一個(gè)系統(tǒng),它包括一個(gè)大概8mb 16mb flash memory 8mb memory flash memory 驅(qū)動(dòng)程序用來(lái)連接flash memory 和文件系統(tǒng)。作為替代,也可使用flash disk,用工具軟件可把flash memory 仿真為磁盤。有一個(gè)例子就是intel 公司可提供flash memory ipsm -intel persistent storage manager, 詳情見(jiàn)flbldr/swb/swb.htm。所有的程序都以文件形式存儲(chǔ)

6、在flash 文件中,需要時(shí)可以裝入內(nèi)存。這種動(dòng)態(tài)的、“根據(jù)需要加載的才能是支持其它一系列功能的重要特征:linux 同樣有很多內(nèi)核外運(yùn)行的公用程序。這些公用程序在初始化時(shí)運(yùn)linux 可加載模塊的功能包括在內(nèi)核里,驅(qū)動(dòng)程序和應(yīng)用程序就都可以被加載。它可以檢查硬件環(huán)境并且為硬件裝上相應(yīng)的軟件。這就消除了用一個(gè)程序占用許多flash memory 來(lái)處理多種硬件的復(fù)雜性。軟件的晉級(jí)更模塊化。你可以在系統(tǒng)運(yùn)行的時(shí)候,在flash 上晉級(jí)應(yīng)用程序和可加載驅(qū)動(dòng)程序。配置信息和運(yùn)行時(shí)間參數(shù)可以作為數(shù)據(jù)文件儲(chǔ)存在flash 虛擬內(nèi)存標(biāo)準(zhǔn) linux 的另一個(gè)特征是虛擬內(nèi)存的才能。正是這種神奇的特征使應(yīng)用程

7、序員可以狂熱地編寫代碼而不計(jì)后果,不管程序有多大。在嵌入式系統(tǒng)里不需要這種強(qiáng)大的功能。實(shí)際上,因?yàn)樗鼤?huì)帶來(lái)無(wú)法控制的時(shí)間因素,所以 每人會(huì)希望它在實(shí)時(shí)的系統(tǒng)里存在。這個(gè)軟件必須設(shè)計(jì)得更加精悍,以適宜硬件平臺(tái)上的物理內(nèi)存,就像其它嵌入 式系統(tǒng)一樣。注意:由于cpu 的原因,通常在linux 它支持共享文本,這樣就可以使許多程序共享一個(gè)軟件。虛擬內(nèi)存的調(diào)入功能可以被關(guān)掉,只要將交換空間的大小設(shè)置為零。假設(shè)你寫的程序比實(shí)際的內(nèi)存大,系統(tǒng)就 會(huì)用盡交換空間來(lái)執(zhí)行你的程序,那么這個(gè)程序?qū)⒉粫?huì)運(yùn)行,或者malloc 將會(huì)失靈。在許多cpu 上,虛擬內(nèi)存提供的內(nèi)存管理可以將不同程序分開(kāi),防止它們寫到其它地址

8、的空間上。這在嵌入式系統(tǒng)上通常是不可能的,因?yàn)樗?支linux 全局?jǐn)?shù)據(jù)。這也可以通過(guò) linux 共享內(nèi)存功 能來(lái)支持,但共享的只是指定的內(nèi)存部分。文件系統(tǒng)linux linux 提供ms-dos-compatible linux 還具有檢查和維護(hù)的功能,商業(yè)性供應(yīng)商往往不提供這些。這對(duì)于flash 系統(tǒng)來(lái)說(shuō)尤其重要,因?yàn)樗峭ㄟ^(guò)網(wǎng)絡(luò)更新的。假設(shè)系統(tǒng)在晉級(jí)過(guò)程中失去了才能,那它就沒(méi)有用了。維護(hù)的功能通常可以 解決這類問(wèn)題。flash memory 或其它這類的介質(zhì)上。而且,用于暫時(shí)保存文件,一個(gè)ram flash memories cpu 啟動(dòng)時(shí)最初運(yùn)行的軟件的引導(dǎo)模塊。這其中也可能包括l

9、inux 引導(dǎo)代碼。剩余的flash linux 的內(nèi)核可以通過(guò)引導(dǎo)代碼從flash 復(fù)制到 ram,或者還有一個(gè)選擇,內(nèi)核可以被存儲(chǔ)在flash cd-rom flash memory cd-rom 只要從 cd-rom 上引導(dǎo),類似從硬盤上一樣從cd-rom 上獲得所有的程序。 支持network file 小的 ram ram 磁盤設(shè)置為基于網(wǎng)絡(luò)web 效勞器通過(guò)簡(jiǎn)單的cgi script 存取狀態(tài)信息。在其它電腦上運(yùn)行的其它應(yīng)用程序包可以很容易地存取數(shù)據(jù)。引導(dǎo)-lilo 和 bios 在哪里初始化或引導(dǎo)代碼。類似于在pc 上的bios。它執(zhí)行了一些低程度的cpu bios 繼續(xù)識(shí)別哪個(gè)

10、磁盤里有操作系統(tǒng),把操作系統(tǒng)復(fù)制到ram 并且轉(zhuǎn)向它。實(shí)際上,這非常復(fù)雜,但對(duì)我們的目的來(lái)說(shuō)也非常重要。在pc上運(yùn)行的linux依靠pc bios 來(lái)提供這些配置和os加載功能。在一個(gè)嵌入式系統(tǒng)里經(jīng)常沒(méi)有這種 bios。這樣你就要提供同等的啟動(dòng)代碼。嵌入式系統(tǒng)并不需要像 pc 機(jī)上的bios “flash eprom 目的硬件和工具來(lái)定。一種流行的方法是把flash eprom 芯片插入eprom flash “另一個(gè)方法是通過(guò)一個(gè)jtag 界面。一些芯片有jtag 穩(wěn)定性 非常好。移植到新微處理器家族的linux 內(nèi)核運(yùn)行起來(lái)與原來(lái)的微處理器一樣穩(wěn)異上,其中大多數(shù)是在內(nèi)存管理和中斷控制領(lǐng)域。一旦成功移植,它們就非常穩(wěn)定。引導(dǎo)策略廣泛依賴于硬件要求,而且你必須有方案地做一些定制的工作。設(shè)備驅(qū)動(dòng)程序更加混亂:有些穩(wěn)定有 pc 可以找到一個(gè)與你的需求相近的驅(qū)動(dòng)程序修改一下。許多類似的驅(qū)動(dòng)程序都非常相近,所以把磁盤、網(wǎng)絡(luò)或一系列 的端口驅(qū)動(dòng)程序從一個(gè)設(shè)備移植到另一個(gè)設(shè)備上通常并不難。你可能發(fā)現(xiàn)許多驅(qū)動(dòng)程序都寫得很好、很容易理解, 但你還是要準(zhǔn)備一本關(guān)于內(nèi)核構(gòu)造的書(shū)在手頭。總之,這些操作系統(tǒng)和linux linux 的優(yōu)勢(shì)在于源代碼是公開(kāi)、注釋明晰和文檔齊全。這樣,你就可以控制和處理所出現(xiàn)的任何問(wèn)題。四、如何開(kāi)展嵌入式 linux

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論