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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論