嵌入式實習目的及報告範文

一、嵌入式的概述:

隨著信息化技術的發展和數位化產品的普及,以計算機技

術、晶片技術和軟體技術為核心的嵌入式系統再度成為當前研究和套用的熱點,通信、計算機、消費電子技術(3c)合一的趨勢正在逐步形成,無所不在的網路和無所不在的計算(everything connecting, everywhere computing)正在將人類帶入一個嶄新的信息社會。

二、實習目的

學習和了解了嵌入式在生活中的重要作用和發展過程,熟練掌握arm硬體體系結構,熟悉linux下的嵌入式編程流程,積累自己的軟體編寫經驗,能夠參與並實現一個真實和完整的嵌入式項目,為今後的學習和將從事的技術工作打下堅實的基礎

三、實習任務

第一階段linux操作和編程基礎

主要介紹linux的基本命令和基礎編程知識,包括linux

的檔案操作和目錄操作命令,vi編輯器,gcc編譯器,gdb調試器和make項目管理工具等知識。

第二階段 嵌入式c語言編程基礎

主要介紹在嵌入式開發編程中c語言的重要概念和編程技巧中的重點難點,以複習串講和實例分析的形式,重點介紹包括函式與程式結構,指針、數組和鍊表,庫函式的使用等知識。

第三階段linux上c強化編程訓練

主要包括整數算法訓練,遞歸和棧編程訓練,位操作訓練,指針訓練,字元串訓練和常用c庫函式編程接口實踐,強化學員對linux下基本編程開發的理解和編碼調試的能力。

第四階段 linux環境高級編程及項目開發編程實踐

