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