時間:2023-05-26 17:45:29
序論:寫作是一種深度的自我表達。它要求我們深入探索自己的思想和情感,挖掘那些隱藏在內心深處的真相,好投稿為您帶來了七篇嵌入式設計系統范文,愿它們成為您寫作過程中的靈感催化劑,助力您的創作。
關鍵詞:UML;嵌入式系統;OOD建模;雙向工程
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2009)34-9742-02
The Design on UML Embedded Systems
YU Hai-wen
(College of Information Engineering Nanchang University(Pre-Lake Campus), Nanchang 33000, China)
Abstract: UML is the the most popular standard modeling language, embedded systems are professional computer system on the centre of application and the base of computer technology, embedded systems are the integrity of software and hardware; The design's quality of embedded systems is the key of success about digital products. The paper discuss the important conception of UML,and how to use the technology of UML OOD in the design of embedded systems, then show us the steps based on the example of microwave light.
Key words: UML; embedded systems; OOD modeling; two-way engineering
近年來,數字家電、汽車電子、MP3、Smart Phone等躍居電腦產業的主流地位,數字整合的需求日益增長,嵌入式軟件(Embedded Software)系統愈來愈復雜,涉及到的接口越來越多,這種軟、硬件結合的協同設計(Hardware/Software Co-design)需要不同技術背景的人共同開發,如何使這些具有不同技術背景和專長的人聯合開發、協同設計?UML可以解決這個問題。統一建模語言UML(Unified Modeling Language)采用一種簡單而直觀的圖形化方式描述系統設計中的各個問題和細節。不同技術背景的設計師只需懂得UML 符號就可以與對方交流、共同設計。
本文將重點討論如何在嵌入式系統設計中使用 UML 技術,并結合實例“微波爐小燈”演示采用 UML 的嵌入式系統設計過程。
1 UML OOD建模
1.1 UML基本概念介紹
1.1.1 UML事物
UML中事物是實體抽象化的最終結果,是模型中的基本成員,UML中包含結構事物、行為事物、分組事物和注釋事物。
1.1.2 UML建模圖
圖是事物集合的分類,UML中包含多種圖:1)類圖(Class Diagram);2)對象圖(Object Diagram);3)包圖(Package Diagram);4)組件圖(Compoment Diagram,也稱構件圖);5)部署圖(Deployment Diagram);6)用例圖(Usecase Diagram);7)時序圖(Sequence Diagram);8)協作圖(Collaboration Diagram);9)狀態圖(Statechart Diagram);10)活動圖(Activity Diagram)。
由于篇幅原因,本文將結合一個需求非常簡單的“微波爐小燈”的實例,給出幾個重要的圖。本文介紹的圖采用業界使用最廣泛的UML建模工具Rational Rose。Rational Rose為團隊開發和規范的開發過程管理提供了良好的支持。
1.2 UML OOD建模
從應用的角度上來講,面向對象的系統設計一般需要完成如下工作:
1)描述需求;2)根據需求建立系統的靜態模型;3)建立系統的動態模型:即描述系統的行為。
1.2.1 描述需求
“微波爐小燈”的實例需求很簡單,即微波爐里有個小燈,微波爐門打開時,它就亮起來,一旦關上門,就熄掉了。本文將根據此需求說明,采用UML設計一個控制程序來感應微波爐對象的狀態變化,并且觸發小燈對象的狀態變化。
1.2.2 建立系統的靜態模型
用例圖(Use Case Diagram):UML的Use Case圖1描述User對整體系統的功能需求,本例中,User會有兩項動作――“開微波爐”與“關微波爐”,而且期待開微波爐時會亮小燈,關微波爐時小燈會自動熄掉。
類圖(Class Diagram):如圖2,類是OOD中一個重要概念。軟件組件的模塊通稱為組件的類(Class),OOD設計理念是程序指令寫在類里,其所檢驗測試的對象都是類,等到電腦執行時才由電腦在內存中定義實體組件(對象)。
1.2.3 建立系統的動態模型
建立系統的動態模型實質就是描述系統的行為。
時序圖(Sequence Diagram):圖3這個時序圖反映了開微波爐過程中觸發小燈亮的詳細執行過程。
狀態轉換圖4(Statechart Diagram):對對象行為做詳細的描述。就小燈而言,消息的傳達是個事件(Event),這事件令小燈改變狀態(亮或熄)。
2 雙向工程
2.1 正向工程
Rational Rose中可實現正向(為模型產生相應的代碼,即程序框架)、逆向(從用戶原來的軟件系統導出該系統的模型)和雙向工程(實現模型和代碼之間的循環工程),從而保證模型與代碼的高度一致,這個功能意味著降低了開發人員編寫程序的復雜度和工作量。
Rational Rose支持C++、Visual C++、Java、Smalltalk、Ada、Visual Basic、PowerBuilder等語言和開發工具,并能為CORBA 應用生成接口定義語言(IDL),為數據庫應用生成數據庫描述語言(DDL)等。Rational Rose默認支持的語言是Java。
本例中,在完成了“微波爐小燈”類圖制作后,選擇菜單“Tools” “Java/J2EE”“generate code”即可生成Java代碼,當原建模文件更新時,代碼會同步更新。
2.2 逆向工程
前面所述正向工程雖然只是得到了代碼框架,實現功能部分的代碼仍需開發人員輸入。隨著軟件功能的實現及新的用戶需求的加入,原建模文件在需要更新時,可不需要重新畫圖,只需進行逆向工程操作即可。本例中,在完成了“微波爐小燈”代碼后,選擇菜單“Tools”“Java/J2EE”“reverse engineer”即可生成新的建模文件。
3 小結
在軟、硬件設計領域中,采用UML進行軟件組件設計及其架構(Architecture)規劃技術逐漸成為業界關注的焦點。根據本文及“微波爐小燈”實例,顯然從UML設計圖到Java(C及C++)代碼的過程很流暢。
參考文獻:
[1] 徐寶文. UML與軟件建模[M]. 北京:清華大學出版社,2006.
關鍵詞:傳感器網絡;道路監控系統;圖像識別;車載嵌入式系統
一、概述
如今,數量眾多的車輛都嵌入了GPS。作為車載模塊,GPS可以相對有效地儲存一些靜態興趣點(staticPointsOfInterest)的位置信息(如家庭,公司和商場信息等等)。然而,GPS還不能獲得更多的信息用來判定一些動態興趣點(dynamicalPointsOfInterest)的位置信息(如動態的車輛信息,路人信息或動態的車位空閑狀態信息)[1]。隨著嵌入式技術的發展,越來越多的感知模塊也被嵌入到車輛當中,用以輔助提升整車的智能化。我們可以將車輛的GPS模塊和攝像模塊進行整合再開發,用以偵測動態的興趣點。更進一步的,借助諸如車載自組網等類似技術,將分散用戶采集的數據快速有效收集至云端處理,進而分析得出實時的空閑車位,事故狀況等詳細信息可以被共享給更多用戶。
二、理論設計
首先,裝備了車載攝像系統的車輛負責采集原始圖像,并搜尋最佳的數據鏈路將圖像數據傳送至路邊基站(RSU:RoadSideUnit)。圖像信息再由RSU轉送至云服務器(CCS:CloudComputingSystem)。根據客戶不同的需求,實時的圖像可以被分類解析出不同的結果,以滿足不同的需求。系統可用于尋找可用的空閑車位。車輛巡弋道路的同時,通過攝像模塊捕捉街景用以搜尋可用的空閑停車位(圖中扇形探索區域),通過GPS模塊采集地理位置等相關信息。這些圖像信息經由RSU被上傳至CCS,云端程序將對圖像進行分析,并據此更新數據庫中可用空閑車位的時間和位置。在客戶端,那些激活車位搜尋功能的車輛可以接收到實時的信息,并由系統引導至可用的停車位。
三、系統實現
為協助客戶搜尋目標車輛和目標人物,描述了數據傳輸和數據分析的過程:車載端完成對圖像的實時采集、地理坐標的標注和圖像的加密壓縮;路邊基站RSU接收車載端的數據,并將這些數據合理上傳至CCS;在CCS中,數據首先需要被解密解壓,而后車牌的識別,人臉的識別等相關算法可以對數據進行處理分析,再由各自動化腳本對處理所得的結果,進行數據比對和數據庫更新的工作。整個車載端模型以RaspberryPi微處理器為中心,擴展以攝像模塊進行圖像采集,GPS模塊地理位置采集,以及電源、網卡等其他模塊。RSU將由兩臺PC進行模擬,多個自動化腳本進行網絡配置、文件管理和流量控制。圖像信息將經由此上傳至CCS。CCS采用AmazonElasticComputeCloud實現,服務器將配置數據庫、網頁服務器和文件管理等諸多系統,同時核心的圖像解析程序,也將由服務器自動調用,并根據處理結果,更新數據庫信息。圖像處理部分,使用C#語言和Emgu庫解析圖像,提取人臉信息,讀取車牌信息。車載端將拍攝的街景經由RSU上傳至云端,云系統將對采集的圖像數據進行分析。之后,系統將解析出的人臉和車牌,與客戶所要搜尋的目標進行比對,反饋一組可能的人或車輛,以及相應的地理位置和時間信息。如果某一目標得到客戶的確認,則根據其GPS信息和時間標簽等數據,系統會將目標出現的軌跡繪制在以GoogleMap為基礎的網頁上。
四、結束語
文中設計了一款新穎的道路監控系統構架,據此完成了實驗室模型,并為模型開發了車牌識別和人臉讀取的應用。通過這些實踐,表明了該理論設計可以支持對動態興趣點的檢測和定位。
參考文獻:
[1]曹沖.國內外車載GPS系統的應用現狀和發展趨勢[J].全球定位系統,2000(01):4-8.
[2]ObstM,HobertL,ReisdorfP.Multi-sensordatafusionforcheckingplausibilityofV2Vcommunicationsbyvision-basedmultiple-objecttracking[C]//VehicularNetworkingConference(VNC),2014IEEE.IEEE,2014:143-150.
[3]PauG,WengJT,GerlaM.Pics-on-wheels:Photosurveillanceinthevehicularcloud[C]//2013InternationalCon-ferenceonComputing,NetworkingandCommunications(ICNC).IEEEComputerSociety,2013:1123-1127.
[4]SharefBT,AlsaqourRA,IsmailM.Vehicularcommu-nicationadhocroutingprotocols:Asurvey[J].JournalofNetwork&ComputerApplications,2014,40(2):363-396.
[5]WhaiduzzamanM,SookhakM,GaniA,etal.Asurveyonvehicularcloudcomputing[J].JournalofNetwork&ComputerApplications,2014,40(1):325-344.
【關鍵詞】嵌入式;系統;低功耗;研究
一、嵌入式系統設計
嵌入式系統由軟件模塊以及硬件模塊組成,其中軟件模塊需要在硬件模塊中運行才可以實現其功能。嵌入式系統中的硬件部分是嵌入式系統的基礎部分,主要提供嵌入式系統的I/O端口、外設接口等,而軟件是嵌入式系統的控制核心,通過運行,給硬件提供指令,指示硬件進行相應的動作,也就是說軟件必須在硬件部分上運行,才可以起到很好的作用。
二、嵌入式系統趨向低功耗的必要性
1.節能的需求
嵌入式系統是一個相對復雜的系統,各個模塊工作時工作量是很大的,這就需要電源供應正常,保證系統的正確運行。而隨著系統的不斷擴大,各個模塊會造成更大的功耗,因此,為了更有效的利用嵌入式系統,延長嵌入式系統的工作時間,需要采取節能措施。
2.增強抵抗能力
在嵌入式系統工作的過程中,難免會受到外界的干擾,特別是嵌入式系統中敏感電子元器件,更應該做好防磁的措施,如果處理不當,不能很好的增強抵抗力,將嚴重影響系統的正常工作。嵌入式系統的功耗越高的話,電磁輻射能量就會越大,這樣嵌入式系統自身以及外設都會受到影響,造成精度的降低。
三、利用嵌入式系統硬件設計方法降低功耗
對于嵌入式系統而言,硬件功耗問題是主要原因,對于嵌入式系統低功耗設計的影響因素最大,處理好硬件低功耗設計,會對嵌入式系統低功耗做出重大貢獻。
1.優先選擇低功耗芯片、元器件
在嵌入式系統工作的過程中,芯片元器件對電源的消耗非常的大,因此,在嵌入式系統設計前,對于元器件的選擇,除了滿足設計性能指標的需求,還需要滿足功耗問題,盡量選擇低功耗芯片?,F在比較成熟的工藝主要有兩種,一個是TTL工藝,另一種是CMOS工藝,其中CMOS工藝耗能很少,可以優先選擇。對于芯片的設計或者焊接時,需要注意的是芯片引腳不要出現懸空端,懸空端容易引進外界噪聲信號,對嵌入式系統的電源會產生很大的影響,造成高低電平的轉換。在默認的情況下,如果高低電平轉換,功耗會很大,這個時候,最好選擇高電平輸出,確保耗能降到最低。
2.采用不同步供電技術
一個完整的嵌入式系統包含很多部分,比如說包含AD采樣、DA轉換、UART異步串行通信等等,這些模塊在系統工作時不會同時工作,有可能在進行完一個模塊后才進行下個模塊,為了降低功耗,可以選擇不同步,即采取分時方法,當某一模塊工作完后如果需要隔很長時間才會再執行操作,那就可以選擇執行完后將此模塊設置為休眠狀態,從而降低功耗。
3.合理利用I/O端口資源
嵌入式系統工作時,需要頻繁的使用I/O口,I/O口在輸出的情況下可以輸出約為20mA的電流,對于次,可以采取有效的措施,很好的利用這一電流,對其他外設采取供電的辦法,當然,外設對電流的需求需要小于20mA。采取這種辦法,可以很好的利用這一資源,得到充分的利用,更好的降低功耗。
4.加強智能電源設計工作
解決好嵌入式系統低功耗的問題,需要注意的就是減少耗能問題,而解決好耗能問題,還可以從另一個角度解決,優化電源設計,趨向于智能化方向發展。在智能電源中安裝自動檢測芯片,這樣可以確保系統處于不同的情況下時,采取不同的策略,及時的做出處理,這樣就可以對CPU以及外設模塊采取不同的處理措施。比如說,當系統在外部正常供電時,這個時候電源供應可以采取正常供電的方法,提供正常的工作頻率,保證電壓的正常使用;而如果電源模塊檢測到系統工作在外部電池狀態下,那這個時候,根據檢測的結果,可以降低系統主頻率,將電壓降低到最小運行值,確保嵌入式系統工作在低功耗的狀態下。
四、利用嵌入式系統軟件設計方法降低功耗
1.減少編譯運行時間
嵌入式系統的工作離不開軟件的執行,一個小模塊的正常運行往往需要很多條代碼執行編譯。嵌入式系統在運行中需要幾個模塊先后都運行,也就是說,需要大量的代碼執行編譯過程,這樣的話,就會直接造成功率極大消耗。針對于此,可以對程序進行優化,因為代碼有單周期、雙周期、四個周期之分,對代碼優化,盡量選擇與底層密切、周期短的指令,這樣,程序代碼在編譯的過程中,會提高處理速度,降低功耗。一般來講,低級語言,比如說匯編語言,相對高級語言,比如說C語言、C++語言功耗要低很多。
2.鼓勵使用軟件代替硬件,硬件代替軟件的方法
嵌入式系統在執行某個指令或者為了實現某個功能某塊時,可以既選擇硬件模塊實現,也可以用軟件方法實現,比如說軟件程序FIR濾波與硬件設計模擬低通濾波,這兩種方法都可以實現濾掉高頻信號,確保低頻信號全部通過。這個時候,可以比較這兩種方法,哪一種最優,最節省功耗。軟件中處理器需要時間,編譯消耗功率,而硬件中電路工作也會消耗功率,因此,通過比較,可以做出最佳選擇。
3.采用快速運算處理的計算方法
嵌入式系統在處理接收到的數據時,往往需要大量的運算,才會得到期望的結果。為了有效的降低功耗,提高處理速度,對一些算法可以進行優化。比如說在進行DFT傅立葉變換時,傳統的思想是利用DFT設計,求出結果,但是這種設計相對FFT快速傅立葉變換而言,運算量大,時間也很長,這個時候就可以采用FFT的方法。在進行設計時,對各種算法都進行充分比較,在需求的精度都滿足的情況下,優先選擇算法處理快的。
4.軟件設計建議多采用中斷程序
嵌入式系統在工作時,當系統上電初始化時,主程序只會實現系統的初始化,這其中包括各個模塊寄存器的初始化,外部設備的初始化。對于系統軟件降低功耗,還可以采取的辦法就是當程序沒有動作需要執行的時候,可以將系統設置在低功耗狀態,而當系統有動作要發生時,這個時候,可以利用中斷程序,讓系統跳到要執行動作的程序中,也就是說此時僅僅中斷程序會消耗功率,其他模塊不會。待中斷程序執行完之后,系統繼續回到低功耗的狀態,節省電量的消耗。
五、結束語
隨著社會的發展,科技不斷進步,嵌入式系統日益趨向于智能化、自動化方向發展。在各行各業中,嵌入式系統都得到了很好的應用。不過隨著功能的增強,應用增多,電源供應成了問題,很多嵌入式系統的耗能都很嚴重。考慮到嵌入式系統由軟件以及硬件兩大部分組成,因此,為了降低嵌入式系統的功耗,可以通過硬件措施以及軟件措施,實現目的。對硬件方法主要考慮到硬件的電源、芯片選擇以及I/O的有效利用;而對于軟件而言,主要就是對程序進行很好的優化,充分將軟件與硬件結合,只有這樣,才能更好的解決嵌入式系統的功耗問題,促進嵌入式系統更好的發展。
參考文獻
[1]鄭杰.嵌入式系統中的低功耗設計[J].設計技術,2005(2).
[2]王懷瑞.嵌入式系統中的低功耗設計研究[J].河北省科學院學報,2008(4).
[3]王志超.基于硬件構件的嵌入式系統低功耗研究[J].信息化研究,2010(5).
[4]楊天池.嵌入式系統的低功耗設計[J].儀器儀表學報,2006(6).
[5]張健.嵌入式系統低功耗電路設計[J].光電技術應用,2005(6).
[6]姚偉.嵌入式系統低功耗軟件技術研究[J].計算機技術與發展,2011(1).
本文通過對嵌入式數據庫系統進行詳細介紹,對嵌入式數據庫進行內涵介紹,并且對嵌入式數據庫的各種應用特點進行全面分析,結合嵌入式數據庫的發展情況,對嵌入式數據庫系統選擇進行闡述,對嵌入式數據庫對于數據的處理以及存儲過程進行詳細的分析,并且對嵌入式數據庫的主體架構進行介紹,望可以對我國嵌入式數據庫的發展給予支持。
關鍵詞:嵌入式;數據庫;系統設計
1 嵌入式數據庫系統介紹
1.1 嵌入式數據庫系統內涵
隨著計算機技術的不斷發展,數據處理系統中也逐漸將嵌入式進行融合,對該系統自身功能進行全面完善,根據軟硬件的不同的需求進行應用實現, 能夠滿足系統在進行應用過程中對數據庫系統的功能以及可靠性進行一定程度的提升。在嵌入式數據庫系統中毫無疑問的融入了計算機高新技術、電子操作技術以及更加先進的半導體技術,將這些先進的技術進行融合無疑是對數據庫系統處理數據的時候進行速度提升。另外融合了嵌入式技術的數據庫系統并不和傳統的數據庫桌面相同,因為嵌入式系統內存比較小,所以這種類型的數據庫系統所需要的內存以及磁盤空間都比較小,同時因為這種數據庫系統總是需要將不同類型的數據進行模型建造,所以可以將其分為層次性、網狀性以及關系型等集中類型。
從我國目前所制定的嵌入式數據庫系統的標準數據模型以及同步技術來看,嵌入式數據庫系統已經成為同類型中的新興焦點,該系統中不管是嵌入式的操作程序還是數據管理系統,所需要的內存都比較小,所以運行效率一般都比較高。但是因為在嵌入式環境中使用數據庫系統方面還是存在部分難度,因為不同的嵌入式應用模塊具備獨特的特點以及應用條件,而普通的數據處理系統只能夠完成相對比較簡單的數據查詢以及處理流程,所以在這方面還得加深研究。
1.2 嵌入式數據庫系統特點分析
嵌入式數據庫系統之所以能夠被廣泛運用,與其自身所具備的有點是有很大的關系的,根據同類型的數據庫系統相比較,這種新型的數據庫系統占有的系統資源很小,但卻能保證高度可靠性,安全性也不低,系統自身可移植性也比較很高,系統所具備的易用性也是相當成功的,所以結合我國嵌入式數據庫系統發展的實際情況,對其自身所具備的特點進行分析,現總結為下文所述。
1.2.1 系統資源占有量較小
由于嵌入式系統內部存儲資源很是有限,所以一般內部不會設置一些存儲空間比較大的設備,所以嵌入式數據庫系統就組織結構就必須設計合理,以便能夠在有限的內部存儲空間中儲存更多有用的數據,與此同時,嵌入式系統內部存儲空間一般都比較小,所以就決定著嵌入式數據庫體積比較小,并且運行效率很高的特點。另外影響嵌入式數據庫系統占有很小的系統資源是因為必須為其他應用程序預留一些磁盤空間,所以必須對系統占有資源進行最小化,這樣才能保證系統能夠正常運行。
1.2.2可靠性
因為嵌入式數據庫在運行過程中通常需要在移動環境中進行操作,就注定工作人員不能夠對嵌入式數據庫進行現場技術支持,所以注定嵌入式數據庫必須可靠,并且還必須保證在沒有工作人員進行維護的情況下也能夠保證嵌入式數據庫進行正常運行,所以對于嵌入式數據庫來說,必須具備可靠性。
1.2.3良好的可移植性
因為一般的嵌入式數據庫系統是根據具體情況進行需求滿足之后才設計出來的,所以為了能夠保證與其他軟件能夠進行數據通信,所以嵌入式數據庫開發人員必須在進行系統開發的時候提供必備的模塊,以實現嵌入式數據庫的可移植性,在應用對象有所變化的時候可以根據需求進行功能實現,可移植性能夠保證資源不好出現大范圍的浪費。
2 嵌入式數據庫系統設計方案
2.1 嵌入式數據庫系統選擇
嵌入式數據庫在進行設計的時候,通常都是選擇嵌入式Linux系統,該系統是一種源代碼完全公開的嵌入式操作系統,它是對標準Linux操作系統經過小型化裁剪后,能夠固化在容量只有幾百千字節或者幾兆字節的存儲器芯片中,并且應用于特定嵌入式環境的專用Linux操作系統。而且,Linux操作系統具有穩定性好、網絡能力優異、支持多種文件系統等優點。因此,嵌入式Linux一般具有性能可靠、軟件資源豐富、網絡功能強大、使用成本低等優點,而且支持多任務多線程,支持實時性擴充。同時,其內核可以靈活地進行配置,因此具有很強的適用性。
Linux的內核小、效率高,內核的更新嵌入式Linux速度很快,Linux是可以定制的,其系統內核最小只有約134KB。第三,Linux是免費的OS,在價格上極具競爭力。 Linux還有著嵌入式操作系統所需要的很多特色,突出的就是Linux適應于多種CPU和多種硬件平臺,是一個跨平臺的系統。到目前為止,它可以支持二三十種CPU。而且性能穩定,裁剪性很好,開發和使用都很容易。很多CPU包括家電業芯片,都開始做Linux的平臺移植工作。移植的速度遠遠超過Java的開發環境。也就是說,如果今天用Linux環境開發產品,那么將來換CPU就不會遇到困擾。同時,Linux內核的結構在網絡方面是非常完整的,Linux對網絡中最常用的TCP/IP協議有最完備的支持。提供了包括十兆、百兆、千兆的以太網絡,以及無線網絡,Toker ring(令牌環網)、光纖甚至衛星的支持。
2.2 系統處理過程分析
由嵌入式應用程序的界面控制部分等待使用設備用戶的輸入。當等到一條用戶輸入的數據請求時,首先分析該數據請求是否能夠在本地使用設備數據庫中得到滿足。若能夠借助本地使用設備數據庫實現數據請求,則將數據請求交給使用設備嵌入式數據庫管理系統:否則,將數據請求交給使用設備同步程序。當使用設備嵌入式數據庫管理系統接到數據請求時,它首先分析數據請求的合法性,若合法,則響應請求,訪問嵌入式數據庫,得到處理結果,并將其返回給嵌入式應用程序;否則,向嵌入式應用程序返回出錯信息。當使用設備同步程序接收到數據請求時,它與PC同步程序聯系,建立連接后,將數據請求發送過去,由PC同步程序進行后續處理。PC同步程序的監聽線程監視串口狀態,發現來自PDA的數據請求便將該請求交給PC同步程序的主線程。主線程接到數據請求后,將其交給ODBC接口模塊進行處理。ODBC接口接到來自PC同步程序的數據請求后,解析數據請求,并判別其合法性,若合法,則訪問ODBC主數據源,得到處理結果,并將該處理結果交給PC同步程序,由其回饋給PDA;若非法,則通知PC同步程序向PDA報告出錯信息。
2.3 系統數據存儲過程分析
當前流行的數據庫管理系統基本上都采用關系數據模型。關系模型己經成為數據庫中數據模型事實上的標準,采用關系數據模型有利于為廣大開發社區接受。同時關系模型的描述能力比較強,效率高。對于嵌入式計算,數據庫應該是輕量級的,不宜采用面向對象模型。嵌入式設備的一個主要特征是其資源緊張性。另外,嵌入式數據庫本質上還是面向個人服務的數據庫管理系統,數據管理的功能相對于傳統的企業級數據庫來說要求相對較弱。基于上述原因,這里我們將采用效率更高的關系模型。存儲組織包括數據表示和存儲空間管理兩個方面。數據表示是數據庫中應用數據的物理存儲的表現方式,它受到數據庫系統所采取的存儲模型的制約。存儲空間組織是對存儲設備可用存儲空間的應用組織策略,它的目標有兩個:高效利用存儲空間和為快速的數據存取提供便利。在嵌入式數據庫中,數據將分為“永久版本”和“臨時版本”。
數據庫在運行的大部分時間中都只關心臨時版本,只在系統空閑或顯式要求的情況下才將臨時版本中的數據更新到永久版本中。這是一種樂觀的持久化策略。因此,對嵌入式數據庫來說,我們首先關注的是數據在主存中的高效的存取,其次,才會考慮數據的文件組織形式,盡可能地提高數據在內外存之間的調入、調出效率。因此,嵌入式數據庫避免直接操作外存,而使用操作系統提供的文件系統接口實現外存處理;同時,不再使用數據緩沖區,而使用高活躍度數據存儲區域替代,兩者的不同在于前者在內存中按頁面來組織緩沖區,每個頁面對應磁盤上的一個存儲塊,后者則以記錄為單位存儲頻繁被存取的數據。同時,因為數據字典占用空間很小且存取頻繁,所以將其常駐內存。
2.4 系統主題架構
由于嵌入式系統地存儲量有限,因此在終端嵌入式數據庫中的數據不能存儲大量的數據,同時,由于嵌入式系統處理器的主頻較低,運行速度較慢,以及網絡速度的原因,系統也不可能將每次的用戶請求都提交到服務器端后臺數據庫處理數據,因此這就要求我們將大多數的數據處理放在終端數據庫系統中處理,為了保證終端嵌入式數據庫數據的有效性和實時性,我們必須保證嵌入式數據庫和服務器端數據庫的數據同步復制。 當終端數據庫發生更新時,立即將更新的請求發送給終端同步程序,由終端同步程序和服務器端同步程序建立連接,再由服務器端同步程序將該請求交給服務器端數據庫實現后臺數據庫的更新。
由于嵌入式系統地存儲量有限,因此在終端嵌入式數據庫中的數據不能存儲大量的數據,同時,由于嵌入式系統處理器的主頻較低,運行速度較慢,以及網絡速度的原因,系統也不可能將每次的用戶請求都提交到服務器端后臺數據庫處理數據,因此這就要求我們將大多數的數據處理放在終端數據庫系統中處理,為了保證終端嵌入式數據庫數據的有效性和實時性,我們必須保證嵌入式數據庫和服務器端數據庫的數據同步復制。當終端數據庫發生更新時,立即將更新的請求發送給終端同步程序,由終端同步程序和服務器端同步程序建立連接,再由服務器端同步程序將該請求交給服務器端數據庫實現后臺數據庫的更新。
結論
隨著信息技術的不斷發展,各行業中所需要處理的數據大量化,并且對于數據具體的處理結果保密性也在逐步要求保密,而嵌入式系統因其強大的保密性、可移植性以及體積小等特點,在數據處理過程中被廣泛運用,嵌入式數據庫由此誕生。通過對嵌入式數據庫系統特點進行全面分析,對其系統選擇過程進行分析,并且結合嵌入式數據庫運行范圍進行處理過程分析,對嵌入式數據庫在對具體數據進行處理之后的存儲過程進行分析,對嵌入式數據庫的主題架構進行全面了解,由此可以將嵌入式數據庫系統進行全面分析,對該系統與傳統數據庫進行對比,可以將其優越性進行全面展示。相信隨著相關科技技術的不斷發展,嵌入式數據庫一定會發展的更為迅速,更為全面。鑒于本人學識有限,在本文撰寫過程中存在一些不足之處,望各位同仁能夠及時指出,以便日后及時作出修正。
參考文獻
[1]張永.嵌入式數據庫系統的設計與實現[D].清華大學,2012.
[2]殷曉偉,楊尚霖.關于嵌入式數據庫系統設計的研究[J].科技創新與應用,2014.
[3]張媛媛.嵌入式數據庫管理系統的研究與實現[D].華東師范大學,2011.
關鍵詞:軟件測試控制系統嵌入式
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1007-9416(2012)05-0151-01
1、嵌入式系統的特點以及實現方法
嵌入式系統的主要特點如下:嵌入式系統的硬件和軟件的緊密結合,具有很強的依賴性之間的軟件和硬件,嵌入式系統的功能和性能通過軟件和硬件來實現。因此,在硬件平臺上的嵌入式軟件系統的測試。在硬件,嵌入式軟件系統測試。這是一個不同的主機平臺上的軟件,只能在電腦平臺的主機平臺軟件系統測試,不需要專門的硬件平臺測試。嵌入式系統的要求非常苛刻的時間。嵌入式系統,實時控制系統,為要求苛刻的實時場合。嵌入式系統的硬件資源有限,存儲容量和速度的嵌入式CPU和應用環境的制約。
軟件測試的方法可以分為黑盒測試和白盒測試兩大類:黑盒測試是一種基于需求的測試,以驗證測試軟件是否滿足軟件的需求。白盒是基于結構的測試,軟件控制流測試包括語句覆蓋,分支覆蓋,等等和數據流測試。覆蓋測試原理是:測試軟件,測試工具的使用靜態分析,以確定代碼中的分支點,并統一編號,分配給每個分支點。計劃執行的歷史信息和路徑,你可以從這份文件中,為了計算的代碼覆蓋率。嵌入式軟件與主機平臺上的軟件有不同的特點,所以從主機平臺軟件測試,測試也明顯不同。
2、嵌入式系統的應用
嵌入式系統為中心,基于計算機技術,利用可定制的功能性,可靠性,成本,體積,功耗嚴格要求,設備專用計算機系統111硬件和軟件。它一般由嵌入式微處理器,硬件設備,嵌入式操作系統和用戶應用程序,控制其他設備,監事或管理由四部分。最典型的嵌入式系統的特點是與人民生活密切相關的,任何一個普通的人可能有各種使用嵌入式微處理器技術的電子產品,MP3,PDA等數字設備,數字家電,智能家電,地理信息系統的車輛。事實上,新的嵌入式設備的數量遠遠超過通用計算機。其硬件系統表現如右:
嵌入式操作系統和通用操作系統有許多功能,如可靠性,可削減,可擴展性,實時等。前三嵌入式應用環境的要求?!皩崟r”,以滿足系統內容的實時性要求。通常在一些嵌入式操作系統,通常被稱為“實時操作系統,但它是操作系統的性能有一個更好的實時能力。在一個特定的嵌入式應用系統中,沒有實時的結論。不同的嵌入式操作系統,可以有不同的實時能力。嵌入式操作系統應符合設計實時任務調度,運行速度快,實時性能的內容嵌入式操作系統的能力,可以更容易地實現實時的應用程序。
3、應用航天業的條件和發展
今天的軟件和硬件技術的發展,嵌入式系統被廣泛用于航空航天,國防,軍工,電子通訊等行業,其中軟件變得越來越復雜。應用嵌入式系統的特點,這些地區往往是高安全性,關鍵任務系統,軟件,小缺陷可能會嚴重威脅生命和國家安全的,巨大的天文財產損失。這使得它保證嵌入式軟件的質量和可靠性變得至關重要。
4、航天業的應用條件
嵌入式系統的任務有一定量的時間限制。據截止時間,實時系統,實時被分為“硬實時時間”和“軟實時”。可以完全滿足硬實時應用的需求,否則,導致發生重大安全事故,甚至造成了生命和生態破壞。
可預見性是一個系統,能夠實時執行任務的時間來判斷,以確定它是否能滿足任務的期限。在航空航天工業實時系統需要嚴格的時間限制,稱為實時系統的可預測性是一個重要的性能要求也至關重要。除了硬件延遲的可預見性,也需要軟件系統的可預測性,包括應用程序的可預測性的響應時間可預測的,也就是說,在有限的時間內完成必要的工作;和操作系統,即實際運行時的開銷時間原語,調度功能應范圍內,以確保應用程序的執行時間為界。
5、與外部環境的相互作用
航天業需要的外部環境是獨一無二的,這樣的外部環境是一個實時系統不可或缺的組成部分??臻g計算機子系統控制系統,它必須在規定時間內作出回應外部請求。外部物理環境經常指責子系統,兩個互動,以形成一個完整的實時系統。為此,該系統需要一個靜態的分析,并保留資源和冗余配置,系統可以工作在最壞的情況下,或避免損失??煽啃砸殉蔀楹娇蘸教旃I的實時系統性能不可缺少的一個重要指標來衡量。
6、結語
隨著嵌入式系統的廣泛使用,其實時性已經吸引了越來越多的關注。實時嵌入式系統是一個綜合性的問題,應考慮在嵌入式系統設計,硬件不僅是軟件的選擇也應注意。在這些領域的嵌入式系統應用的特點,往往是高安全性,關鍵任務系統,軟件,小缺陷可能會嚴重威脅生命和國家安全的一個巨大的天文數字的財產損失。這使得它變得至關重要,以確保嵌入式軟件的質量和可靠性。
參考文獻
[1]謝東,李昌禧.基于LabVIEW的嵌入式軟件黑盒測試系統的研究[J].工業控制計算機,2005年12期.
[2]楊順昆,劉斌,陸民燕.WindowsNT下幾種定時器的實現原理及性能比較[J].測控技術,2002年12期.
[3]崔小樂,劉斌,鐘德明,阮鐮,高小鵬.實時嵌入式軟件仿真測試平臺的體系結構設計[J].測控技術,2003年07期.
[4]崔小樂,劉斌,楊順昆,阮鐮.嵌入式軟件仿真測試平臺的建模環境設計[J].測控技術,2004年02期.
關鍵詞:計算機技術;嵌入式系統;UML語言
UML語言又被稱為標準建模語言,主要是被用來進行軟件開發與支持模型化的計算機圖形化的語言。在軟件開發過程中,可以通過標準建模語言提供的可視化與模型化支撐進行軟件規格、配置及構造的最優化。與此同時,它還是一種易于表達、功能強大、定義良好的建模語言,基于這些優勢,將UML語言應用到嵌入式系統的開發設計中,能實現目前用戶對該系統的功能、體積、功耗及可靠性的要求。
1嵌入式系統應用背景的產生
嵌入式系統是基于計算機技術,融合了電子技術、半導體技術,并對應用領域實際需求產生的一種具有功能強大、可塑性強及應用廣泛的知識集成系統。由于該系統自身的優勢,因此,被廣泛應用于技術、資金密集的工業生產中。目前,市場中的電子產品、汽車、數碼等都應用了嵌入式系統進行生產。嵌入式系統最早形成時還形不成“系統”概念,因為最初的嵌入式系統主要是依靠單片機運行的,只能執行單線程的工作程序[1]。隨著計算機技術及商業社會的發展需求,嵌入系統初步形成,可以運用計算機嵌入式系統進行應用軟件的編輯,執行任務管理和內存管理等功能。發展到至今,嵌入式系統已經可以實現實時的多任務操作,成為目前應用軟件開發的主流,發展與應用前景廣闊。
2UML語言及其框圖的應用模式分析
UML語言是一種應用于計算機系統編程的可視化建模語言,在具體應用操作中可以實現滿足用戶對系統需求的刻畫、分析、設計集成以及實現和測試,實現系統功能的構建更加合理[2]。UML建模語言可以將建立的模型數據信息運用標準的圖形元素直觀地展示在用戶、測試人員、管理人員以及開發人員或是其他項目相關人員面前,使他們可以對系統的功能、結構設計進行更好的交流,實現對系統的良好構建。目前,市場上最為常用的建模語言主要有Booch、OMT及UML三種語言,相較于其他兩種建模語言來講,UML語言更加簡化,操作簡單、適用范圍廣泛,因此,被許多企業采用。UML語言不僅可以對靜態的結構進行建模,還可以對具有動態行為的系統進行建模,因此,適用于系統的全部開發階段。UML語言是一種可視化的建模語言,因此,該語言中的所有語素都是由一個個的框圖組成的。系統設計人員應用在UML語言時,就是通過對框圖的描述來實現對整個系統的設計。UML語言的框圖有很多種,現針對幾種主要框圖進行分析。BusinessUseCase框圖與UseCase:這兩種框圖所對應的語素不同,BUC框圖所代表的語素主要是對整個系統的機構功能進行描述;而UC框圖則主要是根據用戶對系統的需求,進行系統功能描述。因此,經常被用來與客戶之間進行交流,提取有效建構信息。Class框圖:此種框圖是一種靜態圖,代表語素主要被用來對系統中的類進行描述。通過對該框圖的觀察,可以清楚地了解系統中類的內容、功能以及結構關系。StateChart框圖:該框圖主要被用來對建模對象的狀態及各個建模對象之間的轉換關系進行描述,主要用來提供建模系統的動態功能[3]。此種框圖在實際應用中被廣泛運用到系統的實際建立中,可以生成系統構建所需的全部代碼。Collaboration框圖與Sequence框圖:這兩種框圖都是對系統對象之間的相互關系進行描述的框圖。但Sequence框圖在進行描述時主要以時間順序進行,而Collaboration框圖則是針對系統角色與顯示對象之間的交互進行著重描述。通過Collaboration框圖,可以讓系統建筑師與質量保證工程師及時了解分析對象的分布情況,若出現不合理狀況,系統建筑師便可及時進行調整或重新分配。UML語言中包含的這些框圖,在進行系統設計、建模以及分析的過程中,會提供多種不同的圖片表達形式,因此,可以用在系統開發的不同階段。將UML語言中的這些框圖應用在嵌入式系統開發中,通過它們之間的有機結合可以構建出一個功能完整、一致的高效系統。
3UML語言在嵌入式系統中的有效應用
3.1以車載GPS終端為例
嵌入式系統在各個領域被廣泛應用,在本文中,我們以車載GPS終端為例進行UML語言在嵌入式統中的有效應用研究[4]。機動車的車載GPS終端是用來進行實時定位的裝置,被廣泛應用在出租車或運輸車這類需要進行調度、定位的車隊中。該終端的功能實現主要通過車載GPS終端與衛星進行實時的信號傳輸,實現對機動車位置的掌握,進而進行準確定位。準確定位后,再通過無線通訊網絡將機動車位置反饋給遠程的中心系統。此時,中心指揮系統就可以清楚掌握終端反饋的位置信息,實現對機動車的遠程控制與跟蹤。在機動車遇到特殊情況時,中心系統可以通過終端對車輛進行控制,實現車隊的正常運行。與此同時,若是車輛遇到險情,車載終端還可以起到電話功能,進行遠程報警。
3.2進行嵌入式設計時對UML語言的需求分析
運用UML語言對嵌入式車載GPS終端系統需求進行分析時,可以通過UseCase框圖進行系統功能分析。UseCase框圖在進行系統功能表達時,在圖中顯示的車載GPS終端系統功能需求將其分為兩部分來展示,即角色與案例。所謂的角色就是指與系統之間進行交互的人和物,而其中的案例則是用來表示系統所提供的功能塊。通過UseCase框圖對系統進行觀察,可以幫助人們將系統實現與系統目標進行分離,因此,可以使系統開發人員詳細了解系統的重要組成部分。最后,設計出的系統功能能實現用戶的需求,而不會使設計人員在系統細節實現上過多地浪費時間[5]。通過觀察UseCase框圖發現,車載GPS終端中的角色定位主要有兩類,即車載終端的用戶與監控中心的用戶。車載終端的用戶可以通過終端進行報警。而監控中心系統的用戶則可以通過系統查詢車輛位置信息及發送調度信息。
3.3通過UML語言對產品進行規格說明
對系統的規格說明要求要比需求分析的顯示更為詳細,因此,運用UML語言進行嵌入式系統的設計,可以使系統規格說明更加清晰與直觀。在對車載終端系統中的規格進行說明時,首先、可以通過Class框圖進行描述。該框圖可以對系統處理的數據結構進行描述,對接收到的GPS衛星信號進行描述。其次,Class框圖在進行規格說明時,還要將系統進行功能模塊劃分,并且找出所有系統,對主要對象進行識別。之后再通過UML語言中的Collaboration框圖對各對象之間的關系進行描述。最后,在進行規格說明的業務描述時,也就是對規范的操作系統完成主要功能流程的顯示,此時,可以運用UML語言中的Activity框圖進行展示。
4結語
通過對嵌入式系統開發需求以及UML語言的功能進行分析,發現利用UML語言進行嵌入式系統設計可以滿足提高該系統的開發速度與產品質量要求。與此同時,還可以增加系統設計的可重復使用性,實現了對系統設計的優化及利用,滿足了用戶對系統的各項需求,具有廣闊的應用前景。
參考文獻
[1]禚百田.UML在空調嵌入式系統開發中的應用研究[D].青島:山東科技大學,2010.
[2]王承啟.嵌入式系統設計方法研究與嵌入式避障機器人的實現[D].北京:北京交通大學,2009.
[3]廖曉文.基于UML與Petri網的嵌入式系統建模方法的研究[D].廣州:廣東工業大學,2005.
[4]曹雷,薛平貞.UML建模在嵌入式系統開發中的應用[J].現代電子技術,2013(16):41-44.
關鍵詞:ARM;嵌入式系統;linux;BootLoader
中圖分類號:TP274文獻標識碼:A文章編號:1009-3044(2008)09-11724-02
The Design and Realization of Embedded System Based on ARM
LIN Hua
(Computer Science College of Yangtze University, Jingzhou 434023, China)
Abstract: This paper designed a new embedded system based on ARM.Firstly, it introduced the embedded system hardware design, Secondly, it analyzed detailedly the compile and transplant course of the uCLinux, in the end it discussed on the communication software design for uCLinux.
Key words: ARM; Embedded System; Linux; BootLoader
隨著計算機技術和半導體技術的發展,嵌入式系統在個人數據處理、多媒體通信、在線事務處理、生產過程控制、交通控制等各個領域內得到了廣泛的應用,各種嵌入式相關的新產品紛紛涌現。嵌入式系統越來越引起人們的關注,對嵌入式系統的研究,是掌握信息技術的核心。本文以處理器S3C44B0為核心,設計出一個基于ARM+uCLinux的嵌入式系統,對于嵌入式系統有獨到的研究。
1 嵌入式硬件方案設計
1.1 系統硬件平臺
系統的硬件平臺主要是由嵌入式處理器、FLASH、SDRAM、以太網接口、USB接口、UART接口、JTAG接口、I/O接口、I2C、系統電源、復位電路等組成。系統硬件結構圖如圖1所示:
1.2 主要硬件的設計
1.2.1 ARM嵌入式處理器的設計
處理器采用Samsung公司的S3C44B0微處理器,S3C44B0最突出的特點是它的CPU核使用ARM公司的16/32位ARM7TDMI RISC結構。ARM7TDMI系統擴充包括Thumb協處理器、片上ICE中斷調試支持和32位硬件乘法器。S3C44B0通過在ARM7TDMI內容基礎上擴展一系列完整的通用器件,主要包括:8KB的Cache,外部存儲器控制器,LCD控制器,2通道UART,4通道DMA, 71個通用I/O端口,8個外部中斷源等。
1.2.2 網絡接口的設計
采用RTL8019AS芯片作為網絡接口芯片,RTL8019AS是一種高度集成的以太網芯片,能簡單的實現Plug and Play并兼容NE2000,芯片內部集成了DMA控制器、ISA總線控制器、16KSRAM,用戶可以通過DMA方式把需要發送的數據寫入片內SRAM中,讓芯片自動將數據發送出去;而芯片在接收到數據后,用戶可以通過DMA方式將數據讀出。
1.2.3 USB接口的設計
采用PDIUSBD12作為USB接口芯片,PDIUSBD12是一款性價比很高的USB器件,完全符合USB1,1版的規范,它通常用作微控制器系統中實現與微控制器進行通信的高速通用并行接口,它還支持本地的DMA傳輸。
2 軟件體系的設計
軟件開發過程包括BootLoader設計、uCLinux的編譯和移植、uCLinux下的網絡編程和應用程序開發等。
2.1 BootLoader的設計與實現
在嵌入式系統中,BootLoader的作用與PC機上的BIOS類似,BootLoader可以完成對系統板上的主要部件進行初始化,也可以下載文件到系統板、對CPU、SDRAM、Flash,通過串行口Flash進行擦除與編程。
BootLoader作為系統復位或上電后首先運行的代碼,一般應寫入Flash存儲器中并從起始物理地址0x0開始。BootLoader根據實現的功能不同,其復雜程度也各不相同。一個簡單的BootLoader程序可以僅僅完成串行口的初始化,并進行通信,而功能完善的BootLoader可以支持比較復雜的命令集,對系統的軟硬件資源進行合理的配置與管理。因此,用戶可根據自身的需求實現相應的功能。BootLoader的設計步驟一般如下:
2.1.1 系統初始化
系統初始化主要實現以下的幾個功能:
(1)進入SVC32工作模式(管理模式),以取得訪問一些系統資源的權限。
(2)禁止所有的中斷并清除所有中斷標志。
(3)初始化SYSCFG寄存器。
(4)導入鏈接器預定義的變量,為存儲器的重映射做準備。
2.1.2 Memory Remap的實現
Memory Remap就是地址重映射,即存儲空間的重新分配,主要分為以下幾個步驟:
2.1.2.1 初始化SDRAM
系統剛上電后,只有Flash是可用的, SDRAM沒有被初始化,是不可用的。此時Flash被映射到0-2M的地方。通過配置相關寄存器完成SDRAM的初始化后,SDRAM被映射到了2-18M的位置上。此時的Memory Map為:0-2M是Flash,2-18M是SDRAM
2.1.2.2 將BootLoader從Flash中復制到SDRAM中
在此之前,BootLoader一直是在Flash里面執行的。為了實現Memory Remap,并且保證remap后BootLoader可以繼續執行,需要把BootLoader自己全部復制到SDRAM里面去。BootLoader的大小利用鏈接器預定義的程序段變量。此時,在SDRAM里己經有了一個BootLoader的拷貝,但是必須注意,BootLoader還是在Flash里面執行。此時的Memory Map為:0-2M還是Flash,2-18 M還是SDRAM,但是SDRAM里面多了一個BootLoader的拷貝。
2.1.2.3 地址重映射
通過設置S3C44B0的相關寄存器,可以完成最后的地址重映射。SDRAM在0-16M的位置,而Flash被Map到了16-18M的位置。由于在SDRAM有一份BootLoader的拷貝,所以Remap以后BootLoader將轉到SDRAM里面來執行。
2.1.3 Kernel的裝載
此處的Kernel即為uClinux的內核映像,完成Kernel把控制權交給了uClinux來管理,Kernel將被裝載到的裝載后,系統就0x8000處。Kernel的裝載過程如下所示:
(1)將RW段復制到OxA0,0000處,ZI段清零。
(2)設置堆棧指針SP=0x80,0000。
(3)跳轉到函數loadkernel()中。
(4)將Kernel裝載到0x8000,同時將PC指向0x8000。
(5)Kernel獲得控制權,接管整個系統。
2.2 嵌入式操作系統的編譯與移植
本系統采用uCLinux作為操作系統,uCLinux包含一整套的編譯、調試等開發工具、內核源代碼、各種文件系統、圖形接口、各種協議、驅動程序以及豐富的應用程序。uCLinux操作系統主要由內核、Shell、文件結構組成;其中內核是系統的心臟,是運行程序和管理磁盤、打印機等硬件設備的核心程序。Linux的內核主要由5個子系統構成:進程調度、內存管理、虛擬文件系統、網絡接口和進程間通信,在設計時,可以根據需要配置內核選擇體系結構和裁剪內核。
2.2.1 uClinux交叉編譯環境
uClinux交叉編譯環境的建立可分為以下兩個步驟:
(1)要在宿主PC機上安裝標準Linux操作系統(也可以在Windows環境下安裝Cygwin,模擬Linux環境,但可能在開發過程中產生兼容性錯誤,因此不推薦),如RedHat Linux,并對計算機的硬件設備如網卡進行配置,確認網絡配置正確。
(2)要在宿主PC機上安裝交又編譯的一些工具鏈,主要有以下這些: arm-elf-binutils,arm-elf-gcc, genromfs,arm-elf-gdb, elf2flt等。
2.2.2 uClinux內核的編譯和移植
uClinux內核采用模塊化的組織結構,通過增減內核模塊的方式來增減系統的功能,因此,通過正確合理的設置內核的功能模塊,只編譯系統所需功能的代碼以減少內核的大小。編譯工作的具體步驟下所示:
(1)解壓源代碼文件并進入到uClinux-Samsung目錄中。
(2)make menuconfig進行內核配置。
(3)make dep尋找文件依賴關系。
(4)make clean清除無用文件。
(5)make lib only 編譯庫文件。
(6)make user_ only編澤用戶應用程序文件。
(7)make image編澤內核文件。
(8)make編譯完成,生成內核文件。
編譯上述步驟后,會在images目錄下看到一些文件,如:linux.text,linux.data,romfs.img,image.bin,image.rom,image.ram,boot.rom。
最后,將image.rom燒寫入Flash存儲器的0x0處,當系統復位或上電時,內核會自解壓到SDRAM,并開始運行??梢酝ㄟ^串行口觀察uClinux的啟動情況。
如果編譯和加載的過程都正確,就可以在超級終端中看到uClinux移植成功的相關提示。
2.3 uCLinux下的網絡編程
2.3.1 uCLinux下的網絡編程協議簡介
uCLinux下的TCP/IP網絡協議棧的各層之間是通過一系列互相連接層的軟件來實現Internet地址族的。其中BSD socket層由專門用來處理BSD socket的通用套接字管理軟件來處理,它由INET socket層來支持。INET socket為基于IP的協議TCP和UDP管理傳輸端點。 UDP是一個無連接協議,而TCP(傳輸控制協議)是一個,TCP靠的端對端協議。傳輸UDP包的時候,uCLinux不知道也不關心它們是否安全到達了口的地。TCP則不同。在TCP連接的兩端都需要加上一個編號,以保證傳輸的數據被正確接收。在IP層,實現了Internet協議代碼,這些代碼要給傳輸的數據加上一個IP頭,并且知道如何把傳入的IP包送給TCP或者UDP協議。在IP層以下,就是網絡設備來支持所有的uCLinux 網絡工作,如PLIP, SLIP和以太網。
2.3.2 uCLinux環境下的socket編程
網絡的socket數據傳輸是一種特殊的I/O,socket也是一種文件描述符,也具有一個類似文件的函數調用socket()。該函數返回一個整型的socket描述符,隨后的連接建立、數據傳輸等操作都是通過該socket函數實現的。常用的socket類型有兩種:流式socket和數據報式socket。兩者的去別在于:前者對應于TCP服務,后者對應于UDP服務。uCLinux中socket編程中用到的函數有:
(1)socket函數:為了執行I/O,一個進程必須做的第一件事情就是調用socket函數,指定期望的通信協議類型(使用IPv4的TCP、使用IPv6的UDP, Unix域字節流協議等)。
(2)connect函數:TCP客戶用connect函數來建立一個與TCP服務器的連掛。
(3)bind函數: 函數bind給套接口分配一個本地協議地址,對于網際協議,協議地址是非顛倒2位IPv4地址16位的TCP或UDP端口號的組合。
(4)listen函數:僅被除數TCP服務器調用。將未連接的套接口轉換成被動套接口,指示內核應接受指向此套接口的連接請求。根據TCP狀態轉換調用函數listen導致套接口從CLOSED狀態轉換到LISEN狀態。listen函數還規定了內核為此套接口排隊的最大連接個數。
(5)accept函數:accept函數由TCP服務器調用,從已完成連接隊列頭返回下一個己完成連接。若己完成連接隊列為空,則進程睡眠。
3 小結
嵌入式系統是以應用為中心、以計算機技術為基礎、軟硬件可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。嵌入式系統已經在各個領域 得到了廣泛的應用,如遠程監控、智能儀表、數控系統、消費產品等。隨著嵌入式系統軟硬件技術的飛速發展,其在行業的應用領域必將更為廣闊,嵌入式系統的研究將會有非常廣泛的前景。
參考文獻:
[1] 魏忠,蔡勇,雷紅衛.嵌入式開發詳解[M].北京:電子工業出版社,2003.
[2] 王陳賾.ARM嵌入式技術實踐教程[M].北京:航空航天大學出版社,2005.