廖 娜
(西安外事學院,陜西西安 710077)
隨著我國數字信息的不斷發展,嵌入式系統的應用也變得越開越廣泛,已經設計到軍事、工程、科研等各個領域,可以說已經深入到人們生活、工作的每個方面,并且已經和人類活動變得密不可分。傳統的嵌入式系統大多都是為了實現控制對外界有關控制的請求進行簡單的處理,但是沒有實際的操作系統,這也是傳統嵌入式系統最大的缺點之一。后來隨著C語言在操作系統開發中的應用,在嵌入式系統中開始出現了操作系統,最好的例子就是Windows CE,由于其成本比較低而且網絡功能比較好,所以在現代信息技術中被廣泛的應用。
硬件與操作系統是組成一般嵌入式系統的主要部分,嵌入式系統的應用環境往往具有其自身的特點,所以對于嵌入式系統來說是有別于其他系統的。
嵌入式系統的處理器主要有嵌入式微處理器、嵌入式微控制器以及起入室DSP這三類。嵌入式微處理器類似于計算機中的CPU,通過把微處理器安裝在電路板上,與嵌入式有關的一些功能則設計在母板上,這樣就使得嵌入式系統的體積小、能耗也比較低;單片機就是我們所說的嵌入式微控制器,是把CPU、少量的RAM、ROM集成在一個電路之中,常見的有8051單片機;嵌入式DSP則是用來處理離散時間信號的,通過嵌入式DSP可以很大程度上上提高其編譯和執行的速度,在我們的圖片處理以及FFT等方面都有很多的應用。
一般的操作系統有內核層和應用層兩種。內核層主要是為系統提供最基礎的功能,像進程管理、設備管理等都是內核層所控制的,而且這些功能一般都是以系統調用的方式被用戶所使用的,但是由于現在操作系統的內核中都包含有很多的功能,所以內核也就變得很大,剪裁時變得非常麻煩。
現在微內核結構是嵌入式系統中應用比較廣泛的,內核中只有最基本的任務調度、內存管理、是中管理等最基本的功能。其它的部分都是在用戶態工作的,所以這類系統的剪裁都比較方便,更能夠滿足用戶的需求。
在嵌入式操作系統中,其內核不但可以在Flash上運行,而且可以在內存中運行。Flash運行這種方式是現在的嵌入式系統大多采用的方式,主要是將內核的可執行映像燒寫在Flash上面。內核加載方式則與這種方式不同,主要是將內核的壓縮文件在Flash上面存放,通過內存解壓之后在開始執行,但是這種方式相對于前邊那種方式來說要復雜一些,但是由于內核加載方式主要是用RAM存取數據的,所以要比Flash的存取速度快。
由于嵌入式系統不同于我們常用的計算機系統,所以對于嵌入式系統開發的技術來說也有很高的要求。
嵌入式系統的開發主要有宿主機以及目標機這兩個部分組成。對于運行過程中的執行編譯、定址過程主要是由宿主機完成的,而嵌入式軟件所運行的平臺則是我們所說的目標機。在嵌入式系統的開發過程中首先要將程序轉換成目標機上運行所需要的二進制代碼,實現這一過程主要是通過編譯、連接和定址這三個步驟完成的。交叉編譯器是實現編譯過程的主要部分,交叉編譯器指的是在一個計算機平臺中運行之后為其它平臺產生代碼,我們所用的編譯器主要有C++。編譯時產生的文件將會組合成為一個文件,這就是我們所說的連接過程。物理存儲器被指定到目標文件的每個相對偏移處就是我們所說的定址過程,這個過程所產生的文件就是在嵌入式平臺運行的二進制文件。
在嵌入式系統的開發過程還有一項非常重要的工作就是調試應用程序。在目標機上調試應用程序大多都是通過宿主機—目標機的調試方式,之間主要由穿行口線進行連接的。對于交叉調試來說又可以分為任務急、源碼及、匯編級這三種調試方式,先要把宿主機中的應用程序下載或者燒錄在目標機上。經過目標監控器的相關步驟之后再將調試信息提供給宿主機。
嵌入式系統的開發過程大多都是需要移植的,主要是先在PC及中編寫之后在移植。因為軟件是需要移植的,所以在軟件的編寫過程中要用比較容易移植的語言進行邊學,避免使用函數、字節對齊等這些問題。一下將對軟件移植中需要注意的問題進行探討。
2.2.1 移植協議棧過程中的字節順序
字節順序一般可以分為小端、大端這兩種字節順序,主要是多余一個字節的數據的在存放時的排列順序。低字節數據在內存低地址存放、高字節數據在內存高地址存放稱之為小端字節順序;與之相反的則是大端字節順序?;诓煌脚_的PC機所采用的字節序是不同的,有的要改變存儲順序。
2.2.2 移植協議棧過程中的字節對齊
在嵌入式系統的研制過程中,字節對齊是需要我們嚴肅對待的一個問題。我們經常使用的使得字節對齊的方式有很多,例如在GCC的MakeFile中添加編譯ack Struc,這種方法能夠有效地解決結構中的空洞,但是強制類型轉換所引起的錯誤這種方法是不能夠解決的。為了有效的提高軟件的移植性和互通性,可以同在在收包處添加拆包函數,在發數據包處添加組包函數,通過這種方法有效的解決了字節序對齊的問題。
2.2.3 移植協議棧過程中的位段
在嵌入式系統的開發過程中硬件平臺決定著位段的分配空間,位段的分配大多是自右向左的,但是有的卻是自左向右的,由于位段不同的分配順序會導致數據存取的錯誤。要想解決這個問題就必須采用條件編譯的方式進行編譯,根據平臺的不同來定義順序位段的不同。
2.2.4 移植協議棧過程中的代碼優化
由于嵌入式軟件的自身特點,其對于軟件的質量有著很高的要求,所以在嵌入式系統的研發過程中對于代碼的優化非常重要,通過優化代碼能夠很好的提高代碼效率,使代碼變小,所以在編寫軟件的過程中要主要從以下幾個方面采取措施:
改善代碼效率
為了提高處理速度,首先要按照不同的頻率進行排序,減少代碼的執行時間。同時也要采用全局變量,這要比我們所使用的函數傳遞參數的效率高很多,參數入棧以及參數出棧的過程都被省略了。
縮減代碼
由于標準庫的例程一般都包含大多數可能出現的狀況,在系統中占據著很大的內存空間,所以在我們的嵌入式系統編程過程中要盡量不使用標準庫例程,從而達到我們縮減代碼的目的。
在我們的日常生活中,嵌入式產品已經深入到我們的生活之中,例如電視機、洗衣機、遠程會議室等都是嵌入式系統被應用的范圍。隨著藍牙耳機越來越被人們所接受,嵌入式系統中接入無線電這種新的嵌入式系統的應用也逐漸流行起來。隨著現代科技的發展,嵌入式的無線電芯片的價格使得平常百姓能夠接受,所以未來人們的生活會與其有越來越密切的關系,人們的工作也可以通過這種技術的發展而改變工作環境。
由南京東大移動互聯技術有限公司生產研發的一種多媒體網關,通過家庭設備之間的藍牙通訊,使得各個設備能夠一起連接到固話網、互聯網等網絡當中。這就是我們當今所流行的只能家居網絡,通過這個網絡使得我們的家庭信息交流更便捷,其工作原理主要是在操作系統的控制之下,利用機器的硬件設備以及各個執行機構,對家庭網絡中的各個設備實現控制和檢測的活動。
孩子的玩具、我們的手機已經可以實現人機對話,例如有的玩具可以通過我們的聲音實現對其的控制,要打電話的時候只需對著手機喊出對方的名字手機就可以自動撥號給對方,以上這主要是通過嵌入式語音芯片實現的,在嵌入式操作系統中通過語音學的相關技術,使得人與機器的對話變得更加人性化。
東南大學的移動通信實驗室以及其附屬的公司,已經從1998年開始對藍牙技術進行針對性的研究,現在已經研制出了多種包含藍牙的嵌入式系統,例如我們的數字電視、電話系統等都是這一研究的成果,隨著類似于藍牙這種無線電技術與嵌入式系統的緊密結合,在未來人們的生活中嵌入式系統的應用匯變得越來越廣泛。
目前中國人民正在研發的移動數據庫,主要是由移動終端和同步服務器組成,將嵌入式系統和數據寫入到移動終端上面,使得人們在一定時可以訪問數據庫的相關資源,還可以帶著數據庫移動,例如在救護車搶救病人的過程中,醫務人員可以在車上查詢附近的醫院等。
在本文中從我國目前嵌入式系統的主要特點以及嵌入式系統的開發和應用進行了闡述。在嵌入式系統的研發過程中我們深切的體會到前途是系統的開發與其他類似的開發工作十分相似,其最突出的特點就是嵌入式系統的硬件平臺是自身獨有的,這就使得我們在嵌入式系統的研究過程中會產生一系列復雜的工作,所以在我們以后的開發、研究過程當中要更加專注于軟件的創建,在開發、研究一種新的嵌入式系統之前要對其平臺進行深刻的掌握和了解,掌握與之相關的硬件知識,并且要與我們的硬件工程師一起協調工作,選擇最符合人們的使用要求以及價格成本最合理的系統平臺進行研究。
隨著嵌入式系統相關技術的不斷完善與進步,在未來的人們生活中會運用到越來越多的嵌入式系統,對于嵌入式系統的研究人員來說,我們更應該按照人們的需求,按照嵌入式產品的開發規律努力的工作,去創造出更多、更適合人們使用的嵌入式產品。
[1]張勇.項目比較法在嵌入式系統實訓教學模式中的應用探討.《網絡與信息》.2012年9期
[2]羅麗麗,尹俊文,毛曉光.基于Hi3510和Linux2.6內核嵌入式系統的存儲研究與應用.《計算機研究與發展》.2009年z2期
[3]王磊,吉木斯.廠礦用繼電保護和自動裝置設計淺析.《電力系統保護與控制》.2009年16期
[4]錢磊,郁文生,朱明華.基于AADL的無線傳感器網絡的建模與分析.《計算機科學》 .2012年z3期