主要包括系統編程(信號/系統調用/管道/fifo/訊息佇列/共享記憶體等),檔案i/o編程(檔案描述符/檔案讀寫接口/原子操作/阻塞與非阻塞io等,多任務和多執行緒編程(進程標識/ 用戶標識/fork與vfork/多執行緒概念/執行緒同步等),網路編程(網路基本概念/套接口編程/網路位元組次序/client/server結構/udp編程);掌握linux下socket編程的開發流程,熟悉網路編程的調用接口函式和相關數據結構,使學員初步具備在linux上進行系統編程開發的能力。同時綜合之前所學內容和編程技術,以小組為單位進行一個團隊合作項目的開發,考核內容包括檔案i/o編程,多執行緒編程,網路編程和項目文檔編寫。

第五階段 嵌入式處理器體系結構及編程實踐

主要介紹arm體系結構及其基本編程知識,包括指令分類,定址方式、指令集、存儲系統、異常中斷處理、彙編語言以及c\c++和彙編語言的混合編程等知識。同時結合arm嵌入式開發板硬體設計原理和基本硬體設計流程,分析各種外設的工作原理和驅動機制,並自己動手實踐完成一個arm開發板上的編程大作業。

第六階段 嵌入式linux開發基礎及高級套用

主要介紹嵌入式linux開發應用程式的基本流程和知識,包括嵌入式linux基本概念和開發流程、bootloader工作原理、核心裁減配置和交叉編譯、根檔案系統製作、網路編程以及圖形界面和資料庫開發等知識。同時獨立完成一個基於嵌入式linux gui的套用編程大作業。

第七階段 嵌入式 linux驅動理論及驅動程式開發實踐

主要介紹嵌入式linux上驅動程式開發規範,包括設備驅動程式概念、字元設備驅動程式、塊設備與網路設備、網卡驅動以及常用嵌入式設備驅動開發等知識。同時獨立實現兩種嵌入式設備驅動程式的編寫,包括驅動模組的調試和載入以及完整的項目開發文檔的編寫。

第八階段 嵌入式linux項目團隊開發實踐鍛鍊

主要包括設計並實現一個真實和完整的嵌入式項目的開發流程,涉及到數據採集、網路通訊、圖形用戶界面顯示以及嵌入式資料庫存儲系統等多種嵌入式linux編程技術。要求學員建立起團隊開發和協同工作的企業項目開發模式的概念和流程,強化學員對編寫項目概要設計文檔和詳細設計文檔的理解,為就業前的職業技能和素質訓練做好充分準備。

四、實習內容

1. 嵌入式的歷史與現狀

雖然嵌入式系統是近幾年才開始真正風靡起來的,但事實上嵌入式這個概念卻很早就已經存在了,從上個世紀70年代單片機的出現到今天各種嵌入式微處理器、微控制器的廣泛套用,嵌入式系統少說也有了近30年的歷史。縱觀嵌入式系統的發展歷程,大致經歷了以下四個階段:

 無作業系統階段

嵌入式系統最初的套用是基於單片機的,大多以可程式控制器的形式出現,具有監測、伺服、設備指示等功能,通常套用於各類工業控制和飛機、飛彈等武器裝備中,一般沒有作業系統的支持,只能通過彙編語言對系統進行直接控制,運行結束後再清除記憶體。這些裝置雖然已經初步具備了嵌入式的套用特點,但僅僅只是使用8位的cpu晶片來執行一些單執行緒的程式,因此嚴格地說還談不上"系統"的概念。

這一階段嵌入式系統的主要特點是:系統結構和功能相對單一,處理效率較低,存儲容量較小,幾乎沒有用戶接口。由於這種嵌入式系統使用簡便、價格低廉,因而曾經在工業控制領域中得到了非常廣泛的套用,但卻無法滿足現今對執行效率、存儲容量都有較高要求的信息家電等場合的需要。

 簡單作業系統階段

20世紀80年代,隨著微電子工藝水平的提高,ic製造商開始把嵌入式套用中所需要的微處理器、i/o接口、串列接口以及ram、rom等部件統統集成到一片vlsi中,製造出面向i/o設計的微控制器,並一舉成為嵌入式系統領域中異軍突起的新秀。與此同時,嵌入式系統的程式設計師也開始基於一些簡單的"作業系統"開發嵌入式套用軟體,大大縮短了開發周期、提高了開發效率。 這一階段嵌入式系統的主要特點是:出現了大量高可靠、低功耗的嵌入式cpu(如power pc等),各種簡單的嵌入式作業系統開始出現並得到迅速發展。此時的嵌入式作業系統雖然還比較簡單,但已經初步具有了一定的兼容性和擴展性,核心精巧且效率高,主要用來控制系統負載以及監控應用程式的運行。

 實時作業系統階段

20世紀90年代,在分布控制、柔性製造、數位化通信和信息家電等巨大需求的牽引下,嵌入式系統進一步飛速發展,而面向實時信號處理算法的dsp產品則向著高速度、高精度、低功耗的方向發展。隨著硬體實時性要求的提高,嵌入式系統的軟體規模也不斷擴大,逐漸形成了實時多任務作業系統(rtos),並開始成為嵌入式系統的主流。

這一階段嵌入式系統的主要特點是:作業系統的實時性得到了很大改善,已經能夠運行在各種不同類型的微處理器上,具有高度的模組化和擴展性。此時的嵌入式作業系統已經具備了檔案和目錄管理、設備管理、多任務、網路、圖形用戶界面(gui)等功能,並提供了大量的應用程式接口(api),從而使得套用軟體的開發變得更加簡單。

 面向internet階段

21世紀無疑將是一個網路的時代,將嵌入式系統套用到各種網路環境中去的呼聲自然也越來越高。目前大多數嵌入式系統還孤立於internet之外,隨著internet的進一步發展,以及

internet技術與信息家電、工業控制技術等的結合日益緊密,嵌入式設備與internet的結合才是嵌入式技術的真正未來。

資訊時代和數字時代的到來,為嵌入式系統的發展帶來了巨大的機遇,同時也對嵌入式系統廠商提出了新的挑戰。目前,嵌入式技術與internet技術的結合正在推動著嵌入式技術的飛速發展,嵌入式系統的研究和套用產生了如下新的顯著變化:

1. 新的微處理器層出不窮,嵌入式作業系統自身結構的設計更加便於移植,能夠在短時間內支持更多的微處理器。

2. 嵌入式系統的開發成了一項系統工程,開發廠商不僅要提供嵌入式軟硬體系統本身,同時還要提供強大的硬體開發工具和軟體支持包。

3. 通用計算機上使用的新技術、新觀念開始逐步移植到嵌入式系統中,如嵌入式資料庫、移動代理、實時corba等,嵌入式軟體平台得到進一步完善。

4. 各類嵌入式linux作業系統迅速發展,由於具有原始碼開放、系統核心小、執行效率高、網路結構完整等特點,很適合信息家電等嵌入式系統的需要,目前已經形成了能與windows ce、palm os等嵌入式作業系統進行有力競爭的局面。

5. 網路化、信息化的要求隨著internet技術的成熟和頻寬的提高而日益突出,以往功能單一的設備如電話、手機、冰櫃、微波

爐等功能不再單一,結構變得更加複雜,網路互聯成為必然趨勢。

6. 精簡系統核心,最佳化關鍵算法,降低功耗和軟硬體成本。

7. 提供更加友好的多媒體人機互動界面。

2.體系結構

根據國際電氣和電子工程師協會(ieee)的定義,嵌入式系統是"控制、監視或者輔助設備、機器和車間運行的裝置"(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。一般而言,整個嵌入式系統的體系結構可以分成四個部分:嵌入式處理器、嵌入式外圍設備、嵌入式作業系統和嵌入式套用軟體。

嵌入式處理器

嵌入式系統的核心是各種類型的嵌入式處理器,嵌入式處理器與通用處理器最大的不同點在於,嵌入式cpu大多工作在為特定用戶群所專門設計的系統中,它將通用cpu中許多由板卡完成的任務集成到晶片內部,從而有利於嵌入式系統在設計時趨於小型化,同時還具有很高的效率和可靠性。

嵌入式處理器的體系結構經歷了從cisc(複雜指令集)至risc(精簡指令集)和compact risc的轉變,位數則由4位、8位、16位、32位逐步發展到64位。目前常用的嵌入式處理器可分為低端的嵌入式微控制器(micro controller unit,mcu)、中高端的嵌入式微處理器(embedded micro processor unit,empu)、用於計算機通信領域的嵌入式dsp處理器(embedded digital signal processor,edsp)和高度集成的嵌入式片上系統(system on chip,soc)。

目前幾乎每個半導體製造商都生產嵌入式處理器,並且越來越多的公司開始擁有自主的處理器設計部門,據不完全統計,全世界嵌入式處理器已經超過1000多種,流行的體系結構有30多個系列,其中以arm、powerpc、mc 68000、mips等使用得最為廣泛。

 嵌入式外圍設備

在嵌入系統硬體系統中,除了中心控制部件(mcu、dsp、empu、soc)以外,用於完成存儲、通信、調試、顯示等輔助功能的其他部件,事實上都可以算作嵌入式外圍設備。目前常用的嵌入式外圍設備按功能可以分為存儲設備、通信設備和顯示設備三類。

存儲設備主要用於各類數據的存儲,常用的有靜態易失型

存儲器(ram、sram)、動態存儲器(dram)和非易失型存儲器(rom、eprom、eeprom、flash)三種,其中flash憑藉其可擦寫次數多、存儲速度快、存儲容量大、價格便宜等優點,在嵌入式領域內得到了廣泛套用。

目前存在的絕大多數通信設備都可以直接在嵌入式系統中套用,包括rs-232接口(串列通信接口)、spi(串列外圍設備接口)、irda(紅外線接口)、i2c(現場匯流排)、usb(通用串列匯流排接口)、ethernet(乙太網接口)等。

由於嵌入式套用場合的特殊性,通常使用的是陰極射線管

(crt)、液晶顯示器(lcd)和觸摸板(touch panel)等外圍顯示設備。

 嵌入式作業系統

為了使嵌入式系統的開發更加方便和快捷,需要有專門負責管理存儲器分配、中斷處理、任務調度等功能的軟體模組,這就是嵌入式作業系統。嵌入式作業系統是用來支持嵌入式套用的系統軟體,是嵌入式系統極為重要的組成部分,通常包括與硬體相關的底層驅動程式、系統核心、設備驅動接口、通信協定、圖形用戶界面(gui)等。嵌入式作業系統具有通用作業系統的基本特點,如能夠有效管理複雜的系統資源,能夠對硬體進行抽象,能夠提供庫函式、驅動程式、開發工具集等。但與通用作業系統相比較,嵌入式作業系統在系統實時性、硬體依賴性、軟體固化性以及套用專用性等方面,具有更加鮮明的特點。

嵌入式作業系統根據套用場合可以分為兩大類:一類是面向消費電子產品的非實時系統,這類設備包括個人數字助理

(pda)、行動電話、機頂盒(stb)等;另一類則是面向控制、通信、醫療等領域的實時作業系統,如windriver公司的vxworks、qnx系統軟體公司的qnx等。實時系統(real time system)是一種能夠在指定或者確定時間內完成系統功能,並且對外部和內部事件在同步或者異步時間內能做出及時回響的系統。在實時系

第11/14頁

統中,操作的正確性不僅依賴於邏輯設計的正確程度,而且與這些操作進行的時間有關,也就是說,實時系統對邏輯和時序的要求非常嚴格,如果邏輯和時序控制出現偏差將會產生嚴重後果。

實時系統主要通過三個性能指標來衡量系統的實時性,即

回響時間(response time)、生存時間(survival time)和吞吐量(throughput):

o 回響時間 是實時系統從識別出一個外部事件到做

出回響的時間;

o 生存時間 是數據的有效等待時間,數據只有在這段時間內才是有效的;

o 吞吐量 是在給定的時間內系統能夠處理的事件

總數,吞吐量通常比平均回響時間的倒數要小一點。

實時系統根據回響時間可以分為弱實時系統、一般實時系統和強實時系統三種。弱實時系統在設計時的宗旨是使各個任務運行得越快越好,但沒有嚴格限定某一任務必須在多長時間內完成,弱實時系統更多關注的是程式運行結果的正確與否,以及系統安全性能等其他方面,對任務執行時間的要求相對來講較為寬鬆,一般回響時間可以是數十秒或者更長。一般實時系統是弱實時系統和強實時系統的一種折衷,它的回響時間可以在秒的數量級上,廣泛套用於消費電子設備中。強實時系統則要求各個任務不僅要保證執行過程和結果的正確性,同時還要保證在限定的時

間內完成任務,回響時間通常要求在毫秒甚至微秒的數量級上,這對涉及到醫療、安全、軍事的軟硬體系統來說是至關重要的。 時限(deadline)是實時系統中的一個重要概念,指的是對任務截止時間的要求,根據時限對系統性能的影響程度,實時系統又可以分為軟實時系統(soft real-time-system)和硬實時系統(hard real-time-system)。軟實時指的是雖然對系統回響時間有所限定,但如果系統回響時間不能滿足要求,並不會導致系統產生致命的錯誤或者崩潰;硬實時則指的是對系統回響時間有嚴格的限定,如果系統回響時間不能滿足要求,就會引起系統產生致命的錯誤或者崩潰。如果一個任務在時限到達之時尚未完成,對軟實時系統來說還是可以容忍的,最多只會降低系統性能,但對硬實時系統來說則是無法接受的,因為這樣帶來的後果根本無法預測,甚至可能是災難性的。在目前實際運用的實時系統中,通常允許軟硬兩種實時性同時存在,其中一些事件沒有時限要求,另外一些事件的時限要求是軟實時的,而對系統產生關鍵影響的那些事件的時限要求則是硬實時的。

五、實習總結

計算機和網路已經全面滲透到日常生活的每一個角落,對於我們沒有個人來說,需要的已經不再僅僅是放在桌面上處理文檔,進

行工業管理和生產控制的計算機“機器”任何一個普通的人都可能擁有從小到大的各種嵌入式技術的電子產品,小到mp3\pda等微型數位化產品,大到網路家電,智慧型家電等,各種各樣的新型嵌入式系統設備在套用數量上已經遠遠超過了通用計算機,在工業和服務領域,使用嵌入式技術的數字工具機、智慧型工具、工業機器人、服務機器人、正在逐漸的改變著傳統的工業生產和服務方式。而arm晶片憑藉強大的處理能力和極低的功耗,非常適合這些場合。所以現在越來越多的公司在產品選型的時候考慮到使用arm處理器,從這個角度來說,對於在校大學生來說,如果你掌握了arm開發技術,對於尋找一份好的工作也十分有利。