一、實習(xí)任務(wù)
第一階段Linux操作和編程基礎(chǔ)
主要介紹Linux的基本命令和基礎(chǔ)編程知識,包括Linux
的文件操作和目錄操作命令,VI編輯器,GCC編譯器,GDB調(diào)試器和Make項目管理工具等知識。
第二階段 嵌入式C語言編程基礎(chǔ)
主要介紹在嵌入式開發(fā)編程中C語言的重要概念和編程技巧中的重點難點,以復(fù)習(xí)串講和實例分析的形式,重點介紹包括函數(shù)與程序結(jié)構(gòu),指針、數(shù)組和鏈表,庫函數(shù)的使用等知識。
第三階段Linux上C強化編程訓(xùn)練
主要包括整數(shù)算法訓(xùn)練,遞歸和棧編程訓(xùn)練,位操作訓(xùn)練,指針訓(xùn)練,字符串訓(xùn)練和常用C庫函數(shù)編程接口實踐,強化學(xué)員對Linux下基本編程開發(fā)的理解和編碼調(diào)試的能力。
第四階段 Linux環(huán)境高級編程及項目開發(fā)編程實踐
主要包括系統(tǒng)編程(信號/系統(tǒng)調(diào)用/管道/FIFO/消息隊列/共享內(nèi)存等),文件I/O編程(文件描述符/文件讀寫接口/原子操作/阻塞與非阻塞IO等,多任務(wù)和多線程編程(進程標(biāo)識/ 用戶標(biāo)識/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上進行系統(tǒng)編程開發(fā)的能力。同時綜合之前所學(xué)內(nèi)容和編程技術(shù),以小組為單位進行一個團隊合作項目的開發(fā),考核內(nèi)容包括文件I/O編程,多線程編程,網(wǎng)絡(luò)編程和項目文檔編寫。
第五階段 嵌入式處理器體系結(jié)構(gòu)及編程實踐
主要介紹ARM體系結(jié)構(gòu)及其基本編程知識,包括指令分類,尋址方式、指令集、存儲系統(tǒng)、異常中斷處理、匯編語言以及CC++和匯編語言的混合編程等知識。同時結(jié)合ARM嵌入式開發(fā)板硬件設(shè)計原理和基本硬件設(shè)計流程,分析各種外設(shè)的工作原理和驅(qū)動機制,并自己動手實踐完成一個ARM開發(fā)板上的編程大作業(yè)。
第六階段 嵌入式Linux開發(fā)基礎(chǔ)及高級應(yīng)用
主要介紹嵌入式Linux開發(fā)應(yīng)用程序的基本流程和知識,包括嵌入式Linux基本概念和開發(fā)流程、Bootloader工作原理、內(nèi)核裁減配置和交叉編譯、根文件系統(tǒng)制作、網(wǎng)絡(luò)編程以及圖形界面和數(shù)據(jù)庫開發(fā)等知識。同時獨立完成一個基于嵌入式Linux GUI的應(yīng)用編程大作業(yè)。
第七階段 嵌入式 Linux驅(qū)動理論及驅(qū)動程序開發(fā)實踐
主要介紹嵌入式Linux上驅(qū)動程序開發(fā)規(guī)范,包括設(shè)備驅(qū)動程序概念、字符設(shè)備驅(qū)動程序、塊設(shè)備與網(wǎng)絡(luò)設(shè)備、網(wǎng)卡驅(qū)動以及常用嵌入式設(shè)備驅(qū)動開發(fā)等知識。同時獨立實現(xiàn)兩種嵌入式設(shè)備驅(qū)動程序的編寫,包括驅(qū)動模塊的調(diào)試和加載以及完整的項目開發(fā)文檔的編寫。
第八階段 嵌入式Linux項目團隊開發(fā)實踐鍛煉
主要包括設(shè)計并實現(xiàn)一個真實和完整的嵌入式項目的開發(fā)流程,涉及到數(shù)據(jù)采集、網(wǎng)絡(luò)通訊、圖形用戶界面顯示以及嵌入式數(shù)據(jù)庫存儲系統(tǒng)等多種嵌入式Linux編程技術(shù)。要求學(xué)員建立起團隊開發(fā)和協(xié)同工作的企業(yè)項目開發(fā)模式的概念和流程,強化學(xué)員對編寫項目概要設(shè)計文檔和詳細(xì)設(shè)計文檔的理解,為就業(yè)前的職業(yè)技能和素質(zhì)訓(xùn)練做好充分準(zhǔn)備。
二、實習(xí)內(nèi)容
1. 嵌入式的歷史與現(xiàn)狀
雖然嵌入式系統(tǒng)是近幾年才開始真正風(fēng)靡起來的,但事實上嵌入式這個概念卻很早就已經(jīng)存在了,從上個世紀(jì)70年代單片機的出現(xiàn)到今天各種嵌入式微處理器、微控制器的廣泛應(yīng)用,嵌入式系統(tǒng)少說也有了近30年的歷史。縱觀嵌入式系統(tǒng)的發(fā)展歷程,大致經(jīng)歷了以下四個階段:
無操作系統(tǒng)階段
嵌入式系統(tǒng)最初的應(yīng)用是基于單片機的,大多以可編程控制器的形式出現(xiàn),具有監(jiān)測、伺服、設(shè)備指示等功能,通常應(yīng)用于各類工業(yè)控制和飛機、導(dǎo)彈等武器裝備中,一般沒有操作系統(tǒng)的支持,只能通過匯編語言對系統(tǒng)進行直接控制,運行結(jié)束后再清除內(nèi)存。這些裝置雖然已經(jīng)初步具備了嵌入式的應(yīng)用特點,但僅僅只是使用8位的CPU芯片來執(zhí)行一些單線程的程序,因此嚴(yán)格地說還談不上"系統(tǒng)"的概念。
這一階段嵌入式系統(tǒng)的主要特點是:系統(tǒng)結(jié)構(gòu)和功能相對單一,處理效率較低,存儲容量較小,幾乎沒有用戶接口。由于這種嵌入式系統(tǒng)使用簡便、價格低廉,因而曾經(jīng)在工業(yè)控制領(lǐng)域中得到了非常廣泛的應(yīng)用,但卻無法滿足現(xiàn)今對執(zhí)行效率、存儲容量都有較高要求的信息家電等場合的需要。
簡單操作系統(tǒng)階段
20世紀(jì)80年代,隨著微電子工藝水平的提高,IC制造商開始把嵌入式應(yīng)用中所需要的微處理器、I/O接口、串行接口以及RAM、ROM等部件統(tǒng)統(tǒng)集成到一片VLSI中,制造出面向I/O設(shè)計的微控制器,并一舉成為嵌入式系統(tǒng)領(lǐng)域中異軍突起的新秀。與此同時,嵌入式系統(tǒng)的程序員也開始基于一些簡單的"操作系統(tǒng)"開發(fā)嵌入式應(yīng)用軟件,大大縮短了開發(fā)周期、提高了開發(fā)效率。 這一階段嵌入式系統(tǒng)的主要特點是:出現(xiàn)了大量高可靠、低功耗的嵌入式CPU(如Power PC等),各種簡單的嵌入式操作系統(tǒng)開始出現(xiàn)并得到迅速發(fā)展。此時的嵌入式操作系統(tǒng)雖然還比較簡單,但已經(jīng)初步具有了一定的兼容性和擴展性,內(nèi)核精巧且效率高,主要用來控制系統(tǒng)負(fù)載以及監(jiān)控應(yīng)用程序的運行。
實時操作系統(tǒng)階段
20世紀(jì)90年代,在分布控制、柔性制造、數(shù)字化通信和信息家電等巨大需求的牽引下,嵌入式系統(tǒng)進一步飛速發(fā)展,而面向?qū)崟r信號處理算法的DSP產(chǎn)品則向著高速度、高精度、低功耗的'方向發(fā)展。隨著硬件實時性要求的提高,嵌入式系統(tǒng)的軟件規(guī)模也不斷擴大,逐漸形成了實時多任務(wù)操作系統(tǒng)(RTOS),并開始成為嵌入式系統(tǒng)的主流。
這一階段嵌入式系統(tǒng)的主要特點是:操作系統(tǒng)的實時性得到了很大改善,已經(jīng)能夠運行在各種不同類型的微處理器上,具有高度的模塊化和擴展性。此時的嵌入式操作系統(tǒng)已經(jīng)具備了文件和目錄管理、設(shè)備管理、多任務(wù)、網(wǎng)絡(luò)、圖形用戶界面(GUI)等功能,并提供了大量的應(yīng)用程序接口(API),從而使得應(yīng)用軟件的開發(fā)變得更加簡單。
面向Internet階段
21世紀(jì)無疑將是一個網(wǎng)絡(luò)的時代,將嵌入式系統(tǒng)應(yīng)用到各種網(wǎng)絡(luò)環(huán)境中去的呼聲自然也越來越高。目前大多數(shù)嵌入式系統(tǒng)還孤立于Internet之外,隨著Internet的進一步發(fā)展,以及Internet技術(shù)與信息家電、工業(yè)控制技術(shù)等的結(jié)合日益緊密,嵌入式設(shè)備與Internet的結(jié)合才是嵌入式技術(shù)的真正未來。
信息時代和數(shù)字時代的到來,為嵌入式系統(tǒng)的發(fā)展帶來了巨大的機遇,同時也對嵌入式系統(tǒng)廠商提出了新的挑戰(zhàn)。目前,嵌入式技術(shù)與Internet技術(shù)的結(jié)合正在推動著嵌入式技術(shù)的飛速發(fā)展,嵌入式系統(tǒng)的研究和應(yīng)用產(chǎn)生了如下新的顯著變化:
1. 新的微處理器層出不窮,嵌入式操作系統(tǒng)自身結(jié)構(gòu)的設(shè)計更加便于移植,能夠在短時間內(nèi)支持更多的微處理器。
2. 嵌入式系統(tǒng)的開發(fā)成了一項系統(tǒng)工程,開發(fā)廠商不僅要提供嵌入式軟硬件系統(tǒng)本身,同時還要提供強大的硬件開發(fā)工具和軟件支持包。
3. 通用計算機上使用的新技術(shù)、新觀念開始逐步移植到嵌入式系統(tǒng)中,如嵌入式數(shù)據(jù)庫、移動代理、實時CORBA等,嵌入式軟件平臺得到進一步完善。
4. 各類嵌入式Linux操作系統(tǒng)迅速發(fā)展,由于具有源代碼開放、系統(tǒng)內(nèi)核小、執(zhí)行效率高、網(wǎng)絡(luò)結(jié)構(gòu)完整等特點,很適合信息家電等嵌入式系統(tǒng)的需要,目前已經(jīng)形成了能與Windows CE、Palm OS等嵌入式操作系統(tǒng)進行有力競爭的局面。
5. 網(wǎng)絡(luò)化、信息化的要求隨著Internet技術(shù)的成熟和帶寬的提高而日益突出,以往功能單一的設(shè)備如電話、手機、冰箱、微波
爐等功能不再單一,結(jié)構(gòu)變得更加復(fù)雜,網(wǎng)絡(luò)互聯(lián)成為必然趨勢。
6. 精簡系統(tǒng)內(nèi)核,優(yōu)化關(guān)鍵算法,降低功耗和軟硬件成本。
7. 提供更加友好的多媒體人機交互界面。
2.體系結(jié)構(gòu)
根據(jù)國際電氣和電子工程師協(xié)會(IEEE)的定義,嵌入式系統(tǒng)是"控制、監(jiān)視或者輔助設(shè)備、機器和車間運行的裝置"(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。一般而言,整個嵌入式系統(tǒng)的體系結(jié)構(gòu)可以分成四個部分:嵌入式處理器、嵌入式外圍設(shè)備、嵌入式操作系統(tǒng)和嵌入式應(yīng)用軟件。
嵌入式處理器
嵌入式系統(tǒng)的核心是各種類型的嵌入式處理器,嵌入式處理器與通用處理器最大的不同點在于,嵌入式CPU大多工作在為特定用戶群所專門設(shè)計的系統(tǒng)中,它將通用CPU中許多由板卡完成的任務(wù)集成到芯片內(nèi)部,從而有利于嵌入式系統(tǒng)在設(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)、用于計算機通信領(lǐng)域的嵌入式DSP處理器(Embedded Digital Signal Processor,EDSP)和高度集成的嵌入式片上系統(tǒng)(System On Chip,SOC)。
目前幾乎每個半導(dǎo)體制造商都生產(chǎn)嵌入式處理器,并且越來越多的公司開始擁有自主的處理器設(shè)計部門,據(jù)不完全統(tǒng)計,全世界嵌入式處理器已經(jīng)超過1000多種,流行的體系結(jié)構(gòu)有30多個系列,其中以ARM、PowerPC、MC 68000、MIPS等使用得最為廣泛。
在嵌入系統(tǒng)硬件系統(tǒng)中,除了中心控制部件(MCU、DSP、EMPU、SOC)以外,用于完成存儲、通信、調(diào)試、顯示等輔助功能的其他部件,事實上都可以算作嵌入式外圍設(shè)備。目前常用的嵌入式外圍設(shè)備按功能可以分為存儲設(shè)備、通信設(shè)備和顯示設(shè)備三類。
存儲設(shè)備主要用于各類數(shù)據(jù)的存儲,常用的有靜態(tài)易失型存儲器(RAM、SRAM)、動態(tài)存儲器(DRAM)和非易失型存儲器(ROM、EPROM、EEPROM、FLASH)三種,其中FLASH憑借其可擦寫次數(shù)多、存儲速度快、存儲容量大、價格便宜等優(yōu)點,在嵌入式領(lǐng)域內(nèi)得到了廣泛應(yīng)用。
目前存在的絕大多數(shù)通信設(shè)備都可以直接在嵌入式系統(tǒng)中應(yīng)用,包括RS-232接口(串行通信接口)、SPI(串行外圍設(shè)備接口)、IrDA(紅外線接口)、I2C(現(xiàn)場總線)、USB(通用串行總線接口)、Ethernet(以太網(wǎng)接口)等。
由于嵌入式應(yīng)用場合的特殊性,通常使用的是陰極射線管
(CRT)、液晶顯示器(LCD)和觸摸板(Touch Panel)等外圍顯示設(shè)備。
嵌入式操作系統(tǒng)為了使嵌入式系統(tǒng)的開發(fā)更加方便和快捷,需要有專門負(fù)責(zé)管理存儲器分配、中斷處理、任務(wù)調(diào)度等功能的軟件模塊,這就是嵌入式操作系統(tǒng)。嵌入式操作系統(tǒng)是用來支持嵌入式應(yīng)用的系統(tǒng)軟件,是嵌入式系統(tǒng)極為重要的組成部分,通常包括與硬件相關(guān)的底層驅(qū)動程序、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動接口、通信協(xié)議、圖形用戶界面(GUI)等。嵌入式操作系統(tǒng)具有通用操作系統(tǒng)的基本特點,如能夠有效管理復(fù)雜的系統(tǒng)資源,能夠?qū)τ布M行抽象,能夠提供庫函數(shù)、驅(qū)動程序、開發(fā)工具集等。但與通用操作系統(tǒng)相比較,嵌入式操作系統(tǒng)在系統(tǒng)實時性、硬件依賴性、軟件固化性以及應(yīng)用專用性等方面,具有更加鮮明的特點。
嵌入式操作系統(tǒng)根據(jù)應(yīng)用場合可以分為兩大類:一類是面向消費電子產(chǎn)品的非實時系統(tǒng),這類設(shè)備包括個人數(shù)字助理
(PDA)、移動電話、機頂盒(STB)等;另一類則是面向控制、通信、醫(yī)療等領(lǐng)域的實時操作系統(tǒng),如WindRiver公司的VxWorks、QNX系統(tǒng)軟件公司的QNX等。實時系統(tǒng)(Real Time System)是一種能夠在指定或者確定時間內(nèi)完成系統(tǒng)功能,并且對外部和內(nèi)部事件在同步或者異步時間內(nèi)能做出及時響應(yīng)的系統(tǒng)。在實時系統(tǒng)中,操作的正確性不僅依賴于邏輯設(shè)計的正確程度,而且與這些操作進行的時間有關(guān),也就是說,實時系統(tǒng)對邏輯和時序的要求非常嚴(yán)格,如果邏輯和時序控制出現(xiàn)偏差將會產(chǎn)生嚴(yán)重后果。
實時系統(tǒng)主要通過三個性能指標(biāo)來衡量系統(tǒng)的實時性,即響應(yīng)時間(Response Time)、生存時間(Survival Time)和吞吐量(Throughput):
o 響應(yīng)時間 是實時系統(tǒng)從識別出一個外部事件到做
出響應(yīng)的時間;
o 生存時間 是數(shù)據(jù)的有效等待時間,數(shù)據(jù)只有在這段時間內(nèi)才是有效的;
o 吞吐量 是在給定的時間內(nèi)系統(tǒng)能夠處理的事件
總數(shù),吞吐量通常比平均響應(yīng)時間的倒數(shù)要小一點。
實時系統(tǒng)根據(jù)響應(yīng)時間可以分為弱實時系統(tǒng)、一般實時系統(tǒng)和強實時系統(tǒng)三種。弱實時系統(tǒng)在設(shè)計時的宗旨是使各個任務(wù)運行得越快越好,但沒有嚴(yán)格限定某一任務(wù)必須在多長時間內(nèi)完成,弱實時系統(tǒng)更多關(guān)注的是程序運行結(jié)果的正確與否,以及系統(tǒng)安全性能等其他方面,對任務(wù)執(zhí)行時間的要求相對來講較為寬松,一般響應(yīng)時間可以是數(shù)十秒或者更長。一般實時系統(tǒng)是弱實時系統(tǒng)和強實時系統(tǒng)的一種折衷,它的響應(yīng)時間可以在秒的數(shù)量級上,廣泛應(yīng)用于消費電子設(shè)備中。強實時系統(tǒng)則要求各個任務(wù)不僅要保證執(zhí)行過程和結(jié)果的正確性,同時還要保證在限定的時
間內(nèi)完成任務(wù),響應(yīng)時間通常要求在毫秒甚至微秒的數(shù)量級上,這對涉及到醫(yī)療、安全、軍事的軟硬件系統(tǒng)來說是至關(guān)重要的。 時限(deadline)是實時系統(tǒng)中的一個重要概念,指的是對任務(wù)截止時間的要求,根據(jù)時限對系統(tǒng)性能的影響程度,實時系統(tǒng)又可以分為軟實時系統(tǒng)(soft real-time-system)和硬實時系統(tǒng)(hard real-time-system)。軟實時指的是雖然對系統(tǒng)響應(yīng)時間有所限定,但如果系統(tǒng)響應(yīng)時間不能滿足要求,并不會導(dǎo)致系統(tǒng)產(chǎn)生致命的錯誤或者崩潰;硬實時則指的是對系統(tǒng)響應(yīng)時間有嚴(yán)格的限定,如果系統(tǒng)響應(yīng)時間不能滿足要求,就會引起系統(tǒng)產(chǎn)生致命的錯誤或者崩潰。如果一個任務(wù)在時限到達之時尚未完成,對軟實時系統(tǒng)來說還是可以容忍的,最多只會降低系統(tǒng)性能,但對硬實時系統(tǒng)來說則是無法接受的,因為這樣帶來的后果根本無法預(yù)測,甚至可能是災(zāi)難性的。在目前實際運用的實時系統(tǒng)中,通常允許軟硬兩種實時性同時存在,其中一些事件沒有時限要求,另外一些事件的時限要求是軟實時的,而對系統(tǒng)產(chǎn)生關(guān)鍵影響的那些事件的時限要求則是硬實時的。
三、實習(xí)總結(jié)
計算機和網(wǎng)絡(luò)已經(jīng)全面滲透到日常生活的每一個角落,對于我們沒有個人來說,需要的已經(jīng)不再僅僅是放在桌面上處理文檔,進
行工業(yè)管理和生產(chǎn)控制的計算機“機器”任何一個普通的人都可能擁有從小到大的各種嵌入式技術(shù)的電子產(chǎn)品,小到MP3PDA等微型數(shù)字化產(chǎn)品,大到網(wǎng)絡(luò)家電,智能家電等,各種各樣的新型嵌入式系統(tǒng)設(shè)備在應(yīng)用數(shù)量上已經(jīng)遠(yuǎn)遠(yuǎn)超過了通用計算機,在工業(yè)和服務(wù)領(lǐng)域,使用嵌入式技術(shù)的數(shù)字機床、智能工具、工業(yè)機器人、服務(wù)機器人、正在逐漸的改變著傳統(tǒng)的工業(yè)生產(chǎn)和服務(wù)方式。而ARM芯片憑借強大的處理能力和極低的功耗,非常適合這些場合。所以現(xiàn)在越來越多的公司在產(chǎn)品選型的時候考慮到使用ARM處理器,從這個角度來說,對于在校大學(xué)生來說,如果你掌握了ARM開發(fā)技術(shù),對于尋找一份好的工作也十分有利。
一、如果非常多人都想做Linux,那么就要對Linux要比較熟悉。
這個熟悉不是說對內(nèi)核,對代碼有多了解,而是至少要會基本的操作,非常難想象讓一個連編譯程式,編輯文本文件都非常困難的人去弄嵌入式的軟件吧??傊谶M入嵌入式這個領(lǐng)域之前要對自己評估一下,看看自己是不是準(zhǔn)備好了去學(xué)習(xí)嵌入式相關(guān)的東西。
二、要舍得花錢買研發(fā)板。
公欲善其技,必先利其器。也就是說,理論上可能掌控了非常多,不過不去實踐,那只能是紙上談兵,這樣是無法學(xué)好嵌入式的。弄個研發(fā)板自己擺弄擺弄,即使什么都不懂,也能按照說明書把廠家給的程式下載到研發(fā)板上運行運行,先知其然,然后再通過具體的學(xué)習(xí)知其所以然,這樣能避免學(xué)習(xí)中的枯燥。目前市場上研發(fā)板的種類繁多,相同CPU的板子價格卻相差非常多,令非常多人都不知道怎么選擇購買。我的看法是,盡量買大廠的產(chǎn)品。因為在初學(xué)階段學(xué)習(xí)資料少是個非常頭疼的事,非常多時候都是無從下手,不知道怎么去做,那么隨研發(fā)板附送的資料就非常重要了。大廠技術(shù)比較強,附帶的程式都是能在板子上運行的,例如我買的優(yōu)龍ST2410這個板子(不是廣告啊),光盤上帶了一個bootloader個2.4.18的內(nèi)核,更有一個cramfs,這些程式的原始碼都是廠家事先做好或修改好的,完全適用于初學(xué)者使用。而有些實力不行的小廠家的資料不齊全,我們學(xué)習(xí)的時候需要自己弄bootloader什么的,那入門就非常難了。不過大廠的板子都非常貴,大家能根據(jù)預(yù)算來選擇適合自己的研發(fā)板,不過無論怎樣,在學(xué)習(xí)上投資都是值得的。
三、不要事無巨細(xì)的學(xué)習(xí),要有明確的目標(biāo)。
我最開始給自己制定的學(xué)習(xí)計劃是:學(xué)習(xí)arm體系結(jié)構(gòu)—>學(xué)習(xí)arm匯編—>自己移植bootloader—>自己移植kernel—>做應(yīng)用,不過不久就被我否決了,因為這個過程實在是太枯燥太痛苦了,在學(xué)習(xí)資料少,沒人指導(dǎo)的情況下根本無法進展。于是我決定使用廠家的代碼來“玩”研發(fā)板,自己弄些應(yīng)用上去。先是完全使用廠家給的bootloader,kernel,cramfs。之后發(fā)現(xiàn)cramfs中的一些控制Linux初始化的文件不符合我的需求,于是修改cramfs,刪除了QT,修改了網(wǎng)卡初始的IP地址,安裝到板子上能運行了之后就開始嘗試做一些應(yīng)用,比如helloworld這樣的程式。最后移植了一個mpg123到板子上。完萬能在不知道原理的情況下來使用板子的一些功能,等熟悉板子了再回頭學(xué)習(xí)其中的道理,這樣就容易一些。學(xué)習(xí)嵌入式就是這樣,根據(jù)問題來選擇學(xué)習(xí)的內(nèi)容,否則會非常盲目,最后就失去信心了。
四、要有耐心。
不能否認(rèn),在學(xué)習(xí)一門自己完全不了解的技術(shù)是非常煩人的。嵌入式的復(fù)雜在于他的交叉性。也就是說為了研究某一個嵌入式的問題,你有可能得學(xué)習(xí)非常多其他的知識,比如操作系統(tǒng),編譯,體系結(jié)構(gòu)等等,那么對于這種情況需要我們有足夠的耐心。我在交叉編譯mpg123的時候前幾次無論怎么修改makefile都無法編譯成功,最后我發(fā)現(xiàn)我用的arm—linux—gcc是2.9版本的,比較老,于是我換成新的3.4.1版本,就ok了。
以上是我初學(xué)嵌入式所獲得的一些淺顯的經(jīng)驗,基本都是基于軟件方面的,硬件的DIY我就不行了。希望我的經(jīng)驗?zāi)芙o大家一些幫助。
嵌入式是我的夢想,我很羨慕能夠在嵌入式方面獨檔一面的高手,希望有一天我也能像他們那樣自信自如的在嵌入式這片熱土上揮灑著自己的青春和浪漫。帶著無比豪邁的心情和繽紛的夢想來到易嵌學(xué)習(xí)嵌入式,在新的老師、新的同學(xué)和新的環(huán)境中,我開始了我的嵌入式學(xué)習(xí),開始了新一輪的拼搏。
在易嵌短暫的兩個月,我們從linux基礎(chǔ)入手,強化了c語言編程,學(xué)習(xí)了linux系統(tǒng)編程和網(wǎng)絡(luò)編程。時間雖短,但成長很快,無論是理論知識還是實踐能力都得到了大幅度的提高。在這里將理論和實踐相結(jié)合,相互促進,相互補充,使得學(xué)習(xí)更加透徹。通過用不同方法實現(xiàn)同一個項目,不斷深入,層層推進,學(xué)以致用!
在易嵌的這個暑假,我過得充實而快樂。在這里有著同學(xué)間的探討、師生間的互動和魔鬼般的訓(xùn)練!在我豐富多彩的人生路上留下了永遠(yuǎn)亮麗與難忘的記憶!
實踐報告正文:看著四年的大學(xué)生活就快要結(jié)束了,心中隱隱有一種傷感與失落,我陷入了沉思:該挺直腰桿走自己的路了!學(xué)習(xí)嵌入式是我的夢想,我很羨慕能夠在嵌入式方面獨檔一面的高手,希望有一天我也能像他們那樣自信自如的在嵌入式這片熱土上揮灑著自己的青春和浪漫。
當(dāng)我決定好好利用這個暑假,學(xué)習(xí)我一直都想去學(xué)的嵌入式的時候,就注定要在我豐富多彩的人生路上留下永遠(yuǎn)亮麗與難忘的記憶!算算畢業(yè)的時間,我已經(jīng)聞到了離別的氣息,在這即將遠(yuǎn)離大學(xué)時代的時刻,才真正懂得回眸的意義。想想走過的路,想想現(xiàn)在的路,想想來時的路,不知道未來能否成功,既然選擇了遠(yuǎn)方,就注定要風(fēng)雨兼程!帶著無比豪邁的心情和繽紛的夢想來到易嵌學(xué)習(xí)嵌入式,希望在這嶄新的一頁留下人生的美好!在新的老師、新的同學(xué)和新的環(huán)境中,我開始了我的嵌入式學(xué)習(xí),開始了新一輪的拼搏。
無論現(xiàn)在多么努力都無法追回失去的金色年華,所以在開班典禮的時候,我便為自己制定了目標(biāo)!我將好好利用最后一個暑假,多學(xué)些知識鍛煉自己,為自己儲備一些精神食糧并不斷開拓視野和提升自己的能力,讓自己能夠在畢業(yè)的時候成為學(xué)校的驕傲!
在易嵌短暫的兩個月,我們從linux基礎(chǔ)入手,強化了c語言編程,學(xué)習(xí)了linux系統(tǒng)編程和網(wǎng)絡(luò)編程。時間雖短,但成長很快,無論是理論知識還是實踐能力都得到了大幅度的提高。
通過對linux操作系統(tǒng)的學(xué)習(xí),我初步掌握了linux基礎(chǔ)。剛開始我對linux只是有一點兒了解,但并沒有真正的去接觸。在這段時間里,從linux系統(tǒng)安裝開始著手,了解linux的發(fā)展,相比其他系統(tǒng),它有很多優(yōu)點。在安裝好系統(tǒng)后,學(xué)習(xí)了linux的分區(qū)命名、linux的常用命令、文本編輯器vi、shell的使用、源代碼的編譯和調(diào)試、多模塊的編譯和鏈接以及管理工具。通過這些學(xué)習(xí),我基本能夠在linux系統(tǒng)下通過vi編輯器編寫c語言程序,通過一些常用命令來調(diào)試、查看程序。
能夠在這么短的時間內(nèi)初步掌握linux,與在學(xué)校學(xué)習(xí)一門課程意義完全不同,通過老師的講解,自己的練習(xí),同學(xué)之間的交流,能夠加深印象,熟練操作。
學(xué)習(xí)linux基礎(chǔ)只是我嵌入式學(xué)習(xí)歷程的一個開始,雖然有好多命令還不太熟悉,有好多命令都還沒有去嘗試過,但我相信隨著后期的學(xué)習(xí),我將逐漸熟練掌握。在c語言學(xué)習(xí)階段,我學(xué)到了很多新的知識,變量、函數(shù)、數(shù)組、指針、指針函數(shù)、函數(shù)指針、指針數(shù)組、數(shù)組指針、結(jié)構(gòu)體、結(jié)構(gòu)體指針數(shù)組、關(guān)鍵字……,從模塊到整體,從寫代碼的風(fēng)格到代碼優(yōu)化……通過這段時間的學(xué)習(xí),我感覺自己寫出的代碼比以前更直觀,更注重細(xì)節(jié),bug也更少了!
在半個月時間的c語言學(xué)習(xí)中,我從剛開始的重溫c語言到后來的位運算、堆棧、單向鏈表、雙向鏈表以及l(fā)ist_head。新知識以及注意點漸漸增多,在這段時間,我創(chuàng)造了很多個記錄,比如11小時完成30道編程題,獨自完成一個功能比較齊全的學(xué)生選課管理系統(tǒng)等,特別是剛接觸到鏈表和list_head的時候,不在像前面那樣輕松了,還記得那段時間,每到晚上熱醒的時候,又想起了我的學(xué)生管理系統(tǒng),本來就少的可憐的睡覺時間,又被……,真可謂苦我心志矣!
不過,等我美美的睡上一覺,醒來回想起這段時間的學(xué)習(xí),真是一個大豐收!雖然不能說是很精通c語言,至少可以說真的入門了……,我又向自己的目標(biāo)邁出了堅實的一步!這段時間,我時常會想,如果一切可以重來,我會選擇另外一種學(xué)習(xí)方式,從一開始就夯實基礎(chǔ)!可是這是不現(xiàn)實的,經(jīng)歷了無數(shù)次的風(fēng)雨后,柔弱的我早已學(xué)會了堅強。通過不斷的交流與學(xué)習(xí),我懂得了生活,懂得了學(xué)習(xí),懂得了時間,懂得了成長,懂得了奮斗和拼搏?,F(xiàn)在知道,為時不晚,從現(xiàn)在開始,我將為自己開辟一條適合自己的道路。
伴隨著烈日,我們又開始了新的征程,開始深入學(xué)習(xí)linux系統(tǒng)程序設(shè)計,在這個階段,我們學(xué)習(xí)了操作系統(tǒng)基礎(chǔ)、并發(fā)性、linux系統(tǒng)接口、進程和線程以及進程間的通信。通過這階段的學(xué)習(xí),我對linux有了更加深入的了解,能夠熟練進行多線程多進程的操作。
緊接著就進入了網(wǎng)絡(luò)編程學(xué)習(xí)階段,從網(wǎng)絡(luò)基礎(chǔ)到linux網(wǎng)絡(luò)編程,我更加深入的學(xué)習(xí)了tcp/ip協(xié)議和osi模型,理解了數(shù)據(jù)報的傳輸過程,對網(wǎng)絡(luò)在嵌入式方面的應(yīng)用進行了深入的學(xué)習(xí),學(xué)會了socket編程。學(xué)完后重新對學(xué)生選課管理系統(tǒng)進行了改寫,用c/s模型改寫成多用戶登錄,利用線程實現(xiàn)資源共享。在項目改寫中,不僅融合了前面的c語言知識,還充分的應(yīng)用了linux系統(tǒng)編程和socket編程,將理論和實踐相結(jié)合,相互促進,相互補充,使得學(xué)習(xí)更加透徹。通過用不同方法實現(xiàn)同一個項目,不斷深入,層層推進,學(xué)以致用!
在易嵌的這個暑假,我過得充實而快樂。在這里有著同學(xué)間的探討、師生間的互動和魔鬼般的訓(xùn)練!軍隊通過扎實的訓(xùn)練培養(yǎng)出來一代代革命軍人,相信不久的將來,我也會成為一名優(yōu)秀的嵌入式工程師!
短短三周的很快就過去了,在中軟國際嵌入式方向班的第二次實習(xí)馬上就要結(jié)束了。雖然只有短短的三周,但我學(xué)會了很多知識,學(xué)習(xí)了在Linux-Fedora14操作系統(tǒng)的環(huán)境下完成基于Smart210SDK開發(fā)板和DS18B20的溫度采集及顯示系統(tǒng)還有按鍵控制LED燈并實現(xiàn)開機和關(guān)機的相關(guān)功能,這些知識讓我們對嵌入式有了更進一步的了解與熟悉。 作為一名大學(xué)生,縱觀現(xiàn)在的就業(yè)形勢,國家高校的擴招,世界金融危機的橫掃,大學(xué)生應(yīng)該有一種居安思危的緊迫感,特別是對已經(jīng)度過幾年大學(xué)的我來說,畢業(yè)并不是一個遙遠(yuǎn)的詞匯。寶劍鋒從磨礪出,梅花香自苦寒來,缺少了平時的鍛煉,沒有厚積當(dāng)然不能有薄發(fā)。首先我得有思想上的緊迫感,在學(xué)校學(xué)習(xí)的都是理論知識,實踐經(jīng)驗則是少之又少。綜合能力強的人才才是這個社會需要的,成長成為社會需要的人才是我的個人奮斗目標(biāo)。有了強大的精神動力,有了堅如磐石的毅力,相信成功并不遙遠(yuǎn)。
首先,通過這些天的實訓(xùn)我學(xué)到了很多知識。這一階段在Linux-Fedora14操作系統(tǒng)的環(huán)境使用Smart210SDK開發(fā)板做一些程序設(shè)計并燒寫到SD卡中通過Smart210SDK開發(fā)板來實現(xiàn)程序的執(zhí)行,通過對Smart210SDK開發(fā)板的一步一步的熟悉和了解我們開展了嵌入式的基本的程序燒寫、調(diào)試、執(zhí)行這些相關(guān)的鍛煉過程。
最后我們做了兩個項目:
第一個是基于Smart210SDK開發(fā)板的按鍵控制LED燈并且實現(xiàn)開機和關(guān)機的相關(guān)功能與實現(xiàn)---項目功能是:實現(xiàn)長按開發(fā)板上的K1鍵實現(xiàn)開機或關(guān)機,在開機狀態(tài)下能夠?qū)崿F(xiàn)K1短按控制LED1的點亮與熄滅、K2短按控制LED2的點亮與熄滅、K3短按控制LED3的點亮與熄滅、K4短按控制LED4的點亮與熄滅。項目涉及的相關(guān)技術(shù)是:相關(guān)寄存器的調(diào)用,延時子函數(shù)的調(diào)用,LED燈的初始化,實現(xiàn)按鍵的長按與短按的控制的C語言程序的設(shè)計與實現(xiàn)。
第二個是基于Smart210SDK開發(fā)板和DS18B20的測量并在minicom上顯示的功能與實現(xiàn)---項目功能:首先實現(xiàn)DS18B20的初始化,然后在DS18B20中寫數(shù)據(jù)、數(shù)據(jù)轉(zhuǎn)換、讀數(shù)據(jù)、進行數(shù)據(jù)間的格式轉(zhuǎn)換,最后在minicom上顯示出所
讀出的溫度,并且實現(xiàn)當(dāng)溫度高于32°C的時候LED燈閃爍,當(dāng)溫度高于35°C的時候蜂鳴器響。項目涉及的相關(guān)技術(shù)是:相關(guān)寄存器的調(diào)用,UART的串口與DS18B20的初始化,延時子函數(shù)的調(diào)用,字符與字符串的輸入輸出,計算溫度的并進行數(shù)據(jù)類型的轉(zhuǎn)換的C語言程序的設(shè)計與實現(xiàn)!
在此次的實訓(xùn)中我感覺到我們最大的不足就是動手的能力太差,這次實訓(xùn)也讓我深刻的了解到,不管在工作中還是在生活中要和老師、同學(xué)保持良好的關(guān)系是很重要的。做事首先要先做人,要明白做人的道理,如何與人相處是現(xiàn)代社會的做認(rèn)得一個最基本的問題,對已自己這樣一個即將步入社會的人來說,需要學(xué)習(xí)的東西很多。從一起做項目的同學(xué)身上我看到了謙虛謹(jǐn)慎、細(xì)心努力的態(tài)度,在以后我的生活中我還會留意身邊同學(xué)的優(yōu)點,從他們身上找尋我所缺少的品質(zhì),不斷學(xué)習(xí)。從老師那里我看到了企業(yè)人的生活面貌,沒有事情可以不勞而獲,今天老師們能夠領(lǐng)導(dǎo)我們是他們之前努力的結(jié)果,雖然老師沒有和我們講很多公司里的事情,可是他們的言行中所表現(xiàn)出來的都是比我們要嚴(yán)謹(jǐn)?shù)亩嗟膶ぷ鞯膽B(tài)度。最后謝謝老師辛苦的教導(dǎo)我們!
在嵌入式公司經(jīng)歷三個月的工作實習(xí)已經(jīng)結(jié)束了,在這三個月里,我和公司的職工以及領(lǐng)導(dǎo)都相處得很是融洽,大家對我也關(guān)懷備至,時常給我鼓勵和幫助。下面,我將實習(xí)三個月的工作總結(jié)如下:
一、感想和體會
1、態(tài)度決定一切。工作時一定要一絲不茍,認(rèn)真仔細(xì),一個職員在公司的大部分時間都是在工作的,這就要求他在這段時間內(nèi)一定要小心謹(jǐn)慎,一絲不茍,不能老是出錯,有必要一定要檢驗自己的工作結(jié)果,以確保自己的萬無一失.工作的時候我一直保持極大的工作熱情,不僅順利完成工作任務(wù),工作之余還經(jīng)??偨Y(jié)經(jīng)驗教訓(xùn),不斷提高工作效率,雖然工作中我也會犯一些錯誤,受到領(lǐng)導(dǎo)批評,但我認(rèn)為這些錯誤和批評是能讓我能在以后的工作中謹(jǐn)慎小心,提高工作效率。在和大家工作的這段時間里,他們嚴(yán)謹(jǐn)、認(rèn)真的工作作風(fēng)給我留下了很深刻的印象,我也從他們身上學(xué)到了很多自己缺少的東西。這次生產(chǎn)實習(xí)雖然說時間比較少,但是卻讓我了解了公司的企業(yè)文化、生產(chǎn)模式和質(zhì)量體系管理等經(jīng)驗,這對我來說是很寶貴的。
2、勤于思考在工作崗位上一定要勤于思考,不斷改進工作方法,提高工作效率.公司的日常工作都會比較繁瑣,而且?guī)滋煜聛硪矔容^枯燥,就是需要你多動腦筋,不斷地想方設(shè)法改進自己的工作方法,提高工作效率,減少工作所需時間。
3、不斷學(xué)習(xí)要不斷的豐富自己的專業(yè)知識和專業(yè)技能。這會使你的工作更加得心應(yīng)手。一個人在自己的職位上有所作為,一定要對自己職業(yè)的專業(yè)知識有所熟悉,對自己業(yè)務(wù)所在范圍內(nèi)的業(yè)務(wù)技能也要熟練掌握,這樣才算是一位合格的技術(shù)人員。
二、工作成果與收獲
在這三個月里,我作為一個質(zhì)量改善技術(shù)人員,認(rèn)真學(xué)習(xí)公司的質(zhì)量管理流程,根據(jù)崗位職責(zé)的要求,主要有以下工作成果及收獲:
1、物料篩選車間篩選工裝的制作完成的工裝有:遙控器篩選工裝3個,塑封電機篩選工裝4臺,鐵殼電機篩選工裝4臺,電控測試工裝4臺,傳感器篩選工裝1臺,PTC電加熱篩選1臺。在制作過程中,我深刻的感受到,想要做好合理實用的工裝必須了解被測試的物料的質(zhì)量、工藝和性能這三個方面,根據(jù)我以前的工作經(jīng)驗,這三個方面我已經(jīng)掌握,所以我用自己的經(jīng)驗去做工裝,很快的得到大家的認(rèn)可。
2、篩選工裝的完善和維護
a、工裝完善方面:工裝制作完成后,為了工裝達到預(yù)期的效果,我不斷的查看工裝在使用過程中的不足,改善不足之處,力求工裝在人員使用方面達到舒適、便捷;在工作效率方面達到快速有效。
b、維護方面:加強對工裝使用人員的培訓(xùn),讓使用人員不僅會使用測試工裝而且還會處理工裝常見的問題。
3、外機預(yù)裝和篩選工裝CTQ的編制
a、外機預(yù)裝CTQ編制是以流水線的方式制定的,所有元器件要根據(jù)工藝文件確認(rèn)后,在通過自檢、互檢和質(zhì)量工藝要求來保障產(chǎn)品質(zhì)量的。分別編制了KFR-23W、KFR-35WG、KFR-72W三種常規(guī)機型。
b、篩選方面的`CTQ是針對元器件的外觀和基本性能,看元器件是否符合質(zhì)量工藝要求。分別編制了遙控器CTQ、塑封電機CTQ、鐵殼電機CTQ、溫度傳感器CTQ、PTC電加熱CTQ。
4、指導(dǎo)外協(xié)廠的品質(zhì)改善,分析與改良不良材料跟蹤
a、對篩選車間統(tǒng)計的日報分析、生產(chǎn)下線分析日報分析
從分析表中可以看出各廠家物料的質(zhì)量問題的波動,根據(jù)這個依據(jù)來指導(dǎo)外協(xié)廠家的品質(zhì)改善,前期塑封電機噪音下線率高,新飛10027遙控器下線率高、鐵殼電機下線率高,我參加了改善與跟蹤,并編制了質(zhì)量缺陷跟蹤表。
b、對預(yù)裝生產(chǎn)過程的出現(xiàn)的質(zhì)量問題分析與改進
前期跟蹤分析預(yù)裝門開關(guān)電機下線率高的問題,并執(zhí)行臨時整改措施,運用質(zhì)量分析---魚骨圖等工具來分析根本原因和直接原因,然后拿出永久的對策,接著執(zhí)行及驗證對策,最終防止再次發(fā)生或在其它產(chǎn)品上發(fā)生。通過這次改進,讓我了解了公司的改進流程。以上這些工作使我認(rèn)識到質(zhì)量改進是無極限的,產(chǎn)品只有更好,沒有最好。
三、明確崗位職能,
根據(jù)崗位職責(zé)的要求,我的主要工作及學(xué)習(xí)任務(wù)是:
1、負(fù)責(zé)從樣品到量產(chǎn)整個生產(chǎn)過程的產(chǎn)品質(zhì)量控制,尋求通過測試、控制及改進流程以提升產(chǎn)品質(zhì)量;
2、負(fù)責(zé)解決產(chǎn)品生產(chǎn)過程中所出現(xiàn)的質(zhì)量問題,處理品質(zhì)異常及品質(zhì)改善;
3、產(chǎn)品的品質(zhì)狀況跟進,處理客戶投訴并提供解決措施;
4、制定各種與品質(zhì)相關(guān)的檢驗標(biāo)準(zhǔn)與文件;
5、指導(dǎo)外協(xié)廠的品質(zhì)改善,分析與改良不良材料。
四、認(rèn)識個人能力不足。
1、目前在產(chǎn)品的品質(zhì)狀況跟進,處理客戶投訴、品質(zhì)相關(guān)檢驗標(biāo)準(zhǔn)制等方面存在不足,為了讓自己做一個更稱職的人員,一定努力學(xué)習(xí)并克服各種不足。
2、在與別人打交道方面由于性格等原因,缺乏主動性,但是在質(zhì)量工作上,要別人接受你的意見,就需要具備良好的溝通能力,一定要主動積極,把溝通作為交流的橋梁。
五、今后自己努力方向
1、學(xué)無止境,各種學(xué)科知識日新月異。我將堅持不懈地努力學(xué)習(xí)各種技術(shù)知識,并用于指導(dǎo)實踐。對現(xiàn)今空調(diào)制冷行業(yè)來說,變頻空調(diào)技術(shù)的發(fā)展加速了高能效空調(diào)的淘汰步伐,在這方面我要加強自我學(xué)習(xí)。
2、光說不做,不行。在以后的工作中不斷學(xué)習(xí)知識,通過多看、多學(xué)、多練來不斷的提高自己的各項技能。從零部件的裝配到整機下線所有的工藝流程和質(zhì)量要求都需要一一掌握,這樣才能不斷的豐富自己,讓自己不提前被這個競爭激烈的社會所淘汰。
3、不斷鍛煉自己的膽識和毅力,提高自己解決實際問題的能力及溝通能力,并在工作過程中慢慢克服急躁情緒,積極、熱情、細(xì)致地的對待每一項工作。
★ 2019最新大學(xué)實習(xí)實訓(xùn)心得總結(jié)范文3篇精選