關(guān)于嵌入式學(xué)習(xí)心得體會(huì)
嵌入式學(xué)習(xí)是一種實(shí)效性強(qiáng)的學(xué)習(xí),將學(xué)習(xí)真正“嵌入”到日常工作中,使學(xué)習(xí)的知識(shí)能得到有效的轉(zhuǎn)化,下面是小編整理的嵌入式學(xué)習(xí)心得體會(huì),歡迎大家參閱。
嵌入式學(xué)習(xí)心得體會(huì)一:
一,如果非常多人都想做Linux,那么就要對(duì)Linux要 比較熟悉。這個(gè)熟悉不是說(shuō)對(duì)內(nèi)核,對(duì)代碼有多了解,而是至少要會(huì)基本的操作,非常難想象讓一個(gè)連編譯程式,編輯文本文件都非常困難的人去弄嵌入式的軟件吧??傊谶M(jìn)入嵌入式這個(gè)領(lǐng)域之前要對(duì)自己評(píng)估一下,看看自己是不是準(zhǔn)備好了去學(xué)習(xí)嵌入式相關(guān)的東西。
二,要舍得花錢(qián)買(mǎi)研發(fā)板。公欲善其技,必先利其器。也就是說(shuō),理論上可能掌控了非常多,不過(guò)不去實(shí)踐,那只能是紙上談兵,這樣是無(wú)法學(xué)好嵌入式的。弄個(gè)研 發(fā)板自己擺弄擺弄,即使什么都不懂,也能按照說(shuō)明書(shū)把廠家給的程式下載到研發(fā)板上運(yùn)行運(yùn)行,先知其然,然后再通過(guò)具體的學(xué)習(xí)知其所以然,這樣能避免學(xué)習(xí)中 的枯燥。目前市場(chǎng)上研發(fā)板的種類(lèi)繁多,相同CPU的板子價(jià)格卻相差非常多,令非常多人都不知道怎么選擇購(gòu)買(mǎi)。我的看法是,盡量買(mǎi)大廠的產(chǎn)品。因?yàn)樵诔鯇W(xué)階 段學(xué)習(xí)資料少是個(gè)非常頭疼的事,非常多時(shí)候都是無(wú)從下手,不知道怎么去做,那么隨研發(fā)板附送的資料就非常重要了。大廠技術(shù)比較強(qiáng),附帶的程式都是能在板子 上運(yùn)行的,例如我買(mǎi)的優(yōu)龍ST2410這個(gè)板子(不是廣告啊),光盤(pán)上帶了一個(gè)bootloader,個(gè)2.4.18的內(nèi)核,更有一個(gè)cramfs,這些 程式的原始碼都是廠家事先做好或修改好的,完全適用于初學(xué)者使用。而有些實(shí)力不行的小廠家的資料不齊全,我們學(xué)習(xí)的時(shí)候需要自己弄bootloader什 么的,那入門(mén)就非常難了。不過(guò)大廠的板子都非常貴,大家能根據(jù)預(yù)算來(lái)選擇適合自己的研發(fā)板,不過(guò)無(wú)論怎樣,在學(xué)習(xí)上投資都是值得的。
三,不要事無(wú)巨細(xì)的學(xué)習(xí),要有明確的目標(biāo)。我最開(kāi)始給自己制定的學(xué)習(xí)是:學(xué)習(xí)arm體系結(jié)構(gòu) -> 學(xué)習(xí)arm匯編 -> 自己移植bootloader -> 自己移植kernel -> 做應(yīng)用,不過(guò)不久就被我否決了,因?yàn)檫@個(gè)過(guò)程實(shí)在是太枯燥太痛苦了,在學(xué)習(xí)資料少,沒(méi)人指導(dǎo)的情況下根本無(wú)法進(jìn)展。于是我決定使用廠家的代碼來(lái)“玩”研發(fā) 板,自己弄些應(yīng)用上去。先是完全使用廠家給的bootloader,kernel,cramfs。之后發(fā)現(xiàn)cramfs中的一些控制Linux初始化的文 件不符合我的需求,于是修改cramfs,刪除了QT,修改了網(wǎng)卡初始的IP地址,安裝到板子上能運(yùn)行了之后就開(kāi)始嘗試做一些應(yīng)用,比如hello world這樣的程式。最后移植了一個(gè)mpg123到板子上。完萬(wàn)能在不知道原理的情況下來(lái)使用板子的一些功能,等熟悉板子了再回頭學(xué)習(xí)其中的道理,這樣 就容易一些。學(xué)習(xí)嵌入式就是這樣,根據(jù)問(wèn)題來(lái)選擇學(xué)習(xí)的內(nèi)容,否則會(huì)非常盲目,最后就失去信心了。
四,要有耐心。不能否認(rèn),在學(xué)習(xí)一門(mén)自己完全不了解的技術(shù)是非常煩人的。嵌入式的復(fù)雜在于他的交叉性。也就是說(shuō)為了研究某一個(gè)嵌入式的問(wèn)題,你有可能得學(xué) 習(xí)非常多其他的知識(shí),比如操作系統(tǒng),編譯,體系結(jié)構(gòu)等等,那么對(duì)于這種情況需要我們有足夠的耐心。我在交叉編譯mpg123的時(shí)候前幾次無(wú)論怎么修改 makefile都無(wú)法編譯成功,最后我發(fā)現(xiàn)我用的arm-linux-gcc是2.9版本的,比較老,于是我換成新的3.4.1版本,就ok了。
以上是我初學(xué)嵌入式所獲得的一些淺顯的經(jīng)驗(yàn),基本都是基于軟件方面的,硬件的DIY我就不行了。希望我的經(jīng)驗(yàn)?zāi)芙o大家一些幫助。
剛剛和LUPA的嵌入式版主要了uboot的代碼,接下來(lái)的我想研究研究廠家的bootloader代碼然后移植一下uboot。
嵌入式學(xué)習(xí)心得體會(huì)二:
研究嵌入式系統(tǒng)已經(jīng)有快兩年的時(shí)間了。很慶幸自己當(dāng)初選擇了嵌入式系統(tǒng)作為自己的研究和職業(yè)方向,可以說(shuō)它是一種催化劑,讓我自身的修養(yǎng)和研究能力都有了很大的提高。(當(dāng)然這離不開(kāi)我敬愛(ài)的導(dǎo)師門(mén)給我的教導(dǎo)與支持和我個(gè)人自身的基礎(chǔ)及努力)在嵌入式系統(tǒng)的大門(mén)前,我只能算是剛剛看到這個(gè)大門(mén)的臺(tái)階,但這段小小的距離讓我受益頗多,現(xiàn)將其中心得奉獻(xiàn)出來(lái),歡迎高手前輩們指正,以供剛接觸的新人參考。(別人的心得和經(jīng)驗(yàn)?zāi)憧梢詫W(xué)習(xí),但是不可以完全照而搬之。因?yàn)槊總€(gè)人的心理,生活方式,看待事物及個(gè)人志向立場(chǎng)等等其他都不同,我的方法不一定適合你,但是可以學(xué)習(xí)借鑒。)
在寫(xiě)之前,想先寫(xiě)一句話,千萬(wàn)不要以為你是天才,所謂天才即勝別人N倍的人,如果你真認(rèn)為你是天才,請(qǐng)以天才的標(biāo)準(zhǔn)來(lái)要求自己,將自己付出和別人的比例以N:1來(lái)進(jìn)行。 (1)學(xué)習(xí)與生活心態(tài)
很多朋友都是在剛步入大學(xué)校門(mén)開(kāi)始接觸計(jì)算機(jī)或者其他。大學(xué)是一個(gè)很讓人迷茫頹廢的地方,可能你在高中躊躇滿志,但在大學(xué)的管理機(jī)制下卻心態(tài)漸糜。能夠在大學(xué)(大一)里找到自己人生之志的同學(xué)有多少?目標(biāo)要明確,不要得過(guò)且過(guò),不要追逐熱門(mén)的東西。不管在什么時(shí)候,心里
入式學(xué)習(xí)心得體會(huì)(2) 都要有自己的信念和理想,不要被其他東西左右了自己。要從興趣和競(jìng)爭(zhēng)出發(fā),因?yàn)檫@才是你產(chǎn)生動(dòng)力源的地方。學(xué)東西時(shí),要讓自己先喜歡上它,要學(xué)會(huì)享受學(xué)習(xí)它的時(shí)間,喜歡喬***的都知道,喬老爺子最常說(shuō)的一句就是要享受比賽的時(shí)間。因?yàn)橹挥心阆矚g上了它,享受了它,才不會(huì)被它所產(chǎn)生的壓力壓倒自己,不要產(chǎn)生一種厭惡的心理。而且心態(tài)要調(diào)整,不要一味的蠻學(xué),死學(xué),在沒(méi)有什么興趣學(xué)的時(shí)候可以先玩幾天,在回過(guò)頭來(lái),或者用其他的方式來(lái)轉(zhuǎn)換。要抱著一種十年方能磨一劍的心理,扎扎實(shí)實(shí)從基礎(chǔ)開(kāi)始,不要為高速開(kāi)發(fā)的一些現(xiàn)象所迷惑,那些都只是軟件的功勞。我個(gè)人認(rèn)為搞編程,英語(yǔ)和數(shù)學(xué)很重要,大家一定要時(shí)時(shí)的抓,至于怎么抓那就是另外一回事了,當(dāng)然其他的知識(shí)也要汲取,可以多接觸點(diǎn)天文,地理,人文方面的東西來(lái)補(bǔ)充自己。轉(zhuǎn)換的生活方式。要學(xué)會(huì)生活,在人的一生中,都會(huì)遇到一些很不開(kāi)心的事,或者大大小小的意外,孫子兵法里面一句大意就是說(shuō),戰(zhàn)場(chǎng)上要會(huì)將劣勢(shì)轉(zhuǎn)成優(yōu)勢(shì),即最大的劣勢(shì)很可能就是你的優(yōu)勢(shì)所在。一個(gè)打擊你可以把他變?yōu)榍斑M(jìn)的動(dòng)力,不必為了一點(diǎn)挫折和捶胸頓足,不必為了一點(diǎn)小事?tīng)?zhēng)吵不休??臻e的時(shí)候可以躺下來(lái)看看天,你就會(huì)明白自強(qiáng)不息,厚德載物之理。(看到一些為了失戀或者其他而墮落的人真的很難受和可惜) 。 要給人以幫助。別人有困難時(shí)或者一些舉手之勞在自己解決范圍內(nèi)的盡力幫之,這對(duì)自己不會(huì)損失什么,相反在對(duì)方心里能夠樹(shù)立你的形象和增加好感。記住,給人之恩時(shí)也是給你自己鋪路,這個(gè)世界不是靠你一個(gè)人可改變的。(2)編程語(yǔ)言的選擇 語(yǔ)言的爭(zhēng)論。很多初學(xué)擇,老是在學(xué)習(xí)何種語(yǔ)言上舉棋不定,試問(wèn),中國(guó)牌子有幾個(gè)不被罵的,試問(wèn),世界上哪部影片沒(méi)人說(shuō)他壞話的?術(shù)業(yè)有專(zhuān)攻,各司其職,每個(gè)語(yǔ)言的出現(xiàn)肯定都有自己價(jià)值和領(lǐng)域的范圍,不同的只是價(jià)值和領(lǐng)域的高級(jí)和大小。就像高,矮,胖,瘦組成一個(gè)“型”。但是技術(shù)是進(jìn)步的,這個(gè)進(jìn)步也是在舊的基礎(chǔ)上。放心,技術(shù)再飛躍也不會(huì)今天奔I,明天扣肉的迅速,在學(xué)習(xí)的同時(shí)也要時(shí)時(shí)關(guān)注整個(gè)語(yǔ)言界的走勢(shì)(貌似哪個(gè)偉人說(shuō)的與時(shí)俱進(jìn)),保持一種同步曲線的前進(jìn)。語(yǔ)言能干什么?能問(wèn)這句話,很欣慰。表明你是從基礎(chǔ)學(xué)起才會(huì)問(wèn)出這樣的話來(lái)。但換而言之你一開(kāi)始對(duì)這門(mén)語(yǔ)言調(diào)查的信息不足。廟算者勝,對(duì)自己身邊的事物了解是非常重要的,這也能說(shuō)明說(shuō)你的教材或者教導(dǎo)你的人不夠充分。如果是我對(duì)新手交流,我會(huì)花足時(shí)間讓他明白這門(mén)語(yǔ)言是什么,能干什么,整個(gè)體系等等。這樣在學(xué)的時(shí)候,對(duì)同一條語(yǔ)句上的理解你可能跟別人就不一樣了, 因?yàn)槟阒肋@門(mén)語(yǔ)言的體系架構(gòu),你可以從更多的特性角度去挖掘使用它。提高自己對(duì)語(yǔ)言閱讀能力。如何快速的進(jìn)步?可以告訴你沒(méi)有一步登天的辦法,但是也可以告訴你如何讓你快速掌握你所學(xué)的技術(shù)。多讀他人代碼,多領(lǐng)悟他人思維,多給自己出難題,多幾種方法來(lái)解問(wèn)題,多將語(yǔ)言的思想和身邊的事物聯(lián)系起來(lái)。想想你是怎么掌握普通話的,方法就不具體說(shuō)了。編程的思維。計(jì)算機(jī)是充滿誘惑的東西,很多人都說(shuō)熱愛(ài)計(jì)算機(jī),那只是它的表面,你熱愛(ài)的只是他的一種擴(kuò)展性的東西。能學(xué)計(jì)算機(jī)我很高興,因?yàn)橛?jì)算機(jī)從某種意義上來(lái)說(shuō)將空間的距離給消除掉了。這里沒(méi)有流血,沒(méi)有犧牲。你可以以一種藝術(shù)家的思維來(lái)塑造它,可以以偵探的邏輯思維來(lái)解除它,可以以一種戰(zhàn)爭(zhēng)狂人的思維來(lái)摧毀它。你可以將你的這種思維體現(xiàn)在代碼和整個(gè)布局里,不要驚異別人代碼思維的異風(fēng),你也有自己的思維風(fēng)格,你也可以,你也可以用自己代碼讓別人驚異。記住你學(xué)東西時(shí)更多的要體會(huì)他的思維,比如數(shù)學(xué),微積分,離散,無(wú)數(shù)的定理,你學(xué)完以后可能永遠(yuǎn)都用不到,但是你可能有這種感覺(jué),在你碰到某一問(wèn)題時(shí),這一問(wèn)題的性質(zhì)和你學(xué)到的東西很類(lèi)似,但是中間就是差了一點(diǎn)東西,對(duì)了,這就是它思維上的一種運(yùn)用,一種抽象,一種轉(zhuǎn)換。
嵌入式學(xué)習(xí)心得體會(huì)三:
首先我聲明,我是基于嵌入式系統(tǒng)平臺(tái)級(jí)設(shè)計(jì)的,硬件這個(gè)方向我相對(duì)來(lái)講比較有發(fā)言權(quán),如果是其它方面所要具備的基本技能還要和我們培訓(xùn)中心其它專(zhuān)業(yè)級(jí)講師溝通。他們的方面上我只能說(shuō)是知道些,但不是太多,初級(jí)的問(wèn)題也可以問(wèn)我。
對(duì)于硬件來(lái)講有幾個(gè)方向,就單純信號(hào)來(lái)分為數(shù)字和模擬,模擬比較難搞,一般需要很長(zhǎng)的經(jīng)驗(yàn)積累,單單一個(gè)阻值或容值的精度不夠就可能使信號(hào)偏差很大。因此年輕人搞的較少,隨著技術(shù)的發(fā)展,出現(xiàn)了模擬電路數(shù)字化,比如手機(jī)的modem射頻模塊,都采用成熟的套片,而當(dāng)年國(guó)際上只有兩家公司有此技術(shù),自我感覺(jué)模擬功能不太強(qiáng)的人,不太適合搞這個(gè),如果真能搞定到手機(jī)的射頻模塊,只要達(dá)到一般程度可能月薪都在15k以上。
另一類(lèi)就是數(shù)字部分了,在大方向上又可分為51/arm的單片機(jī)類(lèi),dsp類(lèi),fpga類(lèi),國(guó)內(nèi)fpga的工程師大多是在ic設(shè)計(jì)公司從事ip核的前端驗(yàn)證,這部分不搞到門(mén)級(jí),前途不太明朗,即使做個(gè)ic前端驗(yàn)證工程師,也要搞上幾年才能勝任。dsp硬件接口比較定型,如果不向驅(qū)動(dòng)或是算法上靠攏,前途也不會(huì)太大。而arm單片機(jī)類(lèi)的內(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處理器上,這些都是問(wèn)題。因此接口并不是一種簡(jiǎn)單的連接,要看時(shí)序,要看參數(shù)。 一個(gè)優(yōu)秀的硬件工程師應(yīng)該能夠在沒(méi)有參考的前提下設(shè)計(jì)出一個(gè)在成本和性能上更加優(yōu)秀的產(chǎn)品,靠現(xiàn)有的,也要進(jìn)行適當(dāng)?shù)目尚行圆眉簦皇呛鷣y的來(lái),我遇到一個(gè)工程師把方案中的5v變1.8v的dc芯片,直接更換成ldo,有時(shí)就會(huì)把cpu燒上幾個(gè)。前幾天還有人希望我?guī)兔Π阉麄円郧盎趐xa255平臺(tái)的手持gps設(shè)備做下程序優(yōu)化,我問(wèn)了一下情況,地圖是存在sd卡中的,而sd卡與pxa255的mmc控制器間采用的spi接口,因此導(dǎo)致地圖讀取速度十分的慢,這種情況是設(shè)計(jì)中嚴(yán)重的缺陷,而不是程序的問(wèn)題,因此我提了幾條建議,讓他們更新試下再說(shuō)。因此想成為一個(gè)優(yōu)秀的工程師,需要對(duì)系統(tǒng)整體性的把握和對(duì)已有電路的理解,換句話說(shuō),給你一套電路圖你終究能看明白多少,看不明白80%以上的話,說(shuō)明你離優(yōu)秀的工程師還差得遠(yuǎn)哪。其次是電路的調(diào)試能力和審圖能力,但最最基本的能力還是原理圖設(shè)計(jì)pcb繪制,邏輯設(shè)計(jì)這塊。這是指的硬件設(shè)計(jì)工程師,從上面的硬件設(shè)計(jì)工程師中還可以分出ecad工程師,就是專(zhuān)業(yè)的畫(huà)pcb板的工程師,和emc設(shè)計(jì)工程師,幫人家解決emc的問(wèn)題。硬件工程師再往上就是板級(jí)測(cè)試工程師,就是c語(yǔ)功底很好的硬件工程師,在電路板調(diào)試過(guò)程中能通過(guò)自已編寫(xiě)的測(cè)試程序?qū)τ布δ苓M(jìn)行驗(yàn)證。然后再交給基于操作系統(tǒng)級(jí)的驅(qū)動(dòng)開(kāi)發(fā)人。
總之,硬件的內(nèi)容很多很雜,硬件那方面練成了都會(huì)成為一個(gè)高手,我時(shí)常會(huì)給人家做下方案評(píng)估,很多高級(jí)硬件工程師設(shè)計(jì)的東西,經(jīng)常被我一句話否定,因此工程師做到我這種地步,也會(huì)得罪些人,但硬件的確會(huì)有很多不為人知的東西,讓很多高級(jí)硬件工程師也摸不到頭腦。
那么高級(jí)硬件件工程師技術(shù)技能都要具備那些東西哪,首先要掌握eda設(shè)計(jì)的輔助工具類(lèi)如protel\orcad\powperpcb\maplux2\ise、vdhl語(yǔ)言,要能用到這些工具畫(huà)圖畫(huà)板做邏輯設(shè)計(jì),再有就是接口設(shè)計(jì)審圖能力,再者就是調(diào)試能力,如果能走到總體方案設(shè)計(jì)這塊,那就基本上快成為資深工程師了。
硬件是要靠經(jīng)驗(yàn),也要靠積累的,十年磨一劍,百年磨一針。
把一個(gè)月前想寫(xiě)的東西,今天終于用一上午的進(jìn)間整理完了,希望對(duì)喜愛(ài)嵌入式系統(tǒng)開(kāi)發(fā)的工程師和學(xué)生們有所幫助。
相關(guān)文章: