?? 00000001.htm
字號:
<?xml version="1.0" encoding="gb2312"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><title>Linux在嵌入式系統(tǒng)中的應(yīng)用 sunno </title></head><body><center><h1>BBS 水木清華站∶精華區(qū)</h1></center><a name="top"></a>發(fā)信人: appleton (蘋果牛★語如冰絲情似火), 信區(qū): Embedded <br />標 題: Linux在嵌入式系統(tǒng)中的應(yīng)用 <br />發(fā)信站: BBS 水木清華站 (Tue Sep 26 22:35:31 2000) <br /> <br />日期: 2000年5月18日 20:36 譯者:陳德勇 e_mail: <a href="mailto:chendyg@sohu.com">chendyg@sohu.com</a> 原作:Joel <br />R.Williams (emlinux的主要設(shè)計師,專為網(wǎng)絡(luò)和通訊設(shè)計嵌入式系統(tǒng),<a href="http://www.em">http://www.em</a> <br />linux.linux) <br />摘要:Linux系統(tǒng)不僅能夠運行于PC平臺;然而在嵌入式系統(tǒng)中Linux仍然可以大放光芒 <br />。本文描述了嵌入式系統(tǒng)的特色,和如何在嵌入式系統(tǒng)中應(yīng)用Linux。 <br />計算機用于嵌入式控制設(shè)備領(lǐng)域的歷史和計算機本身的歷史一樣久遠。最初的用于控制 <br />機電式電話交換器的通訊設(shè)備中“固態(tài)控制程序”就是嵌入式程序。“計算機系統(tǒng)”在 <br />當時并不普遍;所以固態(tài)程序存放在內(nèi)存中控制相應(yīng)的設(shè)備。在那種時代,運行控制程 <br />序是很先進的思想,而且當時也只能如此而已。 <br />那時的計算機是專為特定的用戶設(shè)計,特殊的應(yīng)用程序指令、I/O設(shè)備和主要的計算設(shè)備 <br />集成在一起。微處理器的產(chǎn)生改變了這種局面,價格低廉、結(jié)構(gòu)小巧的CPU和外設(shè)連接在 <br />總線上形成了比較大的系統(tǒng)。這種硬件架構(gòu)很穩(wěn)定,于是在這個基礎(chǔ)上,這建立起了通 <br />用的軟件開發(fā)環(huán)境和編程模式,且簡化了編程,。 <br />軟件也在隨著硬件的發(fā)展而發(fā)展;開始只有簡單的工具用于編程和調(diào)試,而且每一個軟 <br />件都必須從頭編寫。程序大都采用宏匯編語言,匯編程序還不很完善,調(diào)試是一件很麻 <br />煩的事。因此一直到70年代的中期,模塊化編寫程序和標準化的運行庫才逐漸流行起來 <br />。 在70年代的后期,出現(xiàn)了嵌入式系統(tǒng)的操作系統(tǒng)。它們采用匯編語言編寫,而且只能 <br />運行在相應(yīng)的特殊處理器上;處理器過時,則這個操作系統(tǒng)就沒有用處了,對新的處理 <br />器必須重新編寫操作系統(tǒng)的所有代碼。C語言出現(xiàn)以來,采用C語言操作系統(tǒng)更有效率了 <br />,操作系統(tǒng)的編寫有了很大的改觀。C語言有很好的穩(wěn)定性和可移植性,所以今天的許多 <br />操作系統(tǒng)都使用C來編寫。 于是在80年代末,出現(xiàn)了好幾個商業(yè)的嵌入式操作系統(tǒng)。而 <br />且它們已經(jīng)演化成為今天的主流嵌入式操作系統(tǒng)。比如很有名的、使用者眾多的操作系 <br />統(tǒng):Vxwork、pSOS、Neculeus和Windowss CE。 <br />不過很多的嵌入式系統(tǒng)還沒有使用操作系統(tǒng),它們僅僅包含一些控制流程而已。在嵌入 <br />式系統(tǒng)相對簡單的情況下,這些控制流足以應(yīng)付。但是,當嵌入式系統(tǒng)的功能復(fù)雜后, <br />簡單控制邏輯就不夠用了,這時你必須使用操作系統(tǒng)。如果不使用操作系統(tǒng)將會使得控 <br />制系統(tǒng)邏輯結(jié)構(gòu)復(fù)雜混亂,很容易出錯。再者,有些嵌入式系統(tǒng)需要接入網(wǎng)絡(luò)系統(tǒng),比 <br />如賓館的門鎖控制已經(jīng)需要接入網(wǎng)絡(luò),因此就更需要嵌入式的操作系統(tǒng)來支持應(yīng)用軟件 <br />。 <br />除了商業(yè)化的操作系統(tǒng)外,還有其他的有版權(quán)要求的非商業(yè)化嵌入式操作系統(tǒng)可以使用 <br />。然而今天的Linux系統(tǒng)有著嵌入式操作系統(tǒng)需要的很多特色、突出的優(yōu)勢:適應(yīng)于多種 <br />CPU和多種硬件平臺,性能穩(wěn)定,裁剪性很好,開發(fā)和使用都很容易。因此,我們決定在 <br />嵌入式系統(tǒng)中使用Linux操作系統(tǒng)。 <br />1.它具有很好的工具,可以跨越ICE等屏障 <br />原來開發(fā)嵌入式系統(tǒng)的關(guān)鍵是需要一套好用的開發(fā)和調(diào)試工具;而且在開發(fā)所不同階段 <br />還需要不同的工具。就比如工匠,只有好的工具才能夠使工作完成得又好又快。 <br />傳統(tǒng)的開發(fā)調(diào)試工具就是ICE-在線仿真器;它取代目標板的微處理器,給目標程序提供 <br />仿真環(huán)境,同時可以連接監(jiān)視器;允許開發(fā)者調(diào)試和監(jiān)視程序的運行。盡管這種運行方 <br />式會引起一些奇怪的問題,但是它總能夠讓你明了程序在目標板的工作狀態(tài),免除了對 <br />底層的軟硬件接口的猜測。但是,這種設(shè)備價格非常貴。過去,甚至在整個開發(fā)期內(nèi), <br />開發(fā)嵌入式系統(tǒng)主要依靠這些調(diào)試工具。 可是,我們發(fā)現(xiàn),一旦軟硬件能夠正常支持串 <br />口的運行時,我們可以使用其他的調(diào)試辦法。現(xiàn)代的嵌入式系統(tǒng)采用相當成熟的微處理 <br />器。因此很容易使得串口工作。串口連接成功,可以進行很多的開發(fā)調(diào)試。所以我們不 <br />用ICE也可以很好地開始開發(fā)和調(diào)試工作了,同時還降低開發(fā)費用。 <br />Linux利用GNU項目的C編譯器來編譯程序,使用gdb源程序級調(diào)試器來調(diào)試程序。它們提 <br />供了合適的手段來使你能夠開發(fā)嵌入式的Linux系統(tǒng)。為了開發(fā)基于Linux的嵌入式系統(tǒng) <br />,可以按以下方法進行: <br />向串口輸出提示字符串,例如“hello word ”或“Waston, come here I need you!” <br />等, 然后通過串口,指揮gdb開始工作。以這種方式和另外一臺運行g(shù)db程序的Linux主機 <br />系統(tǒng)“交談”,通過串口,你可以很方便地讓gdb調(diào)試目標程序。通過串口和gdb通訊, <br />可以進行C源程序級的調(diào)試。甚至你還可以以串口把其他的程序下裝到RAM或flash存儲器 <br />。通過串口,使用gdb可以使得軟硬件的初始化代碼繼續(xù)運行到核心全部啟動。 <br />一旦核心在運行了,你就可以使用其他的更好的調(diào)試工具,象Kgdb等,如果連接了網(wǎng)絡(luò) <br />,你也可以讓網(wǎng)絡(luò)工作起來。同時你就可以用GUI的xgdb來調(diào)試應(yīng)用程序。 <br />2.滿足實時性時要求 <br />細細分析起來,大多數(shù)系統(tǒng)并不需要嚴格的實時性。而嵌入式系統(tǒng)也經(jīng)常被誤解為就是 <br />實時性系統(tǒng)。其實,多數(shù)嵌入式系統(tǒng)并不需要實時性,而且實時性本身是個相對的概念 <br />絕對的實時性是指對需要的服務(wù)以限定的方式和在限定時間內(nèi)提供,比如在微秒級內(nèi)響 <br />應(yīng)。 這種硬實時性功能只是 針 對 特 殊 的 設(shè) 備而 言 ,例 如 數(shù) 字 信 號 處 理 <br /> 等。 而這 些 要 求 使 用 特 殊 的 硬 件 如FIFO、DMA 和 其 他 特 殊 設(shè) 計 的 <br /> 硬 件 也 可 以 滿 足 。 <br />有 些 設(shè) 計 者 不 能 夠 準 確 地 分 析 出 系 統(tǒng) 真 正 實 時 需 求 , 很 多 情 <br /> 況 下 對 實 時 的 需 求 在1-5 毫 秒 內(nèi) 響 應(yīng) 就 可 以; 大 部 分 情 況 下, <br /> 軟 實 時 響 應(yīng) 足 以 滿 足 要 求 :WINDOWSS 的98Crashed_Yet 在98% 的 時 間 <br /> 內(nèi) 可 以 在4 每 秒 內(nèi) 響 應(yīng) , 如 果 時 間 是20 秒, 則 總 會 響 應(yīng) 。 那 些 <br />
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -