第一篇:嵌入式心得
11計科4班
115031303
4魯敏杰
嵌入式實習報告
實習內容:學習并自己動手在Ubuntu系統下制作電子相框
實驗目的:Ubuntu操作系統的使用,利用C語言編寫程序制作電子相框第一周學習:學習Ubuntu操作系統的簡單使用
使用VMware 虛擬機搭建Ubuntu操作系統環境;作為主要由自由軟件構建的操作系統,Ubuntu具有龐大的社區力量,用戶可以方便地從社區獲得幫助。Ubuntu的一些基本命令操作如下所示:
Ls查看系統目錄下的文件
Cd進入目錄 后接地址cd..返回上級
Gedit進行編譯操作 后接需要編譯的文件
Cat查看文件 在編譯器中查看與vi 相似
Make進行編譯make clean 清理編譯
Ctrl+Alt+F2 進入Ubuntu系統的控制臺
Ctrl+Alt +F7退出控制臺操作
ctrl + C控制臺操作時終止程序運行
第二周學習:在Ubuntu中利用C語言實現圖片的特效運轉
電子相冊的主體結構在編譯器中實現編譯,主要學習C語言程序的編寫實現圖片的特效顯示。圖片特效的實現學習完畢,就開始制作電子相冊,實現圖片的添加。
圖片的添加:圖片加入文件中。在showpic.c文件中實現特效 在main.c文件中實現顯示。用C語言編寫的特效有上到下、左到右、中間分屏、上下分屏、圓的擴展與縮小、四分屏等。
部分特效關鍵代碼如下:
畫點實現在屏幕中設定坐標、參數中添加了顏色
void pixel_point(struct fb_var_screeninfo fb_var,char *mem, int x, int
y, int color)//畫點函數
{int *buf =(int *)((fb_var.xres*y+x)*fb_var.bits_per_pixel/8 + mem);
*buf = color;
}
利用C語言實現畫圓的特效
void pixel_circle(struct fb_var_screeninfo fb_var, char *mem, int x, int
y,int len,int color)//畫圓
{int i,j;
for(i=0;i for(j=0;j if(((j-x)*(j-x)+(i-y)*(i-y))>(len*len))continue; else pixel_point(fb_var,mem,j,i,color); } 滿屏打印輸出函數 voidpixel_full_screen(struct fb_var_screeninfo fb_var, char *mem,int color)//滿屏 {int i,j; for(i=0;i for(j=0;j pixel_point(fb_var,mem,j,i,color); usleep(1000); } 第三周學習:制作一個完整可運行的相冊程序 編程在showpic.c函數中實現圖片的特效輸出;修改showpic.c添加已有特效; 編程main.c實現圖片及特效的可控定向顯示;完成實際操作并成功運行通過驗收 學習心得: Ubuntu操作系統與Linux操作系統相似學習起來不難,超級終端的使用就是命令行的操作,這點在以前學習的Linux操作系統中有一定的基礎。最重要的感受就是特效算法的實現。這是一個學習C語言與linux的很好機會。出現問題: 1.自下到上或者自右到左實現特效時候無法正常運行,只能出現兩張圖片的一半效果。 2.分屏輸出出現很多重合的圖片,不能按照一定的速率打印。 解決問題: 多次刷屏,當讀出一半圖片時候,重新讀取另一半圖片以及新的另一半圖片。不能安裝預定的方式打印圖片 心得: 在為期三周的實習過程中,首先了解在VMware虛擬機上搭建的Ubuntu操作系統,加深了對Linux系統的理解和認識。其次就是學會一些基本的圖片特效的實現,由于時間緊迫的緣故,不能熟練的掌握。但是實現一些基本特效還是比較容易的,對C程序又有了新的理解??偸欠敢恍┖軠\顯的錯誤,說明還是學的不夠扎實。這次實習也給了重新認識自己的機會,知道了以前學到的跟實踐起來還是有很大的差別,面臨工作的壓力,我們這點能力是不夠看的。要想找到理想的工作,同志仍需努力! 專題課學習至今,學到了很多東西。而找工作時,各種筆試面試中,深刻地體會到“嵌入式系統”的重要性。這讓我更堅定了學好嵌入式系統的想法。 嵌入式系統這門課和C語言頗有關聯,這也重新夯實了我的C語言基礎。而良好的C語言能力,也是學習嵌入式的必備基礎。我決定在學好基礎后,在對嵌入式進行擴展學習。 據了解嵌入式學習主要有兩方面:軟件和硬件。嵌入式軟件的比較多,而做硬件不多,但多是高手。嵌入式的軟件又有好多種,主要是針對不同CPU的,但是基本都是用C語言的,還有極少的匯編,主要在BOOT啟動、初始代碼中。目前來說,嵌入式Linux比較流行,安卓就是基于linux內核的。wince、Vxworks什么的貌似不多,特別是vxworks。 我也對嵌入式系統的應用方面進行了了解?,F在在市場還是蠻吃香的,可從事的就業方向還是蠻多的比如:消費類電子(手機、PDA、游戲機)、數字 多媒體(網絡點播、機頂盒)、汽車電子(導航儀)、醫療電子、工業控制等行業。 嵌入式系統是二十一世紀科技領域的重大創新,必將推進全球經濟社會高速發展,實現人類發展史上的重大突破??茖W在發展,人類在進步,隨著一代又一代IT精英們的不斷努力,未來的嵌入式系統一定會是更加方便人們的工作、學習、生活的好伴侶。 據了解,嵌入式市場有非常大的機會,預計到2012年將有30億臺嵌入式設備交貨。這樣一個“爆炸性”的增長主要是由于終端用戶越來越基于連接性的用戶體驗及應用程序來購買具有智能、連接性、服務導向的設備。 附 嵌入式系統是“控制、監視或者輔助裝置、機器和設備運行的裝置(”devices used to control, monitor, or assist the operation of equipment, machinery or plants)。從中可以看出嵌入式系統是軟件和硬件的綜合體,還可以涵蓋機械等附屬裝置。目前國內一個普遍被認同的定義是:以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專業計算機系統。 本文從嵌入式系統的 等方面來概要性地介紹嵌入式系統。 1.嵌入式系統的概念 1.1嵌入式系統的定義 根據IEEE(電氣和電子工程師協會)的定義,嵌入式系統是“控制、監視或者輔助裝置、機器和設備運行的裝置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。從中可以看出嵌入式系統是軟件和硬件的綜合體,還可以涵蓋機械等附屬裝置。目前國內一個普遍被認同的定義是:以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專業計算機系統。 1.2 嵌入式系統的特點 1.系統內核小。由于嵌入式系統一般是應用于小型電子裝置的,系統的資源相對有限,所以內核較之傳統的操作系統要小得多。 2.專用性強。嵌入式系統的個性化很強,其中的軟件系統和硬件的結合非常緊密,一般要針對硬件進行系統的移植,即使在同一品牌、同一系列的產品中也需要根據系統硬件的變化和增減不斷進行修改。同時針對不同的任務,往往需要對系統進行較大更改,程序的編譯下載要和系統相結合,這種修改和通用軟件的“升級”是完全兩個概念。 3.系統精簡。嵌入式系統一般沒有系統軟件和應用軟件的明顯區分,不要求其功能設計及實現上過于復雜,這樣一方面利于控制系統成本,同時也利于實現系統安全。 4.高實時性的系統軟件(OS)是嵌入式軟件的基本要求。而且軟件要求固態存儲,以提高速度;軟件代碼要求高質量和高可靠性。 5.嵌入式軟件開發要想走向標準化,就必須使用多任務的操作系統。嵌入式系統的應用程序可以沒有操作系統直接在芯片上運行;但是為了合理地調度多任務、利用系統資源、系統函數以及和專家庫函數接口,用戶必須自行選配RTOS(Real-Time Operating System)開發平臺,這樣才能保證程序執行的實時性、可靠性,并減少開發時間,保障軟件質量。 6.嵌入式系統開發需要開發工具和環境。由于其本身不具備自舉開發能力,即使設計完成以后用戶通常也是不能對其中的程序功能進行修改的,必須有一套開發工具和環境才能進行開發,這些工具和環境一般是基于通用計算機上的軟硬件設備以及各種邏輯分析儀、混合信號示波器等。開發時往往有主機和目標機的概念,主機用于程序的開發,目標機作為最后的執行機,開發時需要交替結合進行。 1.3幾個關鍵概念的解釋 1、嵌入式處理器 嵌入式系統的核心,是控制、輔助系統運行的硬件單元。范圍極其廣闊,從最初的4位處理器,目前仍在大規模應用的8位單片機,到最新的受到廣泛青睞的32位,64位嵌入式CPU。 2、實時操作系統 實時操作系統(RTOS-Real Time Operating System): 嵌入式系統目前最主要的組成部分。根據操作系統的工作特性,實時是指物理進程的真實時間。實時操作系統具有實時性,能從硬件方面支持實時控制系統工作的操作系統。其中實時性是第一要求,需要調度一切可利用的資源完成實時控制任務,其次才著眼于提高計算機系統的使用效率,重要特點是要滿足對時間的限制和要求。 3、分時操作系統 對于分時操作系統,軟件的執行在時間上的要求,并不嚴格,時間上的錯誤,一般不會造成災難性的后果。目前分時系統的強項在于多任務的管理,而實時操作系統的重要特點是具有系統的可確定性,即系統能對運行情況的最好和最壞等的情況能做出精確的估計。 4、多任務操作系統 系統支持多任務管理和任務間的同步和通信,傳統的單片機系統和DOS系統等對多任務支持的功能很弱,而目前的Windows是典型的多任務操作系統。在嵌入式應用領域中,多任務是一個普遍的要求。 5、實時操作系統中的重要概念 系統響應時間(System response time):系統發出處理要求到系統給出應答信號的時間。 任務換道時間(Context-switching time):任務之間切換而使用的時間。 中斷延遲(Interrupt latency):機器接收到中斷信號到操作系統作出響應,并完成換道轉入中斷程序的時間。 6、實時操作系統的工作狀態 實時系統中的任務有四種狀態:運行(Executing),就緒(Ready),掛起(Suspended),冬眠(Dormant)。 運行:獲得CPU控制權。 就緒:進入任務等待隊列,通過調度轉為運行狀態。 掛起:任務發生阻塞,移出任務等待隊列,等待系統實時事件的發生而喚醒,從而轉為就緒或運行。 冬眠:任務完成或錯誤等原因被清除的任務,也可以認為是系統中不存在的任務。 任何時刻系統中只能有一個任務在運行狀態,各任務按級別通過時間片分別獲得對CPU的訪問權。 2.嵌入式系統的組成 有關嵌入式系統的組成非常多,限于篇幅,本文只介紹其中機電最關鍵概念。嵌入式系統的組成 1)嵌入式系統硬件層。一般包括有:嵌入式處理器、存儲器、I/O系統和外設 2)嵌入式系統的軟件系統。包括:操作系統、應用軟件 嵌入式系統的開發工具(1)硬件開發工具包括:仿真器等;其它(示波器等)(2)軟件開發工具包括:編譯、連接、定位軟件,通常使用C語言;調試軟件。 3)中間層。它將系統軟件與底層硬件部分隔離,使得系統的底層設備驅動程序與硬件無關。4)應用層 一個嵌入式系統裝置一般都由嵌入式計算機系統和執行裝置組成,如圖1-1所示,嵌入式計算機系統是整個嵌入式系統的核心,由硬件層、中間層、系統軟件層和應用軟件層組成。執行裝置也稱為被控對象,它可以接受嵌入式計算機系統發出的控制命令,執行所規定的操作或任務。 2.1硬件層 硬件層中包含嵌入式微處理器、存儲器(SDRAM、ROM、Flash等)、通用設備接口和I/O接口(A/D、D/A、I/O等)。在一片嵌入式處理器基礎上添加電源電路、時鐘電路和存儲器電路,就構成了一個嵌入式核心控制模塊。其中操作系統和應用程序都可以固化在ROM中。 2.1.1、嵌入式微處理器 嵌入式系統硬件層的核心是嵌入式微處理器,嵌入式微處理器與通用CPU最大的不同在于嵌入式微處理器大多工作在為特定用戶群所專用設計的系統中,它將通用CPU許多由板卡完成的任務集成在芯片內部,從而有利于嵌入式系統在設計時趨于小型化,同時還具有很高的效率和可靠性。 嵌入式微處理器的體系結構可以采用馮諾依曼體系或哈佛體系結構;指令系統可以選用精簡指令系統(Reduced Instruction Set Computer,RISC)和復雜指令系統CISC(Complex Instruction Set Computer,CISC)。RISC計算機在通道中只包含最有用的指令,確保數據通道快速執行每一條指令,從而提高了執行效率并使CPU硬件結構設計變得更為簡單。 嵌入式微處理器有各種不同的體系,即使在同一體系中也可能具有不同的時鐘頻率和數據總線狂度,或集成了不同的外設和接口。據不完全統計,目前全世界嵌入式微處理器已經超過1000多種,體系結構有30多個系列,其中主流的體系有ARM、MIPS、PowerPC、X86和SH等。但與全球PC市場不同的是,沒有一種嵌入式微處理器可以主導市場,僅以32位的產品而言,就有100種以上的嵌入式微處理器。嵌入式微處理器的選擇是根據具體的應用而決定的。 2.1.2、存儲器 嵌入式系統需要存儲器來存放和執行代碼。嵌入式系統的存儲器包含Cache、主存和輔助存儲器。 1.Cache Cache是一種容量小、速度快的存儲器陣列它位于主存和嵌入式微處理器內核之間,存放的是最近一段時間微處理器使用最多的程序代碼和數據。 在嵌入式系統中Cache全部集成在嵌入式微處理器內,可分為數據Cache、指令Cache或混合Cache,Cache的大小依不同處理器而定。一般中高檔的嵌入式微處理器才會把Cache集成進去。 2.主存 主存是嵌入式微處理器能直接訪問的寄存器,用來存放系統和用戶的程序及數據。它可以位于微處理器的內部或外部,其容量為256KB~1GB,根據具體的應用而定,一般片內存儲器容量小,速度快,片外存儲器容量大。 常用作主存的存儲器有: ROM類 NOR Flash、EPROM和PROM等。 RAM類 SRAM、DRAM和SDRAM等。 其中NOR Flash 憑借其可擦寫次數多、存儲速度快、存儲容量大、價格便宜等優點,在嵌入式領域內得到了廣泛應用。 3.輔助存儲器 輔助存儲器用來存放大數據量的程序代碼或信息,它的容量大、但讀取速度與主存相比就慢的很多,用來長期保存用戶的信息。 2.1.3、通用設備接口和I/O接口 嵌入式系統和外界交互需要一定形式的通用設備接口,如A/D、D/A、I/O等,外設通過和片外其他設備的或傳感器的連接來實現微處理器的輸入/輸出功能。 2.2軟件系統 系統軟件層由實施多任務操作系統(Real-time Operation System,RTOS)、文件系統、圖形用戶接口(Graphic User Interface,GUI)、網絡系統及通用組件模塊組成。RTOS是嵌入式應用軟件的基礎和開發平臺。 嵌入式實時操作系統: 實時多任務操作系統(RTOS)是嵌入式應用軟件的基礎和開發平臺。RTOS是一段嵌入在目標代碼中的程序,系統復位后首先執行,相當于用戶的主程序,其他程序都建立在RTOS之上。 2.3中間層 硬件層與軟件層之間為中間層,也稱為硬件抽象層(Hardware Abstract Layer,HAL)或板級支持包(Board Support Package,BSP),它將系統上層軟件與底層硬件分離開來,使系統的底層驅動程序與硬件無關,上層軟件開發人員無需關心底層硬件的具體情況,根據BSP 層提供的接口即可進行開發。該層一般包含相關底層硬件的初始化、數據的輸入/輸出操作和硬件設備的配置功能。 BSP具有以下兩個特點: 硬件相關性:因為嵌入式實時系統的硬件環境具有應用相關性,而作為上層軟 件與硬件平臺之間的接口,BSP需要為操作系統提供操作和控制具體硬件的方法。 操作系統相關性:不同的操作系統具有各自的軟件層次結構,因此,不同的操作系統具有特定的硬件接口形式。 3.嵌入式系統的開發 3.1嵌入式兩種開發 硬件,主要使用語言是C語言和匯編,例如做dsp開發,做驅動開發,這類的開發對硬件要求比較高,短期內比較難掌握,除非是專業人士,另外,這類開發的就業機會比較少,因為國內的硬件設計力量很弱,稍復雜的硬件都交給國外公司設計,所以大學生找這樣的工作很難,這也是為什么很多這類的畢業生都轉行去做應用層的軟件開發或者做網絡維護之類的工作了。 軟件,主要基于嵌入式操作系統,例如Symbian、Linux、Windows mobile、Android等等,開發人員主要從事嵌入式操作系統和應用軟件的開發。特點是:比較容易上手學習,就業機會多,因為嵌入式設備的增值很大程度上取決于嵌入式軟件,這占了嵌入式系統的最主要工作。越是智能設備越是復雜系統,軟件越起關鍵作用,而且這是目前的趨勢,所以需要大量的研發人員,而且就業前景也非常的看好。 3.2嵌入式系統開發生命周期 硬件與軟件將同時進行開發。理解硬件與軟件功能相互之間的關系及界限有助于確保設計要求得到完整正確的理解和實現。 早在設計要求的定義與分析階段,就必須分配系統仿真、原型設計和行為建模結果、一旦分配結束,就可以立即著手具體的設計和實現。實時系統開發中軟硬件的并行設計會使用到各種分析技術,包括: 1.硬件與軟件仿真; 2.硬件/軟件協同仿真; 3.可調度的建模技術,如速率恒定分析; 4.原型設計和漸進式開發。 低層仿真可以用來為總線寬度和數據流程建模,這對性能評估是非常有用的。高層仿真可以滿足功能的交互,并促成硬件/軟件權衡研究及有效性設計。 4.嵌入式系統的現狀與發展 發展現狀: 隨著信息化,智能化,網絡化的發展,嵌入式系統技術也將獲得廣闊的發展空間。 硬件方面,不僅有各大公司的微處理器芯片,還有用于學習和研發的各種配套開發包。目前低層系統和硬件平臺經過若干年的研究,已經相對比較成熟,實現各種功能的芯片應有盡有。而且巨大的市場需求給我們提供了學習研發的資金和技術力量。 從軟件方面講,也有相當部分的成熟軟件系統。國外商品化的嵌入式實時操作系統,已進入我國市場的有WindRiver、Microsoft、QNX和Nuclear等產品。 發展趨勢: 信息時代,數字時代使得嵌入式產品獲得了巨大的發展契機,為嵌入式市場展現了美好的前景,同時也對嵌入式生產廠商提出了新的挑戰,從中我們可以看出未來嵌入式系統的幾大發展趨勢:。 1.嵌入式開發是一項系統工程,因此要求嵌入式系統廠商不僅要提供嵌入式軟硬件系統本身,同時還需要提供強大的硬件開發工具和數據庫支持。 目前很多廠商已經充分考慮到這一點,在主推系統的同時,將開發環境也作為重點推廣。2.網絡互聯成為必然趨勢。 未來的嵌入式設備為了適應網絡發展的要求,必然要求硬件上提供各種通信接口。傳統的單片機對于網絡支持不足,而新一代的嵌入式處理器已經開始內嵌網絡接口,支持更多協議。 3.精簡系統內核、算法,降低功耗和軟硬件成本。 未來的嵌入式產品是軟硬件緊密結合的設備,為了減低功耗和成本,需要設計者盡量精簡系統內核,只保留和系統功能緊密相關的軟硬件。 嵌入式心得體會 本人大學學的是電子信息科學與技術專業,其實這個專業和嵌入式沒有多大的關系,要說有關系就是簡單的講了下C語言語法,學完之后還不知道什么是C語言,只記住了,char,int,string等占幾個字節,if, for, while循環什么的,感覺也就能算一些小學就會的題目,全國計算機等級二級也就糊涂的過了。我這個專業沒學過C++,一開始不知道什么是向對象,什么叫面向過程,這可能讓大家笑話了。不過這說的是實話,大學的時候比較喜歡動手,喜歡硬件方面的東西,也喜歡看書。在大一的時候就聽學長說,單片機很難學,在沒事的時候就從圖書管借了本關于51的書,一開始還真是不怎么懂,然后硬著頭皮去看,當我把51的結構看完了,就不像一開始那樣一頭霧水了,自己在紙上把51的結構圖默畫一遍,然后再把各個寄存器功能寫一下,各個功能口的結構也畫一遍,然后就不覺得51有什么難了。其實有些時候不是這個東西你不會,而是在不會的時候自己先告訴自己這個太難了,自己先放棄了。我們學習51芯片,是為了以后的打基礎,知道是怎么通過配置寄存器來實現功能。 大二下學期的時候,我們開了51的課,這個課幾乎就沒怎么去,因為我認為沒有必要去聽自己會的東西了。后來聽別人說avr的資源會比51的豐富的很多,所以就想試試,看看有什么難的,就從網上買了本馬潮老師《AVR單片機嵌入式系統原理與應用實踐》,一邊看書,一邊想自己畫一個板了,一開始想實現一個點陣屏,實現滾動效果,后來想想做個板也花不少錢呢,為什么不多加一些功能呢,還能多學到些知識,所以就加了溫感,紅外,鐵電存儲器等并把所有的擴展口都擴展了出來,備以后用,那時還挺自豪的呢,同學們都很羨慕,不過現在想想其實也沒什么了。 大學也聽說過嵌入式這個詞,不過不太明白是什么意思,09年的時候從網上找到中嵌視頻,有四張DVD(大約13G),下載下來后,從頭到尾的看了一遍,沒什么印象,只記得講一些不知所云的函數,然后莫名其妙的講怎么使用那個44b0的開發板,不過聽完了,還是有很大收獲的,就有一種想裝一個linux的沖動,我是大二下學期才有的自己電腦,不過電腦的配置比較低,1g內存,跑虛擬機就像個蝸牛,所以就想著怎么才能裝個linux,自己用XP習慣了,如果全換了又舍不得,那時從書上知道linux的文件系統和windows不一樣,只有一個根分區,所以也害怕一裝linux全盤就被格式化了,不過最后還是欲望戰勝了擔心,買了張redhat 9的光盤,小心的裝這個系統,里邊的英文也不是太難,還是知道大概意思的,所以一步步的裝,最后裝到我的硬盤的最后空間,重新啟動,竟可以選擇進入哪一個系統了,從這之后,自己就不害怕怎么裝系統了,應了那句言,紙上得來終覺淺,絕知此事要躬行。所以我認為,買一個開發板是完全有必要的,拿到實物操作一下就不會感覺太抽象了。 后來也想學學arm,但不知道arm是什么東西,所以就買了本《從51到arm》,講的是關于arm的大體結構,看完后感覺,原來arm就是一個速度更快,接口更豐富的單片機啊。如果想做linux設備驅動的同學應該對arm硬件有一些了解。如果對驅動不感興趣,完全沒有必要去看。交叉編譯器會幫我們做好這些事情,他比我們更了解arm結構。 大三下學期開始準備考研了,所以自己這些興趣就先放下了,報的北郵的信通學院通信專業,當時就是想一定要上個好學校好專業,也沒想太多,結果考了的成績差了點,沒有被錄取,也不想調劑一個二流的學校,然后就參加工作了,工作中每天都用的到開發板,當我看到一個小板上還可以跑系統的時候感覺很不可思議,以為要很大工程。后來邊工作邊學習,每天都要看電腦看到眼發疼,晚上也都差不多十二點時才睡覺。感覺到累,不過也感覺到自己在進步。 閑話有點多了,說了很多都是自己大學那點破事。 聽很多的初學者說不知道從哪里開始,學習嵌入都要學哪些東西,從網上搜了一下,一大堆的東西要學,一下就推薦十幾本書,說看完這本書怎么怎么樣,看完那本書怎么怎么樣,一下子就給初學者給嚇住了,其實完全沒必要把網上的那些東西全部看一遍,那樣又費時,又感覺工程太大,讓初學者沒有信心去把每一種都看完。網上說的些方面都要知道,不一定全部都掌握,我們可以退成求其次,每一個都知道一些,當然會的越多越好。今天學點這個明天學點那,換著樣來也不會覺得煩。而且還能感覺到每天都有收獲。 下面給嵌入式初學者一些自己的我個人建議。1嵌入式涉及到很多的基礎知識: c語言,關于C語言要知道基本的語法,什么是結構體,什么是共用體,有什么區別,不用強記一些二級考的東西,因在實際中用的很少。 c++要知道什么是類,怎么定義,繼承,接口,要深刻理解,當然基本語法也是必不可少的。 操作系統原理也應該知道基本的原理的,我記得我大學沒這個課還是去電信學院蹭別的專業的課呢,后來學習發現很多的東西都是在這個課上學到的。什么時間片啊,任務調度啊,都是在那里知道的。 Linux基本命令的使用(vi編輯器必須會用,因為在終端改文件的時候只能用這個),我們現在很多的人都習慣用鼠標了,很少用到命令,我們學習嵌入linux可要改改這個習慣了,linux用命令操作一是效率高,二是功能非常強大,遠非圖形界面能比的了的,其實我們用圖形界面的操作都要轉化為命令傳給硬件的。 Linux文件系統的管理要清楚,哪個目錄存放是什么東西,有什么用,文件權限管理等 Shell編程也要了解一些,在這給大家推薦一個教程,周朝劍的 shell編程,也就七八講吧,講的很全面。初學者看前4講就可以了。 Linux設備驅動的架構要了解,初學者可以以飛凌的OK6410開發板上的led驅動分析一下,結合原理圖和linux設備驅動相關書籍把每一行代碼都分析明白。關于驅動給大家推薦一本書《LINUX社備驅動程序》中國電力出版社出版的,很經典的,初學者看可能看不太明白,不過要堅持看,最次也得把前6章看完了。看書不要希望一次就會,一次就明白是什么意思,也不要死記硬背,看不明白也沒關系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就記住了,遇到的少的,忘記也就忘記了。還有,不要直接閱讀linux內核源代碼,看一些自己把頭撞破也想不明白的事,會打擊初學者的積極性,要循序漸進,今天學個做個led,明天做個串口,后天說不定就做硬件編解碼了。 3、你可以不接受培訓,但是不能不買開發板。如果你想學習嵌入式一定要買塊學習板,現在的開發板很便宜了,給我們初學者減輕了很多經濟負擔??丛俣嗟囊曨l,看再多的書,也不如自己動手試一下,看著很簡單的東西,做起來就可能遇到很多的問題,遇到問題找到原因,解決問題,只有這樣才能學到東西,記得我第一次寫led的驅動,想自己試一下,網上也有人寫過相關的代碼,可是自己一試,就出了好多的問題,那個led弄了我一天才把led燈點亮。所以不要眼高手低。 還有關于培訓,現在的培訓機構很多,講的也不錯,老師也很好,但是有一個問題,太集中了,而且學生動手的機會也不太多,記得我們公司還招了一個在北京某個培訓機構培訓半年的員工呢,花了一萬多,來了之后也沒感覺有多高,問他都學了什么,也就是我前邊說的那些基礎知識,很多的東西還是不知道的,照著書弄個helloworld模塊驅動兩天沒搞定。不是培訓不好,但我個人見解效果并不是很好。記?。褐挥凶约簞邮肿鲞^的東西才是自己的。 現在買一塊開發板很便宜,飛凌的OK6410的開發板就不錯,源碼完全開放,而且資料也很豐富,完全能滿足初學者學習用,有人說友善的板子也不錯,我個人覺得友善的板子不 錯,但是不適合初學者,因為他的很多的東西是不給代碼的,用過友善的板子的同學經常有這樣的痛苦,想學一個東西,去找他的代碼的時候,卻找不到,很多友善提供的代碼中很多的都是封裝好的,只提供給客戶一個庫,初學者想要找代碼的時候就不知道怎么辦了。不要好高騖遠,要腳踏實地 對于初學者,還有一點小建議,我們拿到一個開發板,很興奮也很激動,想法自然也很多,想用開發板實現自己的這個想法,實現那個想法,然后又不知道從何下手,然后就去論壇中發一個貼,“那個什么什么怎么實現啊,哪位大俠能詳細說一下啊,跪求!”然后等著別人去回復。見沒人回復就抱怨。有想法是好的,我們要實現自己的想法也是有前提的,首先,我們對這部分知識了解嗎?如果不了解就去google一下(最好別用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到問題,再去發貼問,這樣也顯得咱們有水平。比如自己連串口是什么都不太清楚呢,就問串口通信怎么做啊,就是人家把代碼給咱,咱也不明白是怎么回事啊。多看代碼,多寫代碼 見多識廣,熟能生巧。多看代碼,要從代碼中讀出代碼的意思來。自己平時也要多寫代碼,多練習(這一點我做的不好,寫的少)。 寫完已經晚上兩點了,思路有些亂,有些也是個人的見解,在有些人看來可能是錯誤的,每個人有每個人的學習方法,但是我們的目的只有一個——希望我們學到更多的知識。 學習嵌入式系統心得 說實在話在沒有學習之前,以及在學之前通過一些口中得知這是一門很不錯,很有意思的一門課。而且目前是十分吃香的一門課程,如果學好了工作很好找并且待遇也很好。聽到這些,我內心非常期待上這門含金量如此之高的一門技術課。據我了解,嵌入式系統是一個很有前景的行業。學會嵌入式技術,就相當于給自己創造了更多的機會。那么,在可以預計的將來,嵌入式技術的應用會越來越廣泛。(大量的人才需求,未來五年內,國內LINUX嵌入式軟件開發的人才缺口達到120萬) 說實在的,第一天,我滿懷期望的去上這門課??墒且簧险n聽到老師的介紹,我就頭昏腦脹了。這是什么課啊,誰會聽得懂。猶如天書一般。 實事求是的說,嵌入式技術的全面掌握是有相當難度的??梢暂p輕松松學會嵌入式技術的說法是夸大其詞了。這個就像學英語一樣,學英語無論怎樣學,不管是“瘋狂學”還是用新理念來學,真正掌握的話還是需要一步步積累才能熟練掌握。在此,我們通過短短的幾個星期簡單的了解和學習一下嵌入式,想成為這方面的高手。這些想法本身是不太現實的。我心里清楚我們需要做的是: 第一:把心踏實下來,做好打硬仗的準備。 第二:注意學習方法。盡量不要走彎路,爭取一鼓作氣入門。一旦入門了以后呢就好辦了。嵌入式技術的掌握,本身呢就比較難,要是再走些彎路,時間上會浪費,甚至會影響學習的信心。 這就是我這段時間的學習心得。 魯增慶 110402110 A11電氣 嵌入式學習[轉貼] 怎樣做才能快速的嵌入式了? 其實,做工程是沒有捷徑可走的先說做硬件: 把你的數字電路教材和模擬電路的教材讀熟,暫時先把重點放在數字電路上面,接著把微機原理和接口技術讀熟悉了,最好能用匯編寫幾個簡單的程序上機調試一下,這是很重要的。 完成上面的工作大概需要半年,不管你有多么的聰明,除非你以前這個基礎就打的不錯,否則,還是老老實實花上至少半年的時間!還是那句話,沒有捷徑可走,如果你相信那些什么“21天學通xx”什么的,那么我告訴你,放棄做工程吧!再說,你這么容易就學會了,別人也能的,你確定能拿到高薪嗎? 下一步,就是選擇一個DSP(或其它的嵌入式CPU)平臺作為你的目標平臺,先熟悉它的架構和與外圍電路的接口,然后學習她的指令集,也要寫一些小程序去跑一下。這個時候,你應該去買一個開發板了,一般的廠家附帶會給你一些demo程序,看懂它,理解它,修改它,在你的板子上跑一跑。完成上面兩步,說明你已經入了這個行業的門了,下一步,想成為高手的話,就是自己去設計一些項目了,這個階段所花的時間每個人都是不同的,要看你的造化(主要是前面的基礎是否牢固)了。 再說說軟件: 在嵌入式行業,你想做軟件開發的話,沒別的,那就深入理解C語言,尤其是C的指針,如果你以前學過C,但是沒有意識到C相比其它的高級語言的優點的話(不是聽別人說的,你自己的體會),你可以按下面步驟來理解C: 1、重新翻一遍C的教材,記住一些常用的C語法,但不要死摳語法; 2、從編譯器的角度來理解C; 從編譯原理的角度來理解你工作中使用的高級語言,如果你做到這一點,至少有兩個好處: 第一個好處是避免一大堆低水平重復出現的編譯錯誤。一名優秀的Coder平均在一個工作日中應該完成200行以上的源碼,其編譯錯誤應該控制在5個以下,要知道這200行源碼不是一次完成的,所以大多數情況下你都要追求一次編譯通過; 第二個好處是可以提高源碼的可讀性和效率。規范地編寫你的代碼使你自己的邏輯清晰,因為你明白多加幾個括號和空行、多換行對齊、多注釋,編譯器是會自動識別的,不影響程序執行的效率,反過來,控制好遞歸調用和循環內的if語句才是提高程序效率的關鍵,要全力避免遞歸,但要深刻理解遞歸,能通過自己建立堆棧來把遞歸程序轉換成非遞歸程序,要求還是較高的哦! 3、從硬件的角度來理解C。 完成上面3步,你就是C的高手了,接下來應該去看看軟件工程方面的書了,這個我還不太懂,不敢妄言。 另外說說教材的選擇:學一門東西,選好你的教材,只要一本就可以了。堅決防止這種情況的出現:去圖書館借很多本書,像搶劫似的,而只是每一本都翻翻,就又還給圖書館了的!注意上面我把匯編語言放在硬件學習的板塊里面,是由于匯編跟硬件的關系太緊密了,以至于是先學匯編還是先學習硬件電路和CPU架構成了要分清到底是“先有雞還是先有蛋”的千年哲學難題了。 嵌入式操作系統一覽 其實,嵌入式系統并不是一個新生的事物,從八十年代起,國際上就有一些IT組織、公司,開始進行商用嵌入式系統和專用操作系統的研發。這其中涌現了一些著名的嵌入式系統: Windows CE Microsoft Windows CE是從整體上為有限資源的平臺設計的多線程、完整優先權、多任務的操作系統。它的模塊化設計允許它對于從掌上電腦到專用的工業控制器的用戶電子設備進行定制。操作系統的基本內核需要至少200K的ROM。 VxWorks VxWorks是目前嵌入式系統領域中使用最廣泛、市場占有率最高的系統。它支持多種處理器,如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS RX000、POWER PC等等。大多數的VxWorks API是專有的。采用GNU的編譯和調試器。 pSOS ISI公司已經被WinRiver公司兼并,現在pSOS屬于WindRiver公司的產品。這個系統是一個模塊化、高性能的實時操作系統,專為嵌入式微處理器設計,提供一個完全多任務環境,在定制的或是商業化的硬件上提供高性能和高可靠性??梢宰岄_發者根據操作系統的功能和內存需求定制成每一個應用所需的系統。開發者可以利用它來實現從簡單的單個獨立設備到復雜的、網絡化的多處理器系統。 QNX QNX是一個實時的、可擴充的操作系統,它部分遵循POSIX相關標準,如:POSIX.1b實時擴展。它提供了一個很小的微內核以及一些可選的配合進程。其內核僅提供4種服務:進程調度、進程間通信、底層網絡通信和中斷處理,其進程在獨立的地址空間運行。所有其它OS服務,都實現為協作的用戶進程,因此QNX內核非常小巧(QNX4.x大約為12Kb)而且運行速度極快。這個靈活的結構可以使用戶根據實際的需求,將系統配置成微小的嵌入式操作系統或是包括幾百個處理器的超級虛擬機操作系統。 Palm OS 3Com公司的Palm OS在PDA市場上占有很大的市場份額,它有開放的操作系統應用程序接口(API),開發商可以根據需要自行開發所需要的應用程序。 OS-9 Microwave的OS-9是為微處理器的關鍵實時任務而設計的操作系統,廣泛應用于高科技產品中,包括消費電子產品、工業自動化、無線通訊產品、醫療儀器、數字電視/多媒體設備。它提供了很好的安全性和容錯性。與其他的嵌入式系統相比,它的靈活性和可升級性非常突出。 LynxOS Lynx Real-time Systems的LynxOS是一個分布式、嵌入式、可規模擴展的實時操作系統,它遵循POSIX.1a、POSIX.1b和POSIX.1c標準。LynxOS支持線程概念,提供256個全局用戶線程優先級;提供一些傳統的、非實時系統的服務特征;包括基于調用需求的虛擬內存,一個基于Motif的用戶圖形界面,與工業標準兼容的網絡系統以及應用開發工具。 目前,世面上有很多商業性嵌入式系統都在努力地為自己爭取著嵌入式市場的份額。但是,這些專用操作系統均屬于商業化產品,價格昂貴;而且,由于它們各自的源代碼不公開,使得每個系統上的應用軟件與其它系統都無法兼容。并且,由于這種封閉性還導致了商業嵌入式系統在對各種設備的支持 方面存在很大的問題,使得對它們的軟件移植變得很困難。在嵌入式這個IT產業的新的關鍵領域,Linux操作系統適時地出現在了國家和國內各嵌入式廠商面前,由于Linux自身諸多優勢,吸引了許多開發商的目光,成為嵌入式操作系統的新寵。它的出現無疑為國家發展嵌入式操作系統事業提供了一個極有吸引力的機會。 前言 這個題目很大,給人一種感覺我好像很成功,其實不然。實際上自己水平不高,甚至很低,但是做過了一些曲折的學習道路,同時把自己真實的學習歷程表達出來,希望對后來者有借鑒的意義,甚幸! 工作三年、幾成廢人! 我2000年畢業于華中地區的一個理工科大學,專業是機械電子,我當時已經簽了一家內陸某個省級機關工作,家里八輩是農民,并且很偏遠,能夠進入這樣的地方是祖墳有風水。但在畢業前夕有個進入it的機會,我本想進去的,家里人極力反對,阻力可想而知。同時要交4000元的違約金,對我來說是天文數字。大學里的費用很多是借的,幾乎將近一半的費用是在大學勤工儉學掙的,為了省錢,高中一個學期回家一次,大學一年回去一次。并且我個人也有特殊的人生背景(悲景更確切),這里不多說了,寫十篇也寫不完,同時偏離主題。這樣我就參加了工作。一張報紙一杯茶的日子,幾乎下班后有種很空虛和恐慌的感覺。在工作中雖然是與自己專業有點關系,但是很少。專業幾乎荒廢。我自己也思考,如果再不出去,自己將會成廢人,只好讓國家養了。兩年后決定出去,但是幾成廢人,誰要呢,只好到學校去鍍金。這是中國教育和社會的悲哀! 至于專業就改為計算機方面,聽說好找工作,我說實話不是很對計算機特別感興趣,生存第一需要。不要笑我,哈哈! 考研成績出來,超過了國家線幾十分。那個方向要兩個,我第三,但是那年非碘,不面試就按分數來排,自然我落選了。其實給我面試機會也不一定要我,哈哈,自己幾斤幾兩很清楚。 最后調劑到另外一個學校,交錢,咬咬牙,交吧!現在仍然債臺高筑! 進入學校前夕 為什么要把這段列出,看后就知道了。 單位有網絡,經常上網查些英語資料,在那里唯獨英語沒有丟很多。于是我就在網上查資料,學什么好呢,最后確定學嵌入式把,聽說跟硬件相對比較緊密!而我在大學里多少學習了數字電路,單片機等,所以多少也有所利用,不會真的一無所知。當然在這之前也自學過數據結構,計算機組成原理等。 C 語言在大學就學了。哈哈這就是我的家底。 我知道自己的基礎差,于是我就拿操作系統,數據庫、數據結構、c++來看,機關有這個好處,空余時間多,于是平常就看書,很痛苦,沒有人請教。 另外就上網到論壇上去,我就到各個專業的技術論壇,其實是電子論壇和嵌入式論壇。我幾乎沒有發帖,幾乎把幾個大型的出名的論壇的帖子翻遍了,雖然有很多重復的,我才知道嵌入式是個什么東東。這些帖子對我以后的學習產生了極大的影響。 最關鍵兩點: 1、嵌入式是什么? 2、嵌入式需要哪些知識? 知道了這兩點,好辦!我就開始規劃學習路線。計算機的基本理論不能丟,于是重點看組成原理,數據機構,操作系統、c++。同時論壇上了解到,實時操作系統ucos是一個很好的嵌入式操作系統,對初學者很好。于是我就買了一本書,但是代碼在電腦里調不通,網上也有很多相同的問題,我就看書,分析代碼,一遍不行就兩遍,三遍,這樣才看了入了門,才知道什么是進程。原來看操作系統書時,根本就不知道進程是個什么東西。 在這段時間掌握的東西不多,但是,對我以后的影響很大,我想起了大學時一個同學跟我說過了一句話:大學里最重要的不是學到了什么,最重要的是學會怎么學!大概是這個意思。 進入我的避難所 對我來講,再次進入大學不再是大學,而是避難所。希望這次進入給我喘氣和養精蓄銳的機會和時間。我是這樣認為和實踐的。 在學校我有三件事:上課,上圖書館,上網。 對于上課,學校開了很多課程,非常好,很多是名人名師講解,于是很多同學都想學,都去聽。我也考慮過,最后放棄。我是這樣認為的,時間是有限的,什么都想學,什么都學不成。于是我把我自己學的課進行了分化,一般的課程通過就行,重要的一定好好學。我希望不要什么爭論學習課程多和少的問題,這僅僅是我的看法。所以我的成績應該是很差的。分數低。好在后來的單位沒有要我的成績單,否則就慘了。 我個人感覺是上圖書館的效率比在寢室里高多了,這是我的經驗。 上網,我給自己定了規矩:不玩游戲,不灌水,少看電影!因為時間對我來說太少和寶貴了,我沒有資格和資本來浪費這些。上網我就在幾個重要的專業技術網站上逛,下載技術資料。我一個朋友最近開了一個嵌入式網站,里面的資料相當一部分是我在網上找的資料。那個網站很不錯,資料豐富,找嵌入式方面,特別是嵌入式linux的資料,異常豐富。 有人會問,您下了那么多資料,怎么看的完和消化的了呢? 我是這樣對待這個問題的: 1、網上資料比較零散,不系統,但是如果把差不多的東西收集起來看就相對完整了,(嵌入式的圖書就是這兩年特別多,特別是2004年,簡直是向外涌!2003年想買本嵌入式,特別是嵌入式linux的不多。) 2、對于像我這種入門的來說,很多看不懂,沒關系,反復看,我個人對學習方法的一個總結是:重復是最好的老師! 3、即使有的用不上,也可以收集以后用的上時查閱。 但是我并非什么都要,目前我的技術路線是嵌入式linux,所以像wince之類基本上不 收集。 總之,我在學校里我充分利用時間來學習,我看到一些同學整天的掛在網上打游戲,發 些無關痛癢的帖子,浪費時間呀!我真的很痛心! 學習嵌入式 在這里我把它單獨列出,文章有點紊亂,但是內容希望有益。 1、學習linux 根據我在論壇的了解,我選擇學習嵌入式linux,剛好我們學校也重視嵌入式linux,從實驗室到課程安排都是關于嵌入式linux方面,天時地利!這里我把學習linux的經驗和教訓說說。 可以這樣說,在論壇里說道學習linux差不多就學習linux內核。于是我電腦里安裝了linux就開始看linux內核方面的書了。我記得來學校以前就買到一本陳莉君的講linux內核的第一版,現在有第二版了。我就開始看那本說,大家說linux內核情景分析不錯,我就買了上下冊,后來又買了 《深入理解linux內核》,最后也買了毛德操的《嵌入式系統》也是分析linux內核代碼的,主要講arm相關的。 看內核期間是個非常痛苦的過程,看情景分析有種在森林中找出路,其間我組織了一些同學學習內核,幾乎沒有幾個能堅持下來的。我認為我是堅持下來了。情景分析在看第一、第二遍是幾乎沒有摸到門道,我分析有三個方面的原因: 1、自己的基礎差,這是最關鍵的。 2、內核本身很難。 3、沒有交流和高人指點。到了第三遍時我才摸到門,才差不多知道個linux的大概脈絡,很多細節也是稀里糊涂。 學習linux總結,這里聲明一下,我指的嵌入式主要是偏向軟件的嵌入式。學習嵌入式的重點和難點關鍵在操作系統,如果沒有掌握操作系統,我認為很難把握一個嵌入式系統。即使在做嵌入式開發中,作應有層的開發幾乎可以不知道操作系統也可以開發,我認為那是浮在表面的。很難深入和提高自己的層次。聲明:一孔之見!不可深究! 在學習linux內核過程中犯了一個極其嚴重路線錯誤:對linux幾乎不懂就開始學習內核。我個人推薦一個學習路線是:使用linux—〉linxu系統編程開發---〉驅動開發和分析linux內核。而我差不多相反,實際上你不會使用linux也可以學習內核,但是如果你懂了這些東西學習更有效率。 關于要不要學習內核的問題,我的回答如下:不一定。如果你是喜歡鉆研的那你進入內核會滿足你的欲望。同時對你以后的嵌入式系統的開發有很好的影響。如果你想從事嵌入式linux系統開發,最好對內核有所了解。如果僅僅是做應用開發沒有必要。我打個比喻:c、c++、java等語言是武林中的某個武林派別的話,如什么拳法,什么刀法等,那么linux 內核應該是一個人的內功的反應。怎么開始學linux內核:最好有三件寶物:《深入理解linux內核》《情景分析》和源代碼。 先看《深》,那主要講原理,好像市場上有本講原理性并且更淺,《linux內核設計與實現》聽說不錯。如果沒有學習操作系統的,像我這樣的,最好先看看操作系統原理的書??戳藥妆楹?,就看情景分析,最好對著《深》看。兩本交叉看,《深》是綱,《情》是目。最后深入代碼。 2、學習嵌入式linux 學習嵌入式,我認為兩個重點,cpu和操作系統,目前市場是比較流行arm,所以推薦大家學習arm。操作系統很多,我個人對開始學習的人,特別不是計算機專業的,推薦學習ucos。那是開源的,同時很小。學習很好。為什么選linux,我不想講太多,網上這方面的太多,但是我在工作中發現,做linux的技術路線很難,在windows幾乎不會有的問題,在linux開發中幾乎遍地陷阱。一掉進去劃很長時間出來,一旦解決自己又長進了!相對來說開發周期長,難度大?,F在資料也逐漸豐富起來,難度也降低了些! 至于怎么學習,這是他的特色地方,必須有塊開發板,我是同學里最早買學習板的,雖然化錢,我認為值。對我實習和工作產生了很大的影響。 如果沒有開發板,那是紙上談兵。有人說,那要1000-2000亞,的確是,兄弟,看長遠的,對您的職業和發展那點錢不算什么!有的人說我站著說話不腰痛,好吧,錢這東西對我影響很大,我在大學里掃廁所,掃的不錯,獎5元/月。兄弟你有過嗎?我認為教育投資是效益最有保障的!我實習拿3k,很多同學拿1-2k,當然比我高的也有。雖然我現在沒有畢業,但一家公司就簽了。從事目前流行的高檔的消費電子的研發。對于我兩年前一無所知的我,應該有質的變化,我感謝學校收了我這個廢品。當然我也非常的努力。說這么多并不是要炫耀我什么,實際上根本不值得炫耀,雖然現在工作環境和待遇比較滿意,但是,我發現我很差,特別是代碼能力,我希望平常大家少玩游戲,多編程。編程才是硬道理! 3、學習板和培訓 你可以不接受培訓,但是不能不買開發板。如果你想學習嵌入式一定要買塊學習板,最好買塊arm9的,貴些也值??梢耘芨呒壊僮飨到y。這個不要什么品牌公司的,一般不會出什么問題,市場上的板子一般是三星的2410,基本上是抄的。如果是做產品那要注意些。一般的公司一般要2000,加lcd要3000甚至更多。我接觸到有的板只要1200,加lcd也就2000,差別比較大,我認為學習都夠啦。 對于培訓,如果有條件最好參加,主要是嵌入式相對別的不同,自己摸索很費時,如果有高手指點非常的好,進步快。特別是認識做這些的朋友。我接受過培訓,認識個朋友。在以后的工作中幫我很多,在這里謝謝他!我記得哈佛的一個MBA的學生這樣說,大意是:在哈佛學到什么不重要,最重要的是這些未來各大公司的高級管理人員是我的同學!真是有遠見! 目前市場是培訓比較貴,一個星期兩三千,真正算起來也要,那些講師待遇絕對不會低。但是有個致命的問題是連續上課,一連幾天,效果不佳。我希望社會上多出些1000元左右,并且時間長些,如一個月,一周一到兩次課。如果沒人做,我來做,哈哈! 沒有想到,一下寫了這么多,其實還想寫的,比如在中科院的一位老兄是怎樣學習linux內核和看書的,真的很感動。他的為人我很欽佩。也想介紹毛德操的《嵌入式系統》那本書,對學習arm linux的很好,也想介紹實習和工作的東西,太長了,耽誤大家時間。我也不想檢查里面的錯別字了,很多!就寫到這里吧第二篇:報告嵌入式心得
第三篇:學習嵌入式心得
第四篇:學習嵌入式系統心得
第五篇:學習嵌入式的心得