- 相關(guān)推薦
嵌入式實(shí)習(xí)目的及報(bào)告范文
一、嵌入式的概述:
隨著信息化技術(shù)的發(fā)展和數(shù)字化產(chǎn)品的普及,以計(jì)算機(jī)技
術(shù)、芯片技術(shù)和軟件技術(shù)為核心的嵌入式系統(tǒng)再度成為當(dāng)前研究和應(yīng)用的熱點(diǎn),通信、計(jì)算機(jī)、消費(fèi)電子技術(shù)(3C)合一的趨勢正在逐步形成,無所不在的網(wǎng)絡(luò)和無所不在的計(jì)算(everything connecting, everywhere computing)正在將人類帶入一個(gè)嶄新的信息社會(huì)。
二、實(shí)習(xí)目的
學(xué)習(xí)和了解了嵌入式在生活中的重要作用和發(fā)展過程,熟練掌握ARM硬件體系結(jié)構(gòu),熟悉linux下的嵌入式編程流程,積累自己的軟件編寫經(jīng)驗(yàn),能夠參與并實(shí)現(xiàn)一個(gè)真實(shí)和完整的嵌入式項(xiàng)目,為今后的學(xué)習(xí)和將從事的技術(shù)工作打下堅(jiān)實(shí)的基礎(chǔ)
三、實(shí)習(xí)任務(wù)
第一階段Linux操作和編程基礎(chǔ)
主要介紹Linux的基本命令和基礎(chǔ)編程知識(shí),包括Linux
的文件操作和目錄操作命令,VI編輯器,GCC編譯器,GDB調(diào)試器和Make項(xiàng)目管理工具等知識(shí)。
第二階段 嵌入式C語言編程基礎(chǔ)
主要介紹在嵌入式開發(fā)編程中C語言的重要概念和編程技巧中的重點(diǎn)難點(diǎn),以復(fù)習(xí)串講和實(shí)例分析的形式,重點(diǎn)介紹包括函數(shù)與程序結(jié)構(gòu),指針、數(shù)組和鏈表,庫函數(shù)的使用等知識(shí)。
第三階段Linux上C強(qiáng)化編程訓(xùn)練
主要包括整數(shù)算法訓(xùn)練,遞歸和棧編程訓(xùn)練,位操作訓(xùn)練,指針訓(xùn)練,字符串訓(xùn)練和常用C庫函數(shù)編程接口實(shí)踐,強(qiáng)化學(xué)員對(duì)Linux下基本編程開發(fā)的理解和編碼調(diào)試的能力。
第四階段 Linux環(huán)境高級(jí)編程及項(xiàng)目開發(fā)編程實(shí)踐
主要包括系統(tǒng)編程(信號(hào)/系統(tǒng)調(diào)用/管道/FIFO/消息隊(duì)列/共享內(nèi)存等),文件I/O編程(文件描述符/文件讀寫接口/原子操作/阻塞與非阻塞IO等,多任務(wù)和多線程編程(進(jìn)程標(biāo)識(shí)/ 用戶標(biāo)識(shí)/fork與vfork/多線程概念/線程同步等),網(wǎng)絡(luò)編程(網(wǎng)絡(luò)基本概念/套接口編程/網(wǎng)絡(luò)字節(jié)次序/Client/Server結(jié)構(gòu)/UDP編程);掌握Linux下Socket編程的開發(fā)流程,熟悉網(wǎng)絡(luò)編程的調(diào)用接口函數(shù)和相關(guān)數(shù)據(jù)結(jié)構(gòu),使學(xué)員初步具備在Linux上進(jìn)行系統(tǒng)編程開發(fā)的能力。同時(shí)綜合之前所學(xué)內(nèi)容和編程技術(shù),以小組為單位進(jìn)行一個(gè)團(tuán)隊(duì)合作項(xiàng)目的開發(fā),考核內(nèi)容包括文件I/O編程,多線程編程,網(wǎng)絡(luò)編程和項(xiàng)目文檔編寫。
第五階段 嵌入式處理器體系結(jié)構(gòu)及編程實(shí)踐
主要介紹ARM體系結(jié)構(gòu)及其基本編程知識(shí),包括指令分類,尋址方式、指令集、存儲(chǔ)系統(tǒng)、異常中斷處理、匯編語言以及C\C++和匯編語言的混合編程等知識(shí)。同時(shí)結(jié)合ARM嵌入式開發(fā)板硬件設(shè)計(jì)原理和基本硬件設(shè)計(jì)流程,分析各種外設(shè)的工作原理和驅(qū)動(dòng)機(jī)制,并自己動(dòng)手實(shí)踐完成一個(gè)ARM開發(fā)板上的編程大作業(yè)。
第六階段 嵌入式Linux開發(fā)基礎(chǔ)及高級(jí)應(yīng)用
主要介紹嵌入式Linux開發(fā)應(yīng)用程序的基本流程和知識(shí),包括嵌入式Linux基本概念和開發(fā)流程、Bootloader工作原理、內(nèi)核裁減配置和交叉編譯、根文件系統(tǒng)制作、網(wǎng)絡(luò)編程以及圖形界面和數(shù)據(jù)庫開發(fā)等知識(shí)。同時(shí)獨(dú)立完成一個(gè)基于嵌入式Linux GUI的應(yīng)用編程大作業(yè)。
第七階段 嵌入式 Linux驅(qū)動(dòng)理論及驅(qū)動(dòng)程序開發(fā)實(shí)踐
主要介紹嵌入式Linux上驅(qū)動(dòng)程序開發(fā)規(guī)范,包括設(shè)備驅(qū)動(dòng)程序概念、字符設(shè)備驅(qū)動(dòng)程序、塊設(shè)備與網(wǎng)絡(luò)設(shè)備、網(wǎng)卡驅(qū)動(dòng)以及常用嵌入式設(shè)備驅(qū)動(dòng)開發(fā)等知識(shí)。同時(shí)獨(dú)立實(shí)現(xiàn)兩種嵌入式設(shè)備驅(qū)動(dòng)程序的編寫,包括驅(qū)動(dòng)模塊的調(diào)試和加載以及完整的項(xiàng)目開發(fā)文檔的編寫。
第八階段 嵌入式Linux項(xiàng)目團(tuán)隊(duì)開發(fā)實(shí)踐鍛煉
主要包括設(shè)計(jì)并實(shí)現(xiàn)一個(gè)真實(shí)和完整的嵌入式項(xiàng)目的開發(fā)流程,涉及到數(shù)據(jù)采集、網(wǎng)絡(luò)通訊、圖形用戶界面顯示以及嵌入式數(shù)據(jù)庫存儲(chǔ)系統(tǒng)等多種嵌入式Linux編程技術(shù)。要求學(xué)員建立起團(tuán)隊(duì)開發(fā)和協(xié)同工作的企業(yè)項(xiàng)目開發(fā)模式的概念和流程,強(qiáng)化學(xué)員對(duì)編寫項(xiàng)目概要設(shè)計(jì)文檔和詳細(xì)設(shè)計(jì)文檔的理解,為就業(yè)前的職業(yè)技能和素質(zhì)訓(xùn)練做好充分準(zhǔn)備。
四、實(shí)習(xí)內(nèi)容
1. 嵌入式的歷史與現(xiàn)狀
雖然嵌入式系統(tǒng)是近幾年才開始真正風(fēng)靡起來的,但事實(shí)上嵌入式這個(gè)概念卻很早就已經(jīng)存在了,從上個(gè)世紀(jì)70年代單片機(jī)的出現(xiàn)到今天各種嵌入式微處理器、微控制器的廣泛應(yīng)用,嵌入式系統(tǒng)少說也有了近30年的歷史?v觀嵌入式系統(tǒng)的發(fā)展歷程,大致經(jīng)歷了以下四個(gè)階段:
無操作系統(tǒng)階段
嵌入式系統(tǒng)最初的應(yīng)用是基于單片機(jī)的,大多以可編程控制器的形式出現(xiàn),具有監(jiān)測、伺服、設(shè)備指示等功能,通常應(yīng)用于各類工業(yè)控制和飛機(jī)、導(dǎo)彈等武器裝備中,一般沒有操作系統(tǒng)的支持,只能通過匯編語言對(duì)系統(tǒng)進(jìn)行直接控制,運(yùn)行結(jié)束后再清除內(nèi)存。這些裝置雖然已經(jīng)初步具備了嵌入式的應(yīng)用特點(diǎn),但僅僅只是使用8位的CPU芯片來執(zhí)行一些單線程的程序,因此嚴(yán)格地說還談不上"系統(tǒng)"的概念。
這一階段嵌入式系統(tǒng)的主要特點(diǎn)是:系統(tǒng)結(jié)構(gòu)和功能相對(duì)單一,處理效率較低,存儲(chǔ)容量較小,幾乎沒有用戶接口。由于這種嵌入式系統(tǒng)使用簡便、價(jià)格低廉,因而曾經(jīng)在工業(yè)控制領(lǐng)域中得到了非常廣泛的應(yīng)用,但卻無法滿足現(xiàn)今對(duì)執(zhí)行效率、存儲(chǔ)容量都有較高要求的信息家電等場合的需要。
簡單操作系統(tǒng)階段
20世紀(jì)80年代,隨著微電子工藝水平的提高,IC制造商開始把嵌入式應(yīng)用中所需要的微處理器、I/O接口、串行接口以及RAM、ROM等部件統(tǒng)統(tǒng)集成到一片VLSI中,制造出面向I/O設(shè)計(jì)的微控制器,并一舉成為嵌入式系統(tǒng)領(lǐng)域中異軍突起的新秀。與此同時(shí),嵌入式系統(tǒng)的程序員也開始基于一些簡單的"操作系統(tǒng)"開發(fā)嵌入式應(yīng)用軟件,大大縮短了開發(fā)周期、提高了開發(fā)效率。 這一階段嵌入式系統(tǒng)的主要特點(diǎn)是:出現(xiàn)了大量高可靠、低功耗的嵌入式CPU(如Power PC等),各種簡單的嵌入式操作系統(tǒng)開始出現(xiàn)并得到迅速發(fā)展。此時(shí)的嵌入式操作系統(tǒng)雖然還比較簡單,但已經(jīng)初步具有了一定的兼容性和擴(kuò)展性,內(nèi)核精巧且效率高,主要用來控制系統(tǒng)負(fù)載以及監(jiān)控應(yīng)用程序的運(yùn)行。
實(shí)時(shí)操作系統(tǒng)階段
20世紀(jì)90年代,在分布控制、柔性制造、數(shù)字化通信和信息家電等巨大需求的牽引下,嵌入式系統(tǒng)進(jìn)一步飛速發(fā)展,而面向?qū)崟r(shí)信號(hào)處理算法的DSP產(chǎn)品則向著高速度、高精度、低功耗的方向發(fā)展。隨著硬件實(shí)時(shí)性要求的提高,嵌入式系統(tǒng)的軟件規(guī)模也不斷擴(kuò)大,逐漸形成了實(shí)時(shí)多任務(wù)操作系統(tǒng)(RTOS),并開始成為嵌入式系統(tǒng)的主流。
這一階段嵌入式系統(tǒng)的主要特點(diǎn)是:操作系統(tǒng)的實(shí)時(shí)性得到了很大改善,已經(jīng)能夠運(yùn)行在各種不同類型的微處理器上,具有高度的模塊化和擴(kuò)展性。此時(shí)的嵌入式操作系統(tǒng)已經(jīng)具備了文件和目錄管理、設(shè)備管理、多任務(wù)、網(wǎng)絡(luò)、圖形用戶界面(GUI)等功能,并提供了大量的應(yīng)用程序接口(API),從而使得應(yīng)用軟件的開發(fā)變得更加簡單。
面向Internet階段
21世紀(jì)無疑將是一個(gè)網(wǎng)絡(luò)的時(shí)代,將嵌入式系統(tǒng)應(yīng)用到各種網(wǎng)絡(luò)環(huán)境中去的呼聲自然也越來越高。目前大多數(shù)嵌入式系統(tǒng)還孤立于Internet之外,隨著Internet的進(jìn)一步發(fā)展,以及
Internet技術(shù)與信息家電、工業(yè)控制技術(shù)等的結(jié)合日益緊密,嵌入式設(shè)備與Internet的結(jié)合才是嵌入式技術(shù)的真正未來。
信息時(shí)代和數(shù)字時(shí)代的到來,為嵌入式系統(tǒng)的發(fā)展帶來了巨大的機(jī)遇,同時(shí)也對(duì)嵌入式系統(tǒng)廠商提出了新的挑戰(zhàn)。目前,嵌入式技術(shù)與Internet技術(shù)的結(jié)合正在推動(dòng)著嵌入式技術(shù)的飛速發(fā)展,嵌入式系統(tǒng)的研究和應(yīng)用產(chǎn)生了如下新的顯著變化:
1. 新的微處理器層出不窮,嵌入式操作系統(tǒng)自身結(jié)構(gòu)的設(shè)計(jì)更加便于移植,能夠在短時(shí)間內(nèi)支持更多的微處理器。
2. 嵌入式系統(tǒng)的開發(fā)成了一項(xiàng)系統(tǒng)工程,開發(fā)廠商不僅要提供嵌入式軟硬件系統(tǒng)本身,同時(shí)還要提供強(qiáng)大的硬件開發(fā)工具和軟件支持包。
3. 通用計(jì)算機(jī)上使用的新技術(shù)、新觀念開始逐步移植到嵌入式系統(tǒng)中,如嵌入式數(shù)據(jù)庫、移動(dòng)代理、實(shí)時(shí)CORBA等,嵌入式軟件平臺(tái)得到進(jìn)一步完善。
4. 各類嵌入式Linux操作系統(tǒng)迅速發(fā)展,由于具有源代碼開放、系統(tǒng)內(nèi)核小、執(zhí)行效率高、網(wǎng)絡(luò)結(jié)構(gòu)完整等特點(diǎn),很適合信息家電等嵌入式系統(tǒng)的需要,目前已經(jīng)形成了能與Windows CE、Palm OS等嵌入式操作系統(tǒng)進(jìn)行有力競爭的局面。
5. 網(wǎng)絡(luò)化、信息化的要求隨著Internet技術(shù)的成熟和帶寬的提高而日益突出,以往功能單一的設(shè)備如電話、手機(jī)、冰箱、微波
爐等功能不再單一,結(jié)構(gòu)變得更加復(fù)雜,網(wǎng)絡(luò)互聯(lián)成為必然趨勢。
6. 精簡系統(tǒng)內(nèi)核,優(yōu)化關(guān)鍵算法,降低功耗和軟硬件成本。
7. 提供更加友好的多媒體人機(jī)交互界面。
2.體系結(jié)構(gòu)
根據(jù)國際電氣和電子工程師協(xié)會(huì)(IEEE)的定義,嵌入式系統(tǒng)是"控制、監(jiān)視或者輔助設(shè)備、機(jī)器和車間運(yùn)行的裝置"(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。一般而言,整個(gè)嵌入式系統(tǒng)的體系結(jié)構(gòu)可以分成四個(gè)部分:嵌入式處理器、嵌入式外圍設(shè)備、嵌入式操作系統(tǒng)和嵌入式應(yīng)用軟件。
嵌入式處理器
嵌入式系統(tǒng)的核心是各種類型的嵌入式處理器,嵌入式處理器與通用處理器最大的不同點(diǎn)在于,嵌入式CPU大多工作在為特定用戶群所專門設(shè)計(jì)的系統(tǒng)中,它將通用CPU中許多由板卡完成的任務(wù)集成到芯片內(nèi)部,從而有利于嵌入式系統(tǒng)在設(shè)計(jì)時(shí)趨于小型化,同時(shí)還具有很高的效率和可靠性。
嵌入式處理器的體系結(jié)構(gòu)經(jīng)歷了從CISC(復(fù)雜指令集)至RISC(精簡指令集)和Compact RISC的轉(zhuǎn)變,位數(shù)則由4位、8位、16位、32位逐步發(fā)展到64位。目前常用的嵌入式處理器可分為低端的嵌入式微控制器(Micro Controller Unit,MCU)、中高端的嵌入式微處理器(Embedded Micro Processor Unit,EMPU)、用于計(jì)算機(jī)通信領(lǐng)域的嵌入式DSP處理器(Embedded Digital Signal Processor,EDSP)和高度集成的嵌入式片上系統(tǒng)(System On Chip,SOC)。
目前幾乎每個(gè)半導(dǎo)體制造商