第一篇:嵌入式系統(tǒng)學(xué)習(xí)心得
首先我聲明,我是基于嵌入式系統(tǒng)平臺(tái)級(jí)設(shè)計(jì)的,硬件這個(gè)方向我相對(duì)來講比較有發(fā)言權(quán),如果是其它方面所要具備的基本技能還要和我們培訓(xùn)中心其它專業(yè)級(jí)講師溝通。他們的方面上我只能說是知道些,但不是太多,初級(jí)的問題也可以問我。
對(duì)于硬件來講有幾個(gè)方向,就單純信號(hào)來分為數(shù)字和模擬,模擬比較難搞,一般需要很長(zhǎng)的經(jīng)驗(yàn)積累,單單一個(gè)阻值或容值的精度不夠就可能使信號(hào)偏差很大。因此年輕人搞的較少,隨著技術(shù)的發(fā)展,出現(xiàn)了模擬電路數(shù)字化,比如手機(jī)的modem射頻模塊,都采用成熟的套片,而當(dāng)年國(guó)際上只有兩家公司有此技術(shù),自我感覺模擬功能不太強(qiáng)的人,不太適合搞這個(gè),如果真能搞定到手機(jī)的射頻模塊,只要達(dá)到一般程度可能月薪都在15k以上。
另一類就是數(shù)字部分了,在大方向上又可分為51/arm的單片機(jī)類,dsp類,fpga類,國(guó)內(nèi)fpga的工程師大多是在ic設(shè)計(jì)公司從事ip核的前端驗(yàn)證,這部分不搞到門級(jí),前途不太明朗,即使做個(gè)ic前端驗(yàn)證工程師,也要搞上幾年才能勝任。dsp硬件接口比較定型,如果不向驅(qū)動(dòng)或是算法上靠攏,前途也不會(huì)太大。而arm單片機(jī)類的內(nèi)容就較多,業(yè)界產(chǎn)品占用量大,應(yīng)用人群廣,因此就業(yè)空間極大,而硬件設(shè)計(jì)最體現(xiàn)水平和水準(zhǔn)的就是接口設(shè)計(jì)這塊,這是各個(gè)高級(jí)硬件工程師相互pk,判定水平高低的依據(jù)。而接口設(shè)計(jì)這塊最關(guān)鍵的是看時(shí)序,而不是簡(jiǎn)單的連接,比如pxa255處理器i2c要求速度在100kbps,如果把一個(gè)i2c外圍器件,最高還達(dá)不到100kbps的與它相接,必然要導(dǎo)致設(shè)計(jì)的失敗。這樣的情況有很多,比如51單片機(jī)可以在總線接lcd,但為什么這種lcd就不能掛在arm的總線上,還有arm7總線上可以外接個(gè)winband的sd卡控制器,但為什么這種控制器接不到arm9或是xscale處理器上,這些都是問題。因此接口并不是一種簡(jiǎn)單的連接,要看時(shí)序,要看參數(shù)。一個(gè)優(yōu)秀的硬件工程師應(yīng)該能夠在沒有參考方案的前提下設(shè)計(jì)出一個(gè)在成本和性能上更加優(yōu)秀的產(chǎn)品,靠現(xiàn)有的方案,也要進(jìn)行適當(dāng)?shù)目尚行圆眉簦皇呛鷣y的來,我遇到一個(gè)工程師把方案中的5v變1.8v的dc芯片,直接更換成ldo,有時(shí)就會(huì)把cpu燒上幾個(gè)。前幾天還有人希望我?guī)兔Π阉麄円郧盎趐xa255平臺(tái)的手持gps設(shè)備做下程序優(yōu)化,我問了一下情況,地圖是存在sd卡中的,而sd卡與pxa255的mmc控制器間采用的spi接口,因此導(dǎo)致地圖讀取速度十分的慢,這種情況是設(shè)計(jì)中嚴(yán)重的缺陷,而不是程序的問題,因此我提了幾條建議,讓他們更新試下再說。因此想成為一個(gè)優(yōu)秀的工程師,需要對(duì)系統(tǒng)整體性的把握和對(duì)已有電路的理解,換句話說,給你一套電路圖你終究能看明白多少,看不明白80%以上的話,說明你離優(yōu)秀的工程師還差得遠(yuǎn)哪。其次是電路的調(diào)試能力和審圖能力,但最最基本的能力還是原理圖設(shè)計(jì)pcb繪制,邏輯設(shè)計(jì)這塊。這是指的硬件設(shè)計(jì)工程師,從上面的硬件設(shè)計(jì)工程師中還可以分出ecad工程師,就是專業(yè)的畫pcb板的工程師,和emc設(shè)計(jì)工程師,幫人家解決emc的問題。硬件工程師再往上就是板級(jí)測(cè)試工程師,就是c語功底很好的硬件工程師,在電路板調(diào)試過程中能通過自已編寫的測(cè)試程序?qū)τ布δ苓M(jìn)行驗(yàn)證。然后再交給基于操作系統(tǒng)級(jí)的驅(qū)動(dòng)開發(fā)人員。
總之,硬件的內(nèi)容很多很雜,硬件那方面練成了都會(huì)成為一個(gè)高手,我時(shí)常會(huì)給人家做下方案評(píng)估,很多高級(jí)硬件工程師設(shè)計(jì)的東西,經(jīng)常被我一句話否定,因此工程師做到我這種地步,也會(huì)得罪些人,但硬件的確會(huì)有很多不為人知的東西,讓很多高級(jí)硬件工程師也摸不到頭腦。
那么高級(jí)硬件件工程師技術(shù)技能都要具備那些東西哪,首先要掌握eda設(shè)計(jì)的輔助工具類如protelorcadpowperpcbmaplux2ise、vdhl語言,要能用到這些工具畫圖畫板做邏輯設(shè)計(jì),再有就是接口設(shè)計(jì)審圖能力,再者就是調(diào)試能力,如果能走到總體方案設(shè)計(jì)這塊,那就基本上快成為資深工程師了。
硬件是要靠經(jīng)驗(yàn),也要靠積累的,十年磨一劍,百年磨一針。
把一個(gè)月前想寫的東西,今天終于用一上午的進(jìn)間整理完了,希望對(duì)喜愛嵌入式系統(tǒng)開發(fā)的工程師和學(xué)生們有所幫助。
嵌入式系統(tǒng)學(xué)習(xí)心得(2):
這個(gè)題目很大,給人一種感覺我好像很成功,其實(shí)不然。實(shí)際上自己水平不高,甚至很低,但是做過了一些曲折的學(xué)習(xí)道路,同時(shí)把自己真實(shí)的學(xué)習(xí)歷程表達(dá)出來,希望對(duì)后來者有借鑒的意義,甚幸!
工作三年、幾成廢人!
我XX年畢業(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ì)成廢人,只好讓國(guó)家養(yǎng)了。兩年后決定出去,但是幾成廢人,誰要呢,只好到學(xué)校去鍍金。這是中國(guó)教育和社會(huì)的悲哀!
至于專業(yè)就改為計(jì)算機(jī)方面,聽說好找工作,我說實(shí)話不是很對(duì)計(jì)算機(jī)特別感興趣,生存第一需要。不要笑我,哈哈!
考研成績(jī)出來,超過了國(guó)家線幾十分。那個(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)。
第二篇:嵌入式系統(tǒng)學(xué)習(xí)心得
篇一:嵌入式心得體會(huì)
這學(xué)期才接觸嵌入式系統(tǒng)感覺還稱不上入門,我通過學(xué)習(xí)知道了嵌入式的發(fā)展前景很大,各個(gè)領(lǐng)域都用到了嵌入式,學(xué)好嵌入式不愁沒飯吃。
廣義上講,凡是帶有微處理器的專用軟硬件系統(tǒng)都是嵌入式系統(tǒng)。如各類單片機(jī)和dsp系統(tǒng)。從狹義上講,那些使用嵌入式微處理器構(gòu)成獨(dú)立系統(tǒng),具有自己操作系統(tǒng),具有特定功能,用于特定場(chǎng)合的專用軟硬件系統(tǒng)稱為嵌入式系統(tǒng)。嵌入式系統(tǒng)由嵌入式硬件與嵌入式軟件組成;嵌入式硬件以芯片、模板、組件、控制器形式埋藏于設(shè)備內(nèi)部。
理解“嵌入”的概念 主要從三個(gè)方面上來理解。
1、從硬件上,將基于cpu的處圍器件,整合到cpu芯片內(nèi)部,比如早期基于x86體系結(jié)構(gòu)下的計(jì)算機(jī),cpu只是有運(yùn)算器和累加器的功能,一切芯片要造外部橋路來擴(kuò)展實(shí)現(xiàn),象串口之類的都是靠外部的16c550/2的串口控制器芯片實(shí)現(xiàn),而目前的這種串口控制器芯片早已集成到cpu內(nèi)部,還有pc機(jī)有顯卡,而多數(shù)嵌入式處理器都帶有l(wèi)cd控制器,但其種意義上就相當(dāng)于顯卡。比較高端的arm類intel xscale架構(gòu)下的ixp網(wǎng)絡(luò)處理器cpu內(nèi)部集成pci控制器(可配成支持4個(gè)pci從設(shè)備或配成自身為cpi從設(shè)備);還集成3個(gè)npe網(wǎng)絡(luò)處理器引擎,其中兩個(gè)對(duì)應(yīng)于兩個(gè)mac地址,可用于網(wǎng)關(guān)交換用,而另外一個(gè)npe網(wǎng)絡(luò)處理器引擎支持dsl,只要外面再加個(gè)phy芯片即可以實(shí)現(xiàn)dsl上網(wǎng)功能。ixp系列最高主頻可以達(dá)到1.8g,支持2g內(nèi)存,1g×10或10g×1的以太網(wǎng)口或febre channel的光通道。ixp系列應(yīng)該是目標(biāo)基于arm體系統(tǒng)結(jié)構(gòu)下由intel進(jìn)行整合后成xscale內(nèi)核的最高的處理器了。
2、從軟件上前,就是在定制操作系統(tǒng)內(nèi)核里將應(yīng)用一并選入,編譯后將內(nèi)核下載到rom中。而在定制操作系統(tǒng)內(nèi)核時(shí)所選擇的應(yīng)用程序組件就是完成了軟件的“嵌入”,比如wince在內(nèi)核定制時(shí),會(huì)有相應(yīng)選擇,其中就是wordpad,pdf,mediaplay等等選擇,如果我們選擇了,在ce啟動(dòng)后,就可以在界面中找到這些東西,如果是以前pc上將的windows操作系統(tǒng),多半的東西都需要我們得新再裝。
3、把軟件內(nèi)核或應(yīng)用文件系統(tǒng)等東西燒到嵌入式系統(tǒng)硬件平臺(tái)中的rom中就實(shí)現(xiàn)了一個(gè)真正的“嵌入”。
嵌入式系統(tǒng)分為4層,硬件層、驅(qū)動(dòng)層、操作系統(tǒng)層和應(yīng)用層
1、硬件層,是整個(gè)嵌入式系統(tǒng)的根本,如果現(xiàn)在單片機(jī)及接口這塊很熟悉,并且能用c和匯編語言來編程的話,從嵌入式系統(tǒng)的硬件層走起來相對(duì)容易,硬件層也是驅(qū)動(dòng)層的基礎(chǔ),一個(gè)優(yōu)秀的驅(qū)動(dòng)工程師是要能夠看懂硬件的電路圖和自行完成cpld的邏輯設(shè)計(jì)的,同時(shí)還要對(duì)操作系統(tǒng)內(nèi)核及其調(diào)度性相當(dāng)?shù)氖煜さ摹5布脚_(tái)是基礎(chǔ),增值還要靠軟件。硬件層比較適合于,電子、通信、自動(dòng)化、機(jī)電一體、信息工程類專業(yè)的人來搞,需要掌握的專業(yè)基礎(chǔ)知識(shí)有,單片機(jī)原理及接口技術(shù)、微機(jī)原理及接口技術(shù)、c語言。
2、驅(qū)動(dòng)層,這部分比較難,驅(qū)動(dòng)工程師不僅要能看懂電路圖還要能對(duì)操作系統(tǒng)內(nèi)核十分的精通,以便其所寫的驅(qū)動(dòng)程序在系統(tǒng)調(diào)用時(shí),不會(huì)獨(dú)占操作系統(tǒng)時(shí)間片,而導(dǎo)至其它任務(wù)不能動(dòng)行,不懂操作系統(tǒng)內(nèi)核架構(gòu)和實(shí)時(shí)調(diào)度性,沒有良好的驅(qū)動(dòng)編寫風(fēng)格,按大多數(shù)書上所說添加的驅(qū)動(dòng)的方式,很多人都能做到,但可能連個(gè)初級(jí)的驅(qū)動(dòng)工程師的水平都達(dá)不到,這樣所寫的驅(qū)動(dòng)在應(yīng)用調(diào)用時(shí)就如同windows下我們打開一個(gè)程序運(yùn)行后,再打開一個(gè)程序時(shí),要不就是中斷以前的程序,要不就是等上一會(huì)才能運(yùn)行后來打開的程序。想做個(gè)好的驅(qū)動(dòng)人員沒有三、四年功底,操作系統(tǒng)內(nèi)核不研究上幾編,不是太容易成功的,但其工資在嵌入式系統(tǒng)四層中可是最高的。
驅(qū)動(dòng)層比較適合于電子、通信、自動(dòng)化、機(jī)電一體、信息工程類專業(yè)尤其是計(jì)算機(jī)偏體系結(jié)構(gòu)類專業(yè)的人來搞,除硬件層所具備的基礎(chǔ)學(xué)科外,還要對(duì)數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)原理、編譯原理都要十分精通了解。
3、操作系統(tǒng)層,對(duì)于操作系統(tǒng)層目前可能只能說是簡(jiǎn)單的移植,而很少有人來自已寫操
作系統(tǒng),或者寫出缺胳膊少腿的操作系統(tǒng)來,這部分工作大都由驅(qū)動(dòng)工程師來完成。操作系統(tǒng)是負(fù)責(zé)系統(tǒng)任務(wù)的調(diào)試、磁盤和文件的管理,而嵌入式系統(tǒng)的實(shí)時(shí)性十分重要。據(jù)說,xp操作系統(tǒng)是微軟投入300人用兩年時(shí)間才搞定的,總時(shí)工時(shí)是600人年,中科院軟件所自己的女媧hopen操作系統(tǒng)估計(jì)也得花遇幾百人年才能搞定。因此這部分工作相對(duì)來講沒有太大意義。
4、應(yīng)用層,相對(duì)來講較為容易的,如果會(huì)在windows下如何進(jìn)行編程接口函數(shù)調(diào)用,到操作系統(tǒng)下只是編譯和開發(fā)環(huán)境有相應(yīng)的變化而已。如果涉及java方面的編程也是如此的。嵌入式系統(tǒng)中涉及算法的由專業(yè)算法的人來處理的,不必歸結(jié)到嵌入式系統(tǒng)范疇內(nèi)。但如果涉及嵌入式系統(tǒng)下面嵌入式數(shù)據(jù)庫、基于嵌入式系統(tǒng)的網(wǎng)絡(luò)編程和基于某此應(yīng)用層面的協(xié)議應(yīng)用開發(fā)(比如基于sip、h.323、astrisk)方面又較為復(fù)雜,并且有難度了。
通過網(wǎng)上查詢我發(fā)現(xiàn)目前國(guó)內(nèi)外這方面的人都很稀缺。一方面,是因?yàn)檫@一領(lǐng)域入門門檻較高,不僅要懂較底層軟件(例如操作系統(tǒng)級(jí)、驅(qū)動(dòng)程序級(jí)軟件),對(duì)軟件專業(yè)水平要求較高(嵌入式系統(tǒng)對(duì)軟件設(shè)計(jì)的時(shí)間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業(yè)it人員很難切入這一領(lǐng)域;另一方面,是因?yàn)檫@一領(lǐng)域較新,目前發(fā)展太快,很多軟硬件技術(shù)出現(xiàn)時(shí)間不長(zhǎng)或正在出現(xiàn)(如arm處理器、嵌入式操作系統(tǒng)等),掌握這些新技術(shù)的人當(dāng)然很少。嵌入式人才稀缺,身價(jià)自然就高,越有經(jīng)驗(yàn)價(jià)格就越高。其實(shí)嵌入式人才稀少,根本原因可能是大多數(shù)人無條件接觸,這需要相應(yīng)的嵌入式開發(fā)板和軟件,另外需要有經(jīng)驗(yàn)的人進(jìn)行指導(dǎo)開發(fā)流程。我們軟件系的人學(xué)習(xí)嵌入式,顯然應(yīng)偏重于嵌入式軟件,特別是嵌入式操作系統(tǒng)方面。對(duì)于搞嵌入式軟件的人,最重要的技術(shù)顯然是掌握主流嵌入式微處理器的結(jié)構(gòu)與原理,必須掌握一個(gè)嵌入式操作系統(tǒng),必須熟悉嵌入式軟件開發(fā)流程并至少做過一個(gè)嵌入式軟件項(xiàng)目。
然而我們都沒有做過一個(gè)嵌入式軟件項(xiàng)目,甚至連嵌入式的開發(fā)流程我也不清楚,我只了解了使用簡(jiǎn)單工具做一個(gè)簡(jiǎn)單的實(shí)驗(yàn)。只有去專研才能在嵌入式的領(lǐng)域站住腳,只有知道的比別人多才會(huì)更有競(jìng)爭(zhēng)力。通過網(wǎng)上了解,我查詢了嵌入式的入門和所需要的知識(shí),其中c語言尤為重要,不管是做嵌入式軟件還是硬件開發(fā)的人員,對(duì)c語言的掌握這個(gè)是必需的,特別是對(duì)于以后致力于嵌入式軟件開發(fā)的人,現(xiàn)在絕大部分都是用c語言。其次,應(yīng)該對(duì)操作系統(tǒng)有所了解,這對(duì)你對(duì)硬件和軟件的理解,絕對(duì)有很大的幫助。應(yīng)該把系統(tǒng)的管理理解一下,比如進(jìn)程、線程,系統(tǒng)如何來分配資源的,系統(tǒng)如何來管理硬件的;知道了c語言和操作系統(tǒng)之后,再來看看嵌入式系統(tǒng),我們主要學(xué)的是arm,用的是arm7,深入理解arm不是件容易的事,只有在知道arm相關(guān)知識(shí)之后才能稱得上嵌入式已經(jīng)入門了。與嵌入式有關(guān)的知識(shí)我也學(xué)了不少就是不能夠綜合在一起運(yùn)用,組成原理,數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng),c++,這3門與嵌入式密切相關(guān)的學(xué)科都系統(tǒng)的學(xué)了一遍,但由于長(zhǎng)時(shí)間沒用到都有點(diǎn)忘記了,從網(wǎng)上得知嵌入式的學(xué)習(xí)與這些書有很大關(guān)系之后,我把嵌入式與以前學(xué)過的知識(shí)結(jié)合起來發(fā)現(xiàn)嵌入式的實(shí)驗(yàn)中很多都是共通的,我對(duì)嵌入式有了初步的理解。
我以為學(xué)習(xí)嵌入式應(yīng)該分為2個(gè)部分:軟件和硬件。關(guān)于硬件方面我接觸到了數(shù)字電路教材和模擬電路方面的知識(shí),但由于沒有嵌入式cpu很難親自動(dòng)手來實(shí)現(xiàn)嵌入式的相關(guān)理論;嵌入式入門則需要不斷地實(shí)驗(yàn)與分析,我只在實(shí)驗(yàn)課時(shí)做幾個(gè)與所給的程序相關(guān)的小程序來實(shí)現(xiàn)一下;而軟件方面則學(xué)過c語言,里面通常的語法曾今熟悉過;我通過下列方法來適應(yīng)c語言在嵌入式中應(yīng)用:首先重新翻看了下c的教材,看了些常見的語法,接著在編譯器的角度來看待c,編譯原理我剛學(xué)過,其中將高級(jí)語言與低級(jí)語言的翻譯感覺在嵌入式中用到了很多;最后沖硬件的角度來看待c。嵌入式的核心包括嵌入式操作系統(tǒng),嵌入式軟件開發(fā)平臺(tái)及工具以及嵌入式應(yīng)用軟件。這些決定怎樣才能開發(fā)一個(gè)好的嵌入式系統(tǒng)。下面談?wù)勎伊私獾那度胧降南嚓P(guān)知識(shí)與應(yīng)用:
首先,嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),且軟硬件可裁減,適應(yīng)應(yīng)
用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式有如下幾個(gè)突出的有點(diǎn)1.系統(tǒng)內(nèi)核小,2專用性強(qiáng),3系統(tǒng)精簡(jiǎn)4高實(shí)時(shí)性os5嵌入式系統(tǒng)的應(yīng)用程序可以沒有操作系統(tǒng)直接在芯片上運(yùn)行,6嵌入式系統(tǒng)需要開發(fā)工具和環(huán)境。
嵌入式系統(tǒng)是近幾年才風(fēng)靡起來的,但是這個(gè)概念并非新近才出現(xiàn)。從20世紀(jì)七十年代單片機(jī)(最早的單片機(jī)是intel公司的 8048,出現(xiàn)在1976年)的出現(xiàn)到今天各式各樣的嵌入式微處理器,微控制器的大規(guī)模應(yīng)用,嵌入式系統(tǒng)已經(jīng)有了近30年的發(fā)展歷史。經(jīng)過30年的發(fā)展,嵌入式技術(shù)已經(jīng)日趨成熟,在中國(guó)嵌入式機(jī)一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應(yīng)用程序等四個(gè)部分組成,用于實(shí)現(xiàn)對(duì)其他設(shè)備的控制、監(jiān)視或管理等功能。
其次,嵌入式系統(tǒng)無疑是當(dāng)前最熱門最有發(fā)展前途的it應(yīng)用領(lǐng)域之一。嵌入式系統(tǒng)用在一些特定專用設(shè)備上,通常這些設(shè)備的硬件資源(如處理器、存儲(chǔ)器等)非常有限,并且對(duì)成本很敏感,有時(shí)對(duì)實(shí)時(shí)響應(yīng)要求很高等。特別是隨著消費(fèi)家電的智能化,嵌入式更顯重要。嵌入式系統(tǒng)是軟硬結(jié)合的學(xué)科,通常有兩類人會(huì)去專研嵌入式:一類是學(xué)電子工程、通信工程等偏硬件專業(yè)的,另一類是學(xué)軟件、計(jì)算機(jī)專業(yè)出身的人,主要從事嵌入式操作系統(tǒng)和應(yīng)用軟件的開發(fā)。我是軟件專業(yè)的學(xué)習(xí)嵌入式,越是智能設(shè)備越是復(fù)雜系統(tǒng),軟件越起關(guān)鍵作用,而且這是目前的趨勢(shì)。嵌入式應(yīng)用在很多方面,具體的可以分為工業(yè)控制,交通管理,信息家電,家庭智能管理系統(tǒng),pos網(wǎng)絡(luò)及電子商務(wù),環(huán)境工程與自然,機(jī)器人,機(jī)電產(chǎn)品方面應(yīng)用等方面。其中目前在服務(wù)領(lǐng)域,如遠(yuǎn)程點(diǎn)菜器等已經(jīng)體現(xiàn)了嵌入式系統(tǒng)的優(yōu)勢(shì)。例外還有很多地方用到了嵌入式系統(tǒng),最近飛利浦和arm共同推出32位risc嵌入式控制器,適用于工業(yè)控制,采用最先進(jìn)的0.18微米cmos嵌入式閃存處理技術(shù),操作電壓可以低至1.2伏,它還能降低25%到30%的制造成本,在工業(yè)領(lǐng)域中對(duì)最終用戶而言是一套極具成本效益的解決方案。
那么該如何學(xué)好嵌入式我覺得應(yīng)該從以下幾點(diǎn)入手:
首先c語言,這個(gè)是毋庸置疑的,不管是做嵌入式軟件還是硬件開發(fā)的人員,對(duì)c語言的掌握這個(gè)是必需的,特別是對(duì)于以后致力于嵌入式軟件開發(fā)的人,現(xiàn)在絕大部分都是用c語言,你說不掌握它可以嗎?至于如何學(xué)習(xí)c語言,我想這些基礎(chǔ)的知識(shí)每個(gè)人都有自己的方法,關(guān)鍵要去學(xué)習(xí),看書也好,網(wǎng)上找些視頻看也好。很多人會(huì)問,c語言要學(xué)到怎么樣,我覺得這沒有標(biāo)準(zhǔn)的答案。我想至少你在明白了一些基礎(chǔ)的概念后,就該寫代碼了,動(dòng)手才是最重要的,當(dāng)你動(dòng)手了,遇到問題了,再反過來學(xué)習(xí),反過來查查課本,那時(shí)的收獲就不是你死看書能得到的。
其次,應(yīng)該對(duì)操作系統(tǒng)有所了解,這對(duì)你對(duì)硬件和軟件的理解,絕對(duì)有很大的幫助。應(yīng)該把系統(tǒng)的管理理解一下,比如進(jìn)程、線程,系統(tǒng)如何來分配資源的,系統(tǒng)如何來管理硬件的,當(dāng)然,不是看書就能把這些理解透,如果不是一時(shí)能理解,沒關(guān)系,多看看,結(jié)合以后的項(xiàng)目經(jīng)驗(yàn),會(huì)有更好的理解的。
還有應(yīng)該學(xué)習(xí)下linux或者wince下的編程,這些對(duì)以后做應(yīng)用的編程很有幫助,當(dāng)然,如果做手機(jī)的話,那可以學(xué)習(xí)mtk、塞班、android等操作系統(tǒng),android是以后發(fā)展的趨勢(shì),現(xiàn)在很熱門,android也是基于linux系統(tǒng)封裝的,所以建議先學(xué)習(xí)下linux。
還有,應(yīng)該學(xué)習(xí)下單片機(jī)或者arm或者mips,很多人說我沒有單片機(jī)的經(jīng)驗(yàn),直接學(xué)arm可以嗎?我覺得那完全沒有問題的,當(dāng)然如果你學(xué)習(xí)過單片機(jī),那最好不過了,以后學(xué)習(xí)arm就更簡(jiǎn)單了。
最后如果你把以上的知識(shí)都有所了解后,就該去閱讀閱讀一些優(yōu)秀的代碼,比如結(jié)合arm芯片手冊(cè)學(xué)習(xí)去學(xué)習(xí)下uboot的源代碼,了解下最小的系統(tǒng)開發(fā),那對(duì)你整個(gè)嵌入式開發(fā)的非常有幫助的,可以的話,還可以學(xué)習(xí)下linux的源代碼,當(dāng)然如果你直接閱讀2.6的代碼,我想你會(huì)很痛苦的,可以先看看linux 代碼早期的版本,比如0.12 的代碼等等,麻雀雖
小,五臟俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程師。
以上就是我在本學(xué)期學(xué)習(xí)嵌入式后的心得及感想。篇二:嵌入式學(xué)習(xí)總結(jié)
一.為什么學(xué)習(xí)嵌入式?
1.就業(yè)前景
近幾年,嵌入式系統(tǒng)產(chǎn)品日臻完善,并在全世界各行業(yè)得到廣泛應(yīng)用。嵌入式系統(tǒng)產(chǎn)品的研制和應(yīng)用已經(jīng)成為我國(guó)信息化帶動(dòng)工業(yè)化、工業(yè)化促進(jìn)信息化發(fā)展的新的國(guó)民經(jīng)濟(jì)增長(zhǎng)點(diǎn)。
隨著消費(fèi)家電的智能化,嵌入式更顯重要。像我們平常見到的手機(jī)、pda、電子字典、可視電話、vcd/dvd/mp3player、數(shù)字相機(jī)(dc)、數(shù)字?jǐn)z像機(jī)(dv)、u-disk、機(jī)頂盒(set top box)、高清電視(hdtv)、游戲機(jī)、智能玩具、交換機(jī)、路由器、數(shù)控設(shè)備或儀表、汽車電子、家電控制系統(tǒng)、醫(yī)療儀器、航天航空設(shè)備等等,都是典型的嵌入式系統(tǒng)。據(jù)預(yù)測(cè),隨著internet的迅速發(fā)展和廉價(jià)微處理器的出現(xiàn),嵌入式系統(tǒng)將在日常生活里形成更大的應(yīng)用領(lǐng)域。
在中國(guó),嵌入式軟件發(fā)展過程中,政府已充分認(rèn)識(shí)到它的重要作用,并在政策、資金等方面給予了大力支持。2004 年國(guó)家發(fā)改委、科技部、商務(wù)部聯(lián)合頒布的《當(dāng)前優(yōu)先發(fā)展的高技術(shù)產(chǎn)業(yè)化重點(diǎn)領(lǐng)域指南》,把嵌入式軟件產(chǎn)業(yè)作為國(guó)家發(fā)展的一個(gè)重要領(lǐng)域。
最近幾年來,中國(guó)的嵌入式軟件發(fā)展速度一直高于中國(guó)軟件產(chǎn)業(yè)的發(fā)展速度和全球嵌入式軟件的發(fā)展速度,在中國(guó)軟件產(chǎn)業(yè)和全球嵌入式軟件產(chǎn)業(yè)中所占的比重越來越大。目前,中國(guó)嵌入式軟件產(chǎn)業(yè)在整個(gè)軟件產(chǎn)業(yè)中的比重已經(jīng)超過了三分之一強(qiáng)。從2006年至2010年,中國(guó)嵌入式軟件產(chǎn)業(yè)規(guī)模仍將保持快速增長(zhǎng)態(tài)勢(shì),年均復(fù)合增長(zhǎng)率為25.8%,到2010年將達(dá)到3339.6億元的規(guī)模。
中國(guó)嵌入式軟件產(chǎn)業(yè)的發(fā)展面臨著良好的發(fā)展環(huán)境與機(jī)遇,這包括政府的重視與扶植、信息產(chǎn)業(yè)與傳統(tǒng)產(chǎn)業(yè)的融合機(jī)遇、壟斷局面尚未形成、中國(guó)制造的良好基礎(chǔ)、自由軟件運(yùn)動(dòng)的興起等等。
同時(shí),不可否認(rèn)的是長(zhǎng)期以來,由于人才、宣傳、資金等諸多問題以及嵌入式本身所特有的軟硬結(jié)合特性,使嵌入式軟件人才一直處于供不應(yīng)求的狀態(tài)。
2.自身發(fā)展
嵌入式系統(tǒng)是軟硬結(jié)合的東西,搞嵌入式開發(fā)的人有兩類。
一類是學(xué)電子工程、通信工程等偏硬件專業(yè)出身的人,他們主要是搞硬件設(shè)計(jì),有時(shí)要開發(fā)一些與硬件關(guān)系最密切的最底層軟件,如bootloader、board support package(像pc的bios一樣,往下驅(qū)動(dòng)硬件,往上支持操作系統(tǒng)),最初級(jí)的硬件驅(qū)動(dòng)程序等。他們的優(yōu)勢(shì)是對(duì)硬件原理非常清楚,不足是他們更擅長(zhǎng)定義各種硬件接口,但對(duì)復(fù)雜軟件系統(tǒng)往往力不從心(例如嵌入式操作系統(tǒng)原理和復(fù)雜應(yīng)用軟件等)。
另一類是學(xué)軟件、計(jì)算機(jī)專業(yè)出身的人,主要從事嵌入式操作系統(tǒng)和應(yīng)用軟件的開發(fā)。如果我們學(xué)軟件的人對(duì)硬件原理和接口有較好的掌握,我們完全也可寫bsp和硬件驅(qū)動(dòng)程序。嵌入式硬件設(shè)計(jì)完后,各種功能就全靠軟件來實(shí)現(xiàn)了,嵌入式設(shè)備的增值很大程度上取決于嵌入式軟件,這占了嵌入式系統(tǒng)的最主要工作(目前有很多公司將硬件設(shè)計(jì)包給了專門的硬件公司,稍復(fù)雜的硬件都交給臺(tái)灣或國(guó)外公司設(shè)計(jì),國(guó)內(nèi)的硬件設(shè)計(jì)力量很弱,很多嵌入式公司自己只負(fù)責(zé)
開發(fā)軟件,因?yàn)楣径贾溃度胧疆a(chǎn)品的差異很大程度在軟件上,在軟件方面是最有“花頭“可做的),所以我們搞軟件的人完全不用擔(dān)心我們?cè)谇度胧绞袌?chǎng)上的用武之地,越是智能設(shè)備越是復(fù)雜系統(tǒng),軟件越起關(guān)鍵作用,而且這是目前的趨勢(shì)。
二.怎樣學(xué)習(xí)嵌入式?
1.arm嵌入式開發(fā)領(lǐng)域
包括什么?
軟件開發(fā)
操作系統(tǒng)以下的底層偏硬件驅(qū)動(dòng)
在簡(jiǎn)單操作系統(tǒng)如uc/os-ii之上的程序開發(fā)
不包括什么?
硬件設(shè)計(jì)
類似linux這樣操作系統(tǒng)以上的純應(yīng)用開發(fā)
2.arm基礎(chǔ)知識(shí)
#1.arm體系結(jié)構(gòu):
load/store體系,big/little endian大小端格式,risc/cisc指令集,pipeline流水線
#2.arm工作模式: 7種工作模式:usr,sys,svc,irq,fiq,und,abt;其中5種異常模式 #3.arm寄存器:
37個(gè)寄存器:r0-r12, r13(sp),r14(lr),r15(pc),cpsr(spsr)#4.arm異常: 7種異常,異常向量表,異常優(yōu)先級(jí),異常處理程序,處理器現(xiàn)場(chǎng),現(xiàn)場(chǎng)的保存和恢復(fù)
#5.amba總線: ahb(高性能總線),asb(系統(tǒng)總線),apb(外設(shè)總線)#6.arm內(nèi)核技術(shù): trustzone,jazelle,neon,thumb-2,simd,mmu,mpu #7.jtag標(biāo)準(zhǔn): ieee1149.1,tdi,tdo,tck,tms,trst,邊界掃描鏈,h-jtag,banyan,giveio #8.arm內(nèi)核分類: arm7tdmi,arm926,strongarm/xscale,arm10,arm11,cortex-(a/r/m),securcore #9.arm匯編指令: mov,add,sub,b,bl,ldr,str,ldmfd,stmfd,mrs,msr,swi,mrc,mcr #10.mmu內(nèi)存管理單元: va/pa,i-cache/d-cache,write buffer,context switch,cp15,tlb,ap,domain access control,cache coherence #11.arm芯片外設(shè)控制器:
memory controller(內(nèi)存控制器),watchdog(看門狗),gpio(通用io),uart(串口),timer(定時(shí)器),interrupt controller(中斷控制器),nand flash controller,clock & power management(時(shí)鐘和電源管理),dma(直接存儲(chǔ)訪問),usb controller,lcd controller,adc,iic,iis,spi,ac97,camera,mmc/sd #12.最小系統(tǒng):
處理器,時(shí)鐘,電源,pll鎖相環(huán),存儲(chǔ)器,通訊端口,外設(shè)接口
存儲(chǔ)器件
sram,sdram,nor flash,nand flash #13.arm處理器: samsung: s3c4510,s3c44b0,s3c2410,s3c2440,s3c6410,#14.soc設(shè)計(jì): fpga,cpld,vhdl,verilog #15.arm開發(fā)調(diào)試工具: sdt,ads1.2,axd,realview,keil mdk 4.11(rvmdk4.11)#16.arm命令行工具: armcc,armasm,armlink,fromelf #17.嵌入式操作系統(tǒng): vxworks,rtlinux,uc/os-ii,wince/wm #18.外設(shè)驅(qū)動(dòng)程序: volatile關(guān)鍵字,位操作bit,時(shí)序圖timing,管腳功能pin function,外設(shè)控制/數(shù)據(jù)/狀態(tài)寄存器
#19.程序的存儲(chǔ),加載和運(yùn)行: ro段,rw段,zi段,ro-base/rw-base,棧空間,堆空間,位置無關(guān)代碼pic,啟動(dòng)搬移代碼
3.核心概念
#1.寄存器:
arm內(nèi)核寄存器
r0-r12 r13(sp)r14(lr)r15(pc)cpsr, spsr arm soc 特殊功能寄存器
sfr(special function register)#2.地址
c程序中變量的“地址” :&a soc 特殊功能寄存器的“地址” :0x48000000 尋址方式里面的“地址” :ldr r0, [r1] 二進(jìn)制指令里面的“地址” :0xe59ff018 存儲(chǔ)芯片內(nèi)部的“地址” :0x4h 操作系統(tǒng)之上應(yīng)用程序的“(虛)地址”
cpld器件對(duì)應(yīng)的“(假)地址”
#3.異常和中斷
異常是屬于arm內(nèi)核體系結(jié)構(gòu)的概念
中斷是屬于arm soc處理器的概念
了解軟件中斷(swi)是實(shí)現(xiàn)操作系統(tǒng)提供系統(tǒng)調(diào)用的重要手段
了解硬件中斷(例如timer定時(shí)器)是實(shí)現(xiàn)操作系統(tǒng)時(shí)間片的重要手段
三.三個(gè)問題。
#1.為什么要編寫一個(gè)bootloader?
從根本上掌握一個(gè)嵌入式開發(fā)板底層的軟硬件系統(tǒng)是怎樣運(yùn)轉(zhuǎn)起來的
時(shí)鐘頻率如何設(shè)置;看門狗所起作用,串口如何工作;通訊協(xié)議如何實(shí)現(xiàn);庫函數(shù);反匯編;函數(shù)棧空間。
#2.為什么要移植一個(gè)操作系統(tǒng)?
了解操作系統(tǒng)和底層硬件之間的依賴關(guān)系,知道哪些是移植相關(guān)的部分(即接口)定時(shí)器中斷(時(shí)鐘節(jié)拍);異常處理和現(xiàn)場(chǎng)保存恢復(fù);進(jìn)程,進(jìn)程控制塊;處理器現(xiàn)場(chǎng);進(jìn)程的上下文切換;中斷級(jí)別的進(jìn)程切換。
#3.為什么要實(shí)現(xiàn)一個(gè)用戶應(yīng)用?
一個(gè)音頻播放器;dma控制器,interrupt中斷控制器;iis 總線;uda1341聲卡芯片驅(qū)動(dòng);wav/mp3 音頻文件格式;lcd液晶顯示驅(qū)動(dòng);一個(gè)u盤;usb協(xié)議;fat文件系統(tǒng)格式;scsi命令集;nandflash存儲(chǔ)芯片驅(qū)動(dòng)。
四.經(jīng)典語段
經(jīng)典語段一:
嵌入式技術(shù)的掌握是需要一個(gè)過程的
實(shí)事求是的說,嵌入式技術(shù)的全面掌握是有相當(dāng)難度的。可以輕輕松松學(xué)會(huì)嵌入式技術(shù)的說法是夸大其詞了。這個(gè)就像學(xué)英語一樣,學(xué)英語無論怎樣學(xué),不管是“瘋狂學(xué)”還是用新理念來學(xué),真正掌握的話還是需要一步步積累才能熟練掌握。在此,我建議大家不要想在幾天內(nèi)學(xué)會(huì)嵌入式,成為這方面的高手。這些想法本身是不太現(xiàn)實(shí)的。
現(xiàn)在我們需要做的是:
第一:把心踏實(shí)下來,做好打硬仗的準(zhǔn)備。
第二:注意學(xué)習(xí)方法。盡量不要走彎路,爭(zhēng)取一鼓作氣入門。一旦入門了以后呢就好辦了。嵌入式技術(shù)的掌握,本身呢就比較難,要是再走些彎路,時(shí)間上會(huì)浪費(fèi),甚至?xí)绊憣W(xué)習(xí)的信心。
經(jīng)典語段二:
最好的學(xué)習(xí)方法:
做項(xiàng)目。如果有機(jī)會(huì)大家跟著做一個(gè)難度適中的嵌入式項(xiàng)目,相信大家會(huì)很快入
門的。也就是說從實(shí)戰(zhàn)之中來獲得進(jìn)步。但是,在我們沒有嵌入式基礎(chǔ)之前,不容易獲得這樣的機(jī)會(huì)。也就是說,在能力沒有到之前,找個(gè)這樣的工作很難。很顯然呢,如果我們具備了獲得這樣一份工作的能力就好辦了。但是,恰恰是這個(gè)階段最難。這個(gè)就是搞嵌入式系統(tǒng)的門檻。這個(gè)門檻的跨越,我覺得是需要引導(dǎo)的。
比如有的人買了塊開發(fā)板自學(xué),上來就分析linux源碼,結(jié)果折騰了幾個(gè)月呢都沒有什么收獲。有的人只是掩飾了幾個(gè)基本的功能,放了個(gè)mp3,玩了下如何來瀏覽網(wǎng)頁,下不就不知道該怎么做了。實(shí)際上呢,學(xué)習(xí)一門技術(shù)是需要一個(gè)過程的,期間也會(huì)有一定的規(guī)律。我們具體來看。
五.學(xué)習(xí)心得
#1.嵌入式系統(tǒng)的范圍很廣,指具有計(jì)算能力的非pc系統(tǒng),即具有通常使用的個(gè)人電腦的全部或部分特質(zhì)的專用計(jì)算機(jī)系統(tǒng)。如生活中的pda、手機(jī)、電視機(jī)頂盒、數(shù)字電視、數(shù)碼相機(jī)以及工業(yè)自動(dòng)化儀表、醫(yī)療儀器等。它分硬件和軟件兩部分,硬件以嵌入式處理器(相當(dāng)于pc的cpu)為核心,外擴(kuò)rom、ram(相當(dāng)于pc的硬盤、內(nèi)存條)、輸入/輸出設(shè)備(pc的鍵盤/顯示器)、各種通信接口(串口、usb、網(wǎng)絡(luò))等。軟件由引導(dǎo)程序(pc的bios)、嵌入式操作系統(tǒng)(相當(dāng)于pc機(jī)的windows xp)和應(yīng)用程序(相當(dāng)于在windows xp上運(yùn)行的程序,如金山詞霸、word等)3部分組成,或只有其中的某部分。
#2.目標(biāo)要明確,不要得過且過,不要追逐熱門的東西。不管在什么時(shí)候,心里都要有自己的信念和理想,不要被其他東西左右了自己。
#3要從興趣和競(jìng)爭(zhēng)出發(fā),因?yàn)檫@才是你產(chǎn)生動(dòng)力源的地方。學(xué)東西時(shí),要讓自己先喜歡上它,要學(xué)會(huì)享受學(xué)習(xí)它的時(shí)間,喜歡喬***的都知道,喬老爺子最常說的一句就是要享受比賽的時(shí)間。因?yàn)橹挥心阆矚g上了它,享受了它,才不會(huì)被它所產(chǎn)生的壓力壓倒自己,不要產(chǎn)生一種厭惡的心理。而且心態(tài)要調(diào)整,不要一味的蠻學(xué),死學(xué),在沒有什么興趣學(xué)的時(shí)候可以先玩幾天,在回過頭來,或者用其他的方式來轉(zhuǎn)換。
#4要抱著一種十年方能磨一劍的心理,扎扎實(shí)實(shí)從基礎(chǔ)開始,不要為高速開發(fā)的一些現(xiàn)象所迷惑,那些都只是軟件的功勞。我個(gè)人認(rèn)為搞編程,英語和數(shù)學(xué)很重要,大家一定要時(shí)時(shí)的抓,至于怎么抓那就是另外一回事了,當(dāng)然其他的知識(shí)也要汲取,可以多接觸點(diǎn)天文,地理,人文方面的東西來補(bǔ)充自己。篇三:學(xué)習(xí)嵌入式系統(tǒng)感言
個(gè)人覺得培訓(xùn)學(xué)校都是差不多,所學(xué)的內(nèi)容都是一樣的。您不妨自己找?guī)讉€(gè)學(xué)校的課程對(duì)比下,你就知道大同小異了,培訓(xùn)主要就是c、linux和arm課程。
我原來也想去培訓(xùn),可是家里條件不允許,我沒有那么多錢,后來我只好自學(xué)了,不懂的就上論壇問,我自己學(xué)了四個(gè)月,差不多也入門了,現(xiàn)在也是在做嵌入式開發(fā)。想想我自己走過的路,其實(shí)我發(fā)現(xiàn),其實(shí)嵌入式并沒有想象的難,關(guān)鍵是要花時(shí)間去學(xué),要堅(jiān)持幾個(gè)月就可以了。
如果樓主還有時(shí)間,不妨自己學(xué)下。實(shí)在覺得困難的話再去培訓(xùn)吧。當(dāng)然,樓主如果家里經(jīng)濟(jì)不錯(cuò)的話,也可以去培訓(xùn)吧。但是如果真的下決心要學(xué)的話,其實(shí)可以去找找自學(xué)的方法。
我把我前階段看到的一篇一個(gè)專科生如何自學(xué)嵌入式,里面有介紹了他的學(xué)習(xí)方法和學(xué)習(xí)過程的文章,給樓主看看,希望對(duì)你有幫助。
專科生學(xué)嵌入式到找到工作的前前后后--學(xué)習(xí)的榜樣
退學(xué)后我也迷茫,大專都沒有畢業(yè),我真的不知道我能干什么,我在糾結(jié)著我能做什么。所以輟學(xué)后我一段時(shí)間,我想去找工作,因?yàn)槲冶容^沉默寡言,不是很會(huì)說話,我不適合去應(yīng)聘做業(yè)務(wù)。我想應(yīng)聘做技術(shù)的,可是處處碰壁。
一次偶然的機(jī)會(huì),我才聽到嵌入式這個(gè)行業(yè)。那天我去新華書店,在計(jì)算機(jī)分類那邊想找本書學(xué)習(xí)。后來有個(gè)女孩子走過來,問我是不是讀計(jì)算機(jī)的,有沒有興趣學(xué)習(xí)嵌入式,然后給我介紹了一下嵌入式現(xiàn)在的火熱情況,告訴我學(xué)嵌入式多么的有前景,給我了一份傳單,嵌入式培訓(xùn)的廣告。聽了她的介紹,我心里癢癢的,確實(shí)我很想去學(xué)會(huì)一門自己的技術(shù),靠自己的雙手吃飯。
回家后,我就上網(wǎng)查了下嵌入式,確實(shí)是當(dāng)今比較熱門的行業(yè),也是比較好找工作的,工資也是相對(duì)比較高。我就下決心想學(xué)嵌入式了。于是我去找嵌入式培訓(xùn)的相關(guān)信息,說真的,我也很迷茫,我不知道培訓(xùn)是否真的能像他們宣傳的那樣好,所以我就想了解一段時(shí)間再做打算。
后來,我在百度知道看到一篇讓我很鼓舞的文章《如何學(xué)習(xí)嵌入式》,是一個(gè)嵌入式高手介紹沒有基礎(chǔ)的朋友怎么自學(xué)入門學(xué)嵌入式,文章寫的很好,包含了如何學(xué)習(xí),該怎么學(xué)習(xí)。他提到一個(gè)方法就是看視頻,因?yàn)榭磿鴮?shí)在太枯燥和費(fèi)解的,很多我們也看不懂。這點(diǎn)我真的很認(rèn)同,我自己看書往往看不了幾頁。
我在想,為什么別人都能自學(xué)成才,我也可以的!我要相信自己,所以我就想自學(xué),如果實(shí)在學(xué)不會(huì)我再去培訓(xùn)。主意一定,我就去搜索嵌入式的視頻,雖然零星找到一些嵌入式的視頻,但是都不系統(tǒng),我是想找一個(gè)能夠告訴我該怎么學(xué)的視頻,一套從入門到精通的視頻,一個(gè)比較完整的資料,最好能有老師教,不懂可以請(qǐng)教的。
下面介紹下我的學(xué)習(xí)流程,希望對(duì)和我一樣完全沒有基礎(chǔ)的朋友有所幫助。
收到他們寄過來的光盤后,我就開始學(xué)習(xí)了,由于我沒有什么基礎(chǔ),我就從最簡(jiǎn)單的c語言視頻教程學(xué)起,話說簡(jiǎn)單,其實(shí)我還是很多不懂的,我只好請(qǐng)教他們,他們還是很熱心的,都幫我解決了。c語言我差不多學(xué)了一個(gè)禮拜,接下來我就學(xué)了linux的基本命令,我在他們提供linux虛擬機(jī)上都有做練習(xí),敲linux的基本命令,寫簡(jiǎn)單的c語言代碼,差不多也就三個(gè)禮拜。我每天都在不停的寫一些簡(jiǎn)單的代碼,這樣一月后我基本掌握了c和linux的基本操作。
接下來我就去學(xué)習(xí)了人家的視頻的培訓(xùn)教程,是整套的,和去參加培訓(xùn)沒有多大的區(qū)別,這一看就是兩個(gè)月,學(xué)習(xí)了arm的基本原理,學(xué)習(xí)嵌入式系統(tǒng)的概念,也掌握了嵌入式的環(huán)境的一些搭建,對(duì)linux也有更深層次的理解了,明白了嵌入式應(yīng)用到底是怎么做的,但是驅(qū)動(dòng)我只是有一點(diǎn)點(diǎn)的了解,這個(gè)相對(duì)難一點(diǎn),我想以后再慢慢啃。
這兩個(gè)月,除了吃飯睡覺,我?guī)缀醵荚趯W(xué)習(xí)。因?yàn)槲抑缼缀鯖]有基礎(chǔ),比別人差勁,我只能堅(jiān)持努力著,我不能放棄,我必要要靠自己來養(yǎng)活自己,必須學(xué)好這門技術(shù),同時(shí)我不懂的就問,這里真的很感謝他們的技術(shù)客服對(duì)我的任何問題都是耐心的解答,每天都我?guī)缀醵加泻脦讉€(gè)問題問他們,然后我就把不懂的問題總結(jié)記下來,這樣慢慢積累了一段時(shí)間,我發(fā)現(xiàn)自己真的有點(diǎn)入門了。
最后的一個(gè)月,我就去看關(guān)于實(shí)踐部分的內(nèi)容,了解嵌入式項(xiàng)目具體的開發(fā)流程,需要什么樣的知識(shí),我就開始準(zhǔn)備這方面的知識(shí),也就是學(xué)習(xí)這方面的視頻,同時(shí)他們建議我去找了找一些嵌入式面試的題目,為自己以后找工作做準(zhǔn)備。我就到網(wǎng)上找了很多嵌入式的題目,把他們理解的記下來,這樣差不多準(zhǔn)備了20天左右
我覺得自己差不多入門了,會(huì)做一些簡(jiǎn)單的東西了。我就想去找工作看看,于是我就到51job瘋狂的投簡(jiǎn)歷,因?yàn)槲覍W(xué)歷的問題,專科沒有畢業(yè),說真的,大公司沒有人會(huì)要我,所以我投的都是民營(yíng)的小公司,我希望自己的努力有所回報(bào)。沒有想過幾天過后,就有面試了,但是第一次面試我失敗了,雖然我自認(rèn)為筆試很好,因?yàn)槲抑白隽藴?zhǔn)備,但是他們的要求比較嚴(yán)格,需要有一年的項(xiàng)目經(jīng)驗(yàn),所以我沒有被選中。
把本文寫出來,希望能讓和我一樣的沒有基礎(chǔ)的朋友有信心,其實(shí)我們沒有必要自卑,我們不比別人笨,只要我們肯努力,我們一樣會(huì)成功。
在大學(xué)生如則的身上,我們看到了一種精神,就是對(duì)認(rèn)準(zhǔn)的事情,不管多困難,多曲折,都不放棄,而且要堅(jiān)定地、執(zhí)著地做下去。這是在許多成功者身上我們看到的共同的東西。搞發(fā)明創(chuàng)造是寂寞的、艱苦的,但當(dāng)一個(gè)人將它視作自己的事業(yè)和理想,它就是快樂的、充實(shí)的,堅(jiān)持下去,必將看到成功的果實(shí),世界上的許多事情亦是同理。(完)篇四:學(xué)習(xí)嵌入式心得
實(shí)驗(yàn)報(bào)告書
課程名: 《嵌入式系統(tǒng)及應(yīng)用》 題 目: 學(xué)習(xí)嵌入式心得
班 級(jí):
姓 名:
學(xué) 號(hào):
這學(xué)期才接觸嵌入式系統(tǒng)學(xué)了8周了感覺還稱不上入門,我通過了解知道了嵌入式的發(fā)展前景很大,各個(gè)領(lǐng)域都用到了嵌入式,學(xué)好嵌入式不愁沒飯吃。
廣義上講,凡是帶有微處理器的專用軟硬件系統(tǒng)都是嵌入式系統(tǒng)。如各類單片機(jī)和dsp系統(tǒng)。從狹義上講,那些使用嵌入式微處理器構(gòu)成獨(dú)立系統(tǒng),具有自己操作系統(tǒng),具有特定功能,用于特定場(chǎng)合的專用軟硬件系統(tǒng)稱為嵌入式系統(tǒng)。嵌入式系統(tǒng)由嵌入式硬件與嵌入式軟件組成;嵌入式硬件以芯片、模板、組件、控制器形式埋藏于設(shè)備內(nèi)部。
大體的嵌入式可以用下圖來表示:
通過網(wǎng)上查詢我發(fā)現(xiàn)目前國(guó)內(nèi)外這方面的人都很稀缺。一方面,是因?yàn)檫@一領(lǐng)域入門門檻較高,不僅要懂較底層軟件(例如操作系統(tǒng)級(jí)、驅(qū)動(dòng)程序級(jí)軟件),對(duì)軟件專業(yè)水平要求較高(嵌入式系統(tǒng)對(duì)軟件設(shè)計(jì)的時(shí)間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業(yè)it人員很難切入這一領(lǐng)域;另一方面,是因?yàn)檫@一領(lǐng)域較新,目前發(fā)展太快,很多軟硬件技術(shù)出現(xiàn)時(shí)間不長(zhǎng)或正在出現(xiàn)(如arm處理器、嵌入式操作系統(tǒng)等),掌握這些新技術(shù)的人當(dāng)然很少。嵌入式人才稀缺,身價(jià)自然就高,越有經(jīng)驗(yàn)價(jià)格就越高。其實(shí)嵌入式人才稀少,根本原因可能是大多數(shù)人無條件接觸,這需要相應(yīng)的嵌入式開發(fā)板和軟件,另外需要有經(jīng)驗(yàn)的人進(jìn)行指導(dǎo)開發(fā)流程。我們軟件系的人學(xué)習(xí)嵌入式,顯然應(yīng)偏重于嵌入式軟件,特別是嵌入式操作系統(tǒng)方面。對(duì)于搞嵌入式軟件的人,最重要的技術(shù)顯然是掌握主流嵌入式微處理器的結(jié)構(gòu)與原理,必須掌握一個(gè)嵌入式操作系統(tǒng),必須熟悉嵌入式軟件開發(fā)流程并至少做過一個(gè)嵌入式軟件項(xiàng)目。
然而我們都沒有做過一個(gè)嵌入式軟件項(xiàng)目,甚至連嵌入式的開發(fā)流程我也不清楚,我只了解了使用簡(jiǎn)單工具做一個(gè)簡(jiǎn)單的實(shí)驗(yàn)。只有去專研才能在嵌入式的領(lǐng)域站住腳,只有知道的比別人多才會(huì)更有競(jìng)爭(zhēng)力。通過網(wǎng)上了解,我查詢了嵌入式的入門和所需要的知識(shí),其中c語言尤為重要,不管是做嵌入式軟件還是硬件開發(fā)的人員,對(duì)c語言的掌握這個(gè)是必需的,特別是對(duì)于以后致力于嵌入式軟件開發(fā)的人,現(xiàn)在絕大部分都是用c語言。其次,應(yīng)該對(duì)操作系統(tǒng)有所
了解,這對(duì)你對(duì)硬件和軟件的理解,絕對(duì)有很大的幫助。應(yīng)該把系統(tǒng)的管理理解一下,比如進(jìn)程、線程,系統(tǒng)如何來分配資源的,系統(tǒng)如何來管理硬件的;知道了c語言和操作系統(tǒng)之后,再來看看嵌入式系統(tǒng),我們主要學(xué)的是arm,用的是arm7,深入理解arm不是件容易的事,只有在知道arm相關(guān)知識(shí)之后才能稱得上嵌入式已經(jīng)入門了。
與嵌入式有關(guān)的知識(shí)我也學(xué)了不少就是不能夠綜合在一起運(yùn)用,組成原理,數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng),c++,這3門與嵌入式密切相關(guān)的學(xué)科都系統(tǒng)的學(xué)了一遍,但由于長(zhǎng)時(shí)間沒用到都有點(diǎn)忘記了,從網(wǎng)上得知嵌入式的學(xué)習(xí)與這些書有很大關(guān)系之后,我把嵌入式與以前學(xué)過的知識(shí)結(jié)合起來發(fā)現(xiàn)嵌入式的實(shí)驗(yàn)中很多都是共通的,我對(duì)嵌入式有了初步的理解。我們這學(xué)期的嵌入式課本名為《嵌入式系統(tǒng)開發(fā)與應(yīng)用教材》由北京航空航天大學(xué)出版社出版,其中講到了嵌入式系統(tǒng)的開發(fā)基礎(chǔ),arm相關(guān)技術(shù)以及基于arm的嵌入式軟件開發(fā)基礎(chǔ),還提到了基于s3c44b0x嵌入式系統(tǒng)應(yīng)用開發(fā)實(shí)例,這些書上都提到但卻不是很全,并沒有叫我們?cè)趺慈W(xué)好嵌入式系統(tǒng)相關(guān)開發(fā)實(shí)例或過程。
我以為學(xué)習(xí)嵌入式應(yīng)該分為2個(gè)部分:軟件和硬件。關(guān)于硬件方面我接觸到了數(shù)字電路教材和模擬電路方面的知識(shí),但由于沒有嵌入式cpu很難親自動(dòng)手來實(shí)現(xiàn)嵌入式的相關(guān)理論;嵌入式入門則需要不斷地實(shí)驗(yàn)與分析,我只在實(shí)驗(yàn)課時(shí)做幾個(gè)與所給的程序相關(guān)的小程序來實(shí)現(xiàn)一下;而軟件方面則學(xué)過c語言,里面通常的語法曾今熟悉過;我通過下列方法來適應(yīng)c語言在嵌入式中應(yīng)用:首先重新翻看了下c的教材,看了些常見的語法,接著在編譯器的角度來看待c,編譯原理我剛學(xué)過,其中將高級(jí)語言與低級(jí)語言的翻譯感覺在嵌入式中用到了很多;最后沖硬件的角度來看待c。嵌入式的核心包括嵌入式操作系統(tǒng),嵌入式軟件開發(fā)平臺(tái)及工具以及嵌入式應(yīng)用軟件。這些決定怎樣才能開發(fā)一個(gè)好的嵌入式系統(tǒng)。
我們上課學(xué)的都是怎么樣調(diào)試嵌入式系統(tǒng)可以通過下面的圖來演示:
下面談?wù)勎伊私獾那度胧降南嚓P(guān)知識(shí)與應(yīng)用:
首先,嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),且軟硬件可裁減,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式有如下幾個(gè)突出的有點(diǎn)1.系統(tǒng)內(nèi)核小,2專用性強(qiáng),3系統(tǒng)精簡(jiǎn)4高實(shí)時(shí)性os5嵌入式系統(tǒng)的應(yīng)用程序可以沒有操作系統(tǒng)直接在芯片上運(yùn)行,6嵌入式系統(tǒng)需要開發(fā)工具和環(huán)境。
嵌入式系統(tǒng)是近幾年才風(fēng)靡起來的,但是這個(gè)概念并非新近才出現(xiàn)。從20世紀(jì)七十年代單片機(jī)(最早的單片機(jī)是intel公司的 8048,出現(xiàn)在1976年)的出現(xiàn)到今天各式各樣的嵌
入式微處理器,微控制器的大規(guī)模應(yīng)用,嵌入式系統(tǒng)已經(jīng)有了近30年的發(fā)展歷史。經(jīng)過30年的發(fā)展,嵌入式技術(shù)已經(jīng)日趨成熟,在中國(guó)嵌入式機(jī)一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應(yīng)用程序等四個(gè)部分組成,用于實(shí)現(xiàn)對(duì)其他設(shè)備的控制、監(jiān)視或管理等功能。
其次,嵌入式系統(tǒng)無疑是當(dāng)前最熱門最有發(fā)展前途的it應(yīng)用領(lǐng)域之一。嵌入式系統(tǒng)用在一些特定專用設(shè)備上,通常這些設(shè)備的硬件資源(如處理器、存儲(chǔ)器等)非常有限,并且對(duì)成本很敏感,有時(shí)對(duì)實(shí)時(shí)響應(yīng)要求很高等。特別是隨著消費(fèi)家電的智能化,嵌入式更顯重要。嵌入式系統(tǒng)是軟硬結(jié)合的學(xué)科,通常有兩類人會(huì)去專研嵌入式:一類是學(xué)電子工程、通信工程等偏硬件專業(yè)的,另一類是學(xué)軟件、計(jì)算機(jī)專業(yè)出身的人,主要從事嵌入式操作系統(tǒng)和應(yīng)用軟件的開發(fā)。我是軟件專業(yè)的學(xué)習(xí)嵌入式,越是智能設(shè)備越是復(fù)雜系統(tǒng),軟件越起關(guān)鍵作用,而且這是目前的趨勢(shì)。嵌入式應(yīng)用在很多方面,具體的可以分為工業(yè)控制,交通管理,信息家電,家庭智能管理系統(tǒng),pos網(wǎng)絡(luò)及電子商務(wù),環(huán)境工程與自然,機(jī)器人,機(jī)電產(chǎn)品方面應(yīng)用等方面。其中目前在服務(wù)領(lǐng)域,如遠(yuǎn)程點(diǎn)菜器等已經(jīng)體現(xiàn)了嵌入式系統(tǒng)的優(yōu)勢(shì)。例外還有很多地方用到了嵌入式系統(tǒng),最近飛利浦和arm共同推出32位risc嵌入式控制器,適用于工業(yè)控制,采用最先進(jìn)的0.18微米cmos嵌入式閃存處理技術(shù),操作電壓可以低至1.2伏,它還能降低25%到30%的制造成本,在工業(yè)領(lǐng)域中對(duì)最終用戶而言是一套極具成本效益的解決方案。下圖為一個(gè)真實(shí)的嵌入式系統(tǒng)實(shí)例,全套采用嵌入式系統(tǒng)制作的污水管理系統(tǒng): 其實(shí)用到嵌入式的地方還有很多,隨著計(jì)算機(jī)的飛速發(fā)展嵌入式的價(jià)格越來越便宜也將更加普及,嵌入式是一門前途光明的學(xué)科。
通過8周的學(xué)習(xí)學(xué)到的并不是很多,要想在這個(gè)領(lǐng)域中有所作為還需深入研究,我要走的路還有很多但我會(huì)一步一步走下去的。
篇五:學(xué)習(xí)嵌入式的心得
嵌入式學(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è)新生的事物,從八十年代起,國(guó)際上就有一些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)。它支持多種處理器,如x8
6、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 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)在了國(guó)家和國(guó)內(nèi)各嵌入式廠商面前,由于linux自身諸多優(yōu)勢(shì),吸引了許多開發(fā)商的目光,成為嵌入式操作系統(tǒng)的新寵。它的出現(xiàn)無疑為國(guó)家發(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ì)成廢人,只好讓國(guó)家養(yǎng)了。兩年后決定出去,但是幾成廢人,誰要呢,只好到學(xué)校去鍍金。這是中國(guó)教育和社會(huì)的悲哀!
至于專業(yè)就改為計(jì)算機(jī)方面,聽說好找工作,我說實(shí)話不是很對(duì)計(jì)算機(jī)特別感興趣,生存第一需要。不要笑我,哈哈!
考研成績(jī)出來,超過了國(guó)家線幾十分。那個(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)。
有人會(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)去劃很長(zhǎng)時(shí)間出來,一旦解決自己又長(zhǎng)進(jìn)了!相對(duì)來說開發(fā)周期長(zhǎng),難度大。現(xiàn)在資料也逐漸豐富起來,難度也降低了些!
至于怎么學(xué)習(xí),這是他的特色地方,必須有塊開發(fā)板,我是同學(xué)里最早買學(xué)習(xí)板的,雖然化錢,我認(rèn)為值。對(duì)我實(shí)習(xí)和工作產(chǎn)生了很大的影響。
如果沒有開發(fā)板,那是紙上談兵。有人說,那要1000-2000亞,的確是,兄弟,看長(zhǎng)遠(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í)間長(zhǎng)些,如一個(gè)月,一周一到兩次課。如果沒人做,我來做,哈哈!
沒有想到,一下寫了這么多,其實(shí)還想寫的,比如在中科院的一位老兄是怎樣學(xué)習(xí)linux內(nèi)核和看書的,真的很感動(dòng)。他的為人我很欽佩。
第三篇:嵌入式學(xué)習(xí)心得
LPC2136是ARM7架構(gòu),是32位地址總線和數(shù)據(jù)總線,可以尋址的范圍為2的32次方
=4GB(0x00000000~0xFFFFFFFF)
我們的程序在哪里運(yùn)行?
還記得我們?cè)谧觥芭荞R燈”和“蜂鳴器”兩個(gè)實(shí)驗(yàn),用ads1.2中建立工程文件的時(shí)候有設(shè)置三個(gè)地址:
RO Base :0x40000000
RW Base :0x40001000
Image entry point :0x40000000
開始沒有講為什么,通過上面的系統(tǒng)存儲(chǔ)器映射圖解不知大家是否有所悟。LPC2136內(nèi)部自帶32KB RAM和256KB FLASH。
32KB RAM分布在整個(gè)CPU存儲(chǔ)器空間的0x40000000~0x40007FFF;
256KB FLASH分布在整個(gè)CPU存儲(chǔ)器空間的0x00000000~0x0003 FFFF;
RO Base是告訴編譯系統(tǒng)把編譯生成的目標(biāo)碼放在0x40000000起始的位置,也就是代碼段存放在0x40000000開始的位置。
RW Base告訴編譯系統(tǒng)把各種變量(常量放在RO開始的位置),堆棧放在0x40001000起始的位置。
Image entry point:是告訴編譯系統(tǒng)程序入口點(diǎn)在0x40000000,即程序從這個(gè)地址開始執(zhí)行。(此部分在附錄二中細(xì)說)
Flash與RAM的區(qū)別
通過以上所說,好像FLASH在這里沒什么用,如果你的RO地址定位在RAM中,那么FLASH確實(shí)沒有用。但FLASH是必須的功能部件。
Flash的作用也許要從其與RAM的區(qū)別說起:
區(qū)別一:RAM是易失性存儲(chǔ)器,F(xiàn)lash是非易失性存儲(chǔ)器。通俗的說,存儲(chǔ)在RAM中的數(shù)據(jù)掉電后數(shù)據(jù)丟失;而存儲(chǔ)在FLASH中的數(shù)據(jù)掉電后任然保持。(必須通過工具或特殊命令來擦除)
區(qū)別二:RAM是可讀寫存儲(chǔ)器,F(xiàn)lash只讀存儲(chǔ)器。(也許有人要問,F(xiàn)lash難道不能寫嗎?Flash可以寫,但不能象RAM一樣做簡(jiǎn)單賦值操作,必須通過Flash寫命令寫,而且寫入數(shù)據(jù)的最小單位為512字節(jié),即一個(gè)扇區(qū))
區(qū)別三:RAM訪問速度快,而Flash訪問速度慢的多。
區(qū)別四:RAM價(jià)格昂貴,F(xiàn)lash便宜。
FLASH有何用途
我們一般在調(diào)試程序的時(shí)候?yàn)榱颂岣唛_發(fā)進(jìn)度,都把程序放在RAM中調(diào)試,在RAM中調(diào)試有一個(gè)缺陷就是每次上電必須下載程序到板子上,當(dāng)產(chǎn)品的各個(gè)模塊調(diào)試OK,產(chǎn)品就要實(shí)現(xiàn)脫機(jī)功能,即把程序燒寫到FLASH中,這樣就不需要每次上電加載程序。我們手中拿的手機(jī),在開發(fā)階段都是在RAM(SDRAM)中調(diào)試的,開發(fā)完成,要發(fā)布的時(shí)候就把程序燒到FLASH,這樣我們開機(jī)有能運(yùn)行FLASH的程序。
第四篇:嵌入式學(xué)習(xí)心得
嵌入式學(xué)習(xí)心得
當(dāng)今社會(huì),嵌入式系統(tǒng)已經(jīng)滲透到人們工作、生活中的各個(gè)領(lǐng)域,嵌入式處理器已占分散處理器市場(chǎng)份額的94%。而嵌入式Linux系統(tǒng)也蓬勃發(fā)展,不僅繼承了Linux源碼開放、內(nèi)核穩(wěn)定高效、軟件豐富等優(yōu)勢(shì),還具備支持廣泛處理器結(jié)構(gòu)和硬件平臺(tái)、占有空間小、成本低廉、結(jié)構(gòu)緊湊等特點(diǎn)。
我很幸運(yùn)接觸了嵌入式,在嵌入式實(shí)驗(yàn)我知道了構(gòu)建嵌入式系統(tǒng)的開發(fā)環(huán)境明白了交叉編譯:交叉編譯的環(huán)境建立在宿主機(jī)上,而對(duì)應(yīng)的開發(fā)板為目標(biāo)機(jī)。為了使宿主機(jī)上開發(fā)的程序能夠方便的下載到目標(biāo)機(jī)上運(yùn)行,一般還要在宿主機(jī)上配置好網(wǎng)絡(luò),使其支持NFS或tftp等網(wǎng)絡(luò)服務(wù),從而達(dá)到兩臺(tái)機(jī)器之間的文件共享,知道了宿主機(jī)與目標(biāo)機(jī)之間的關(guān)系:在嵌入式系統(tǒng)開發(fā)過程中,由于可執(zhí)行程序的編譯過程和執(zhí)行過程分別在宿主機(jī)和目標(biāo)機(jī)上完成,因此實(shí)現(xiàn)宿主機(jī)和目標(biāo)機(jī)之間的實(shí)時(shí)交互能夠大幅度提高嵌入式系統(tǒng)開發(fā)的效率。由于目標(biāo)機(jī)也帶有操作系統(tǒng),因此可以通過實(shí)現(xiàn)不同機(jī)器之間的網(wǎng)絡(luò)共享來完成實(shí)時(shí)交互。宿主機(jī)開發(fā)程序,而目標(biāo)機(jī)作為最后的執(zhí)行機(jī)。兩者在開發(fā)時(shí)需要交替結(jié)合進(jìn)行。知道了UBOOT移植、UBOOT編譯、UBOOT燒寫。LINUX內(nèi)核的移植、LINUX內(nèi)核燒寫。LINUX驅(qū)動(dòng)程序的編寫系統(tǒng)調(diào)用是操作系統(tǒng)內(nèi)核和應(yīng)用程序之間的接口,設(shè)備驅(qū)動(dòng)程序是操作系統(tǒng)內(nèi)核和機(jī)器硬件之間的接口.設(shè)備驅(qū)動(dòng)程序?yàn)閼?yīng)用程序屏蔽了硬件的細(xì)節(jié),這樣在應(yīng)用程序看來,硬件設(shè)備只是一個(gè)設(shè)備文件,應(yīng)用程序可以像操作普通文件一樣對(duì)硬件設(shè)備進(jìn)行操作.設(shè)備驅(qū)動(dòng)程序是內(nèi)核的一部分,它完成以下的功能:對(duì)設(shè)備初始化和釋放、把數(shù)據(jù)從內(nèi)核傳送到硬件和從硬件讀取數(shù)據(jù)、讀取應(yīng)用程序傳送給設(shè)備文件的數(shù)據(jù)和回送應(yīng)用程序請(qǐng)求的數(shù)據(jù)、檢測(cè)和處理設(shè)備出現(xiàn)的錯(cuò)誤.在Linux操作系統(tǒng)下有兩類主要的設(shè)備文件類型,一種是字符設(shè)備,另一種是塊設(shè)備.字符設(shè)備和塊設(shè)備的主要區(qū)別是:在對(duì)字符設(shè)備發(fā)出讀/寫請(qǐng)求時(shí),實(shí)際的硬件I/O一般就緊接著發(fā)生了,塊設(shè)備則不然,它利用一塊系統(tǒng)內(nèi)存作緩沖區(qū),當(dāng)用戶 進(jìn)程對(duì)設(shè)備請(qǐng)求能滿足用戶的要求,就返回請(qǐng)求的數(shù)據(jù),如果不能,就調(diào)用請(qǐng)求函數(shù)來進(jìn)行實(shí)際的I/O操作.塊設(shè)備是主要針對(duì)磁盤等慢速設(shè)備設(shè)計(jì)的,以免耗費(fèi) 過多的CPU時(shí)間來等待.、DM6446 USB驅(qū)動(dòng)編寫。ARM+DSP雙處理器開發(fā)實(shí)驗(yàn)。在這些實(shí)驗(yàn)當(dāng)中我遇到了很多問題,因?yàn)槭堑谝淮谓佑|linux,很多命令都不清楚,操作起來很不方便,使實(shí)驗(yàn)進(jìn)度很慢,并且很多命令也是比葫蘆畫瓢,根本不知道為什么這么用,所以導(dǎo)致命令不熟練,下次操作時(shí)依然需要回憶。在程序開發(fā)中我在課下熟悉了shell命令以后,對(duì)一般的操作也算了解,我明白了問題就如爬山:不怕慢就怕站,只要我慢慢積累我就會(huì)學(xué)到應(yīng)該如何編寫我自己的程序,搭建我自己的嵌入式系統(tǒng)。盡管我們已經(jīng)懂得了一些皮毛但是前方的路依然任重道遠(yuǎn),要想把我們專業(yè)的優(yōu)勢(shì)發(fā)揮出來就需要軟硬件結(jié)合,這無疑是一次巨大的契機(jī),我感覺在結(jié)
課以后我們一定仔細(xì)想在實(shí)驗(yàn)中做的不足,以及實(shí)驗(yàn)中給我的資源我如何合理的應(yīng)用。畢竟學(xué)無止境,我也看看其他論壇上應(yīng)該建議我們?nèi)绾螌W(xué)習(xí)嵌入式,但是眾說紛紜,我不應(yīng)該關(guān)注別人做了什么,但是我應(yīng)該明白我的每一次付出會(huì)有什么收獲,畢竟再多的參考也比不上你的實(shí)際情況,正如我們的dm6446它的學(xué)習(xí)方式與一般的arm還是有區(qū)別的,所以要因材施教。其實(shí)在你想做嵌入式Linux的時(shí)候,要對(duì)自己有信心。很可能自己以前學(xué)習(xí)的不是這個(gè)專業(yè)或者以前沒有接觸過,就像我一樣,我以前也沒接觸過嵌入式,一旦我們確定了自己要做嵌入式,我想擺在我們面前的最大的一個(gè)難題就是,嵌入式對(duì)我們很模糊,好想心理面有好多好多陰霾,不用怕,請(qǐng)相信自己,新手都是這樣,有疑團(tuán),才會(huì)激發(fā)我們探索的動(dòng)力和激情。相信自己,在不久的將來自己會(huì)摸到嵌入式的棱角的,摸清他的面貌的。把學(xué)習(xí)穿插到日常生活中。一旦決定要學(xué),就從現(xiàn)在開始學(xué)習(xí),永遠(yuǎn)不要希望人的一生會(huì)騰出一段時(shí)間來讓你去專門學(xué)習(xí)嵌入式的,就像當(dāng)你出生的時(shí)候,永遠(yuǎn)不可能會(huì)專門騰出一段時(shí)間來讓你專門學(xué)走路,最終情況是你學(xué)走路的同時(shí)很可能也在學(xué)習(xí)說話,學(xué)習(xí)吃飯。所以,對(duì)于學(xué)生來說,永遠(yuǎn)不要試圖把學(xué)習(xí)嵌入式挪到假期,因?yàn)槟悴荒茴A(yù)料到假期你會(huì)發(fā)生什么而耽誤你學(xué)習(xí)的時(shí)間。需要用到什么學(xué)什么。不要企圖把Linux,arm等所謂的什么教程之內(nèi)的書看完了再去做開發(fā)。個(gè)人覺得Linux,只要知道大概,只要知道簡(jiǎn)單的命令,會(huì)用就可以了,但是gcc,gdb一定要掌握,然后就是要掌握嵌入式Linux和Linux開發(fā)環(huán)境的配置。嵌入式Linux是在開發(fā)板里面的Linux。而單純的說Linux說的是PC上的Linux。遇到問題,我們就去解決,要解決,我們就可以翻書,查資料,這樣既可以縮短項(xiàng)目開發(fā)周期,又可以學(xué)習(xí),這樣就避免了可能你把一本關(guān)于Linux的書看完了,你還不知道如何去做嵌入式Linux開發(fā)。不管你要做什么開發(fā),裝上Linux后,請(qǐng)安裝英文版的,并且盡量在無圖形界面寫工作。因?yàn)楹芏喙径济鞔_禁止用Linux圖形界面和中文版的。不管做什么開發(fā),應(yīng)用開發(fā),或者是驅(qū)動(dòng)開發(fā),都要先編譯內(nèi)核,因?yàn)橛泻枚辔募侵挥心憔幾g內(nèi)核之后才能產(chǎn)生的,而這些文件,很可能就是你要用的。做應(yīng)用開發(fā),首先用從讀懂驅(qū)動(dòng)入手。不要求你會(huì)寫驅(qū)動(dòng),但是起碼要讀懂驅(qū)動(dòng),這樣才有助于應(yīng)用開發(fā)除非你的嵌入式開發(fā)板是跑裸機(jī),也就是沒有Linux系統(tǒng),你可以操作arm的寄存器,可以直接操作硬件,比如JTAG仿真就是。其他情況,一旦你有Linux系統(tǒng),你的程序時(shí)不可能直接操作硬件的。明白這一點(diǎn),你就不會(huì)向我一樣,開始做嵌入式Linux應(yīng)用的時(shí)候以為可以和單片機(jī)一樣,直接控制引腳來寫程序了。有了Linux,用主要用的系統(tǒng)提供給用戶的接口。
要時(shí)刻把握每一次提高自己的機(jī)會(huì)!
第五篇:嵌入式學(xué)習(xí)心得
嵌入式學(xué)習(xí)心得
時(shí)間過的緊快,在粵嵌教育已經(jīng)培訓(xùn)有5個(gè)月了,培訓(xùn)期間收獲很多,也認(rèn)識(shí)了班上的學(xué)習(xí)大神,經(jīng)過系統(tǒng)的學(xué)習(xí),老師的細(xì)心指導(dǎo),我的付出努力,對(duì)于嵌入式上,學(xué)到很多實(shí)用的知識(shí),在動(dòng)手操作能力也加強(qiáng)了,不僅在專業(yè)技術(shù)方面有了很大進(jìn)步,而且在實(shí)踐操作方面我也對(duì)嵌入式有了更深入的了解。也許這5個(gè)月是我在外面學(xué)習(xí)和生活最寶貴的時(shí)間。
在校兩年,讀于電子信息工程技術(shù)專業(yè)的我,就覺得這專業(yè)學(xué)的知識(shí)太廣了,不管基礎(chǔ)還是動(dòng)手操作,都要比較靈活。在校期間,學(xué)習(xí)單片機(jī),傳感器,C語言,嵌入式應(yīng)用技術(shù)等課程。感覺學(xué)起來,對(duì)我來說接受還是比較快的,那時(shí)就有想過:學(xué)的多不如學(xué)的巧,也許在校對(duì)課程多于理論為主,理解它的原理和基本編程方式。其實(shí),我還是有努力去學(xué)的,可以說,在校科任老師都教會(huì)我很多專業(yè)知識(shí),為我將來的學(xué)習(xí)和發(fā)展打好基礎(chǔ)。
在大三期間,為了更明確自己要走的方向,去培訓(xùn)嵌入式軟件開發(fā)。也許將要投身嵌入式行業(yè)的我,就注定這條路要付出很多時(shí)間和精力,但可能我好求比較強(qiáng),接受還行,就不停給自己打氣,努力!要去培訓(xùn)嵌入式時(shí),我從網(wǎng)上也對(duì)它有更加的理解,也看下大2學(xué)的嵌入式應(yīng)用技術(shù)書,嵌入式系統(tǒng)是軟件和硬件的綜合體,以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。剛開始嵌入式學(xué)習(xí),對(duì)Linux系統(tǒng)的知識(shí)加于鞏固。一些簡(jiǎn)單的代碼,C語言,對(duì)于嵌入式軟件還是硬件開發(fā)的人員,對(duì)C語言的掌握這個(gè)是必需的,特別是對(duì)于以后致力于嵌入式軟件開發(fā)的人,現(xiàn)在絕大部分都是用C語言。在下來幾個(gè)月就對(duì)Linux系統(tǒng),數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)移植的方法、A8的體系結(jié)構(gòu)、Linux內(nèi)核及驅(qū)動(dòng)設(shè)計(jì)、android、C+Java的JNI應(yīng)用編程的系統(tǒng)學(xué)習(xí)。在每學(xué)個(gè)階段就作一個(gè)考試,對(duì)前面所學(xué)的知識(shí)進(jìn)行復(fù)習(xí),有些會(huì)做一個(gè)簡(jiǎn)單的小項(xiàng)目,學(xué)以致用。知識(shí)量還是比較多,但教學(xué)也比較快,有些知識(shí)還沒消化完,第二天又接受新知識(shí),對(duì)于能在課上就可以對(duì)知識(shí)完全懂的并不多,晚上都用一兩個(gè)小時(shí)來復(fù)習(xí)。經(jīng)過5個(gè)月系統(tǒng)的學(xué)習(xí),嵌入式技術(shù)方面有了很大進(jìn)步,實(shí)踐操作方面也對(duì)嵌入式有了更深入的了解。在最后一個(gè)月,基于A8(S5PV210)的嵌入式智能家居系統(tǒng)制作。
下面我談?wù)勗诨浨督逃呐嘤?xùn)感受,我培訓(xùn)的地點(diǎn)是在科學(xué)城粵嵌教育培訓(xùn)中心的多媒體課室里,這里有學(xué)習(xí)環(huán)境非常好,在緊張的學(xué)習(xí)的過程中,你可以得到名師的指導(dǎo),也可以體會(huì)到一流企業(yè)高質(zhì)量的培訓(xùn)。在課堂上,老師們認(rèn)真的演講,以及手把手地教導(dǎo),使每個(gè)學(xué)生都能夠扎實(shí)地掌握到嵌入式的各方面的知識(shí)。而粵嵌教育的老師也是操作實(shí)踐為主,實(shí)踐是非常重要的,只有把知識(shí)掌握到位,才能達(dá)到學(xué)習(xí)的目的。感謝粵嵌教育機(jī)構(gòu),感謝粵嵌教育老師。