嵌入式學習深刻的心得體會
嵌入式學習是學習的一種方式,其表現為深入,透徹,對所學之物有本質上的瞭解,那麼關於嵌入式學習,你有什麼心得體會?下面是小編整理的嵌入式學習心得體會,歡迎大家參閱。
嵌入式學習心得體會:
一,如果非常多人都想做Linux,那麼就要對Linux要 比較熟悉。這個熟悉不是說對核心,對程式碼有多瞭解,而是至少要會基本的操作,非常難想象讓一個連編譯程式,編輯文字檔案都非常困難的人去弄嵌入式的軟體吧。總之在進入嵌入式這個領域之前要對自己評估一下,看看自己是不是準備好了去學習嵌入式相關的東西。
二,要捨得花錢買研發板。公欲善其技,必先利其器。也就是說,理論上可能掌控了非常多,不過不去實踐,那隻能是紙上談兵,這樣是無法學好嵌入式的。弄個研 發板自己擺弄擺弄,即使什麼都不懂,也能按照說明書把廠家給的程式下載到研發板上執行執行,先知其然,然後再通過具體的學習知其所以然,這樣能避免學習中 的枯燥。目前市場上研發板的種類繁多,相同CPU的板子價格卻相差非常多,令非常多人都不知道怎麼選擇購買。我的看法是,儘量買大廠的產品。因為在初學階 段學習資料少是個非常頭疼的事,非常多時候都是無從下手,不知道怎麼去做,那麼隨研發板附送的資料就非常重要了。大廠技術比較強,附帶的程式都是能在板子 上執行的,例如我買的優龍ST2410這個板子***不是廣告啊***,光碟上帶了一個bootloader,個2.4.18的核心,更有一個cramfs,這些 程式的原始碼都是廠家事先做好或修改好的,完全適用於初學者使用。而有些實力不行的小廠家的資料不齊全,我們學習的時候需要自己弄bootloader什 麼的,那入門就非常難了。不過大廠的板子都非常貴,大家能根據預算來選擇適合自己的研發板,不過無論怎樣,在學習上投資都是值得的。
三,不要事無鉅細的學習,要有明確的目標。我最開始給自己制定的學習計劃是:學習arm體系結構 -> 學習arm彙編 -> 自己移植bootloader -> 自己移植kernel -> 做應用,不過不久就被我否決了,因為這個過程實在是太枯燥太痛苦了,在學習資料少,沒人指導的情況下根本無法進展。於是我決定使用廠家的程式碼來“玩”研發 板,自己弄些應用上去。先是完全使用廠家給的bootloader,kernel,cramfs。之後發現cramfs中的一些控制Linux初始化的文 件不符合我的需求,於是修改cramfs,刪除了QT,修改了網絡卡初始的IP地址,安裝到板子上能運行了之後就開始嘗試做一些應用,比如hello world這樣的程式。最後移植了一個mpg123到板子上。完萬能在不知道原理的情況下來使用板子的一些功能,等熟悉板子了再回頭學習其中的道理,這樣 就容易一些。學習嵌入式就是這樣,根據問題來選擇學習的內容,否則會非常盲目,最後就失去信心了。
四,要有耐心。不能否認,在學習一門自己完全不瞭解的技術是非常煩人的。嵌入式的複雜在於他的交叉性。也就是說為了研究某一個嵌入式的問題,你有可能得學 習非常多其他的知識,比如作業系統,編譯,體系結構等等,那麼對於這種情況需要我們有足夠的耐心。我在交叉編譯mpg123的時候前幾次無論怎麼修改 makefile都無法編譯成功,最後我發現我用的arm-linux-gcc是2.9版本的,比較老,於是我換成新的3.4.1版本,就ok了。
以上是我初學嵌入式所獲得的一些淺顯的經驗,基本都是基於軟體方面的,硬體的DIY我就不行了。希望我的經驗能給大家一些幫助。
剛剛和LUPA的嵌入式版主要了uboot的程式碼,接下來的我想研究研究廠家的bootloader程式碼然後移植一下uboot。
初學嵌入式的心得和體會
研究嵌入式系統已經有快兩年的時間了。很慶幸自己當初選擇了嵌入式系統作為自己的研究和職業方向,可以說它是一種催化劑,讓我自身的修養和研究能力都有了很大的提高。***當然這離不開我敬愛的導師門給我的教導與支援和我個人自身的基礎及努力***在嵌入式系統的大門前,我只能算是剛剛看到這個大門的臺階,但這段小小的距離讓我受益頗多,現將其中心得奉獻出來,歡迎高手前輩們指正,以供剛接觸的新人蔘考。***別人的心得和經驗你可以學習,但是不可以完全照而搬之。因為每個人的心理,生活方式,看待事物及個人志向立場等等其他都不同,我的方法不一定適合你,但是可以學習借鑑。***
在寫之前,想先寫一句話,千萬不要以為你是天才,所謂天才即勝別人N倍的人,如果你真認為你是天才,請以天才的標準來要求自己,將自己付出和別人的比例以N:1來進行。 ***1***學習與生活心態
很多朋友都是在剛步入大學校門開始接觸計算機或者其他。大學是一個很讓人迷茫頹廢的地方,可能你在高中躊躇滿志,但在大學的管理機制下卻心態漸糜。能夠在大學***大一***裡找到自己人生之志的同學有多少?目標要明確,不要得過且過,不要追逐熱門的東西。不管在什麼時候,心裡 都要有自己的信念和理想,不要被其他東西左右了自己。要從興趣和競爭出發,因為這才是你產生動力源的地方。學東西時,要讓自己先喜歡上它,要學會享受學習它的時間,喜歡喬***的都知道,喬老爺子最常說的一句就是要享受比賽的時間。因為只有你喜歡上了它,享受了它,才不會被它所產生的壓力壓倒自己,不要產生一種厭惡的心理。而且心態要調整,不要一味的蠻學,死學,在沒有什麼興趣學的時候可以先玩幾天,在回過頭來,或者用其他的方式來轉換。要抱著一種十年方能磨一劍的心理,紮紮實實從基礎開始,不要為高速開發的一些現象所迷惑,那些都只是軟體的功勞。我個人認為搞程式設計,英語和數學很重要,大家一定要時時的抓,至於怎麼抓那就是另外一回事了,當然其他的知識也要汲取,可以多接觸點天文,地理,人文方面的東西來補充自己。轉換的生活方式。要學會生活,在人的一生中,都會遇到一些很不開心的事,或者大大小小的意外,孫子兵法裡面一句大意就是說,戰場上要會將劣勢轉成優勢,即最大的劣勢很可能就是你的優勢所在。一個打擊你可以把他變為前進的動力,不必為了一點挫折和捶胸頓足,不必為了一點小事爭吵不休。空閒的時候可以躺下來看看天,你就會明白自強不息,厚德載物之理。***看到一些為了失戀或者其他而墮落的人真的很難受和可惜*** 。 要給人以幫助。別人有困難時或者一些舉手之勞在自己解決範圍內的盡力幫之,這對自己不會損失什麼,相反在對方心裡能夠樹立你的形象和增加好感。記住,給人之恩時也是給你自己鋪路,這個世界不是靠你一個人可改變的。***2***程式語言的選擇 語言的爭論。很多初學擇,老是在學習何種語言上舉棋不定,試問,中國牌子有幾個不被罵的,試問,世界上哪部影片沒人說他壞話的?術業有專攻,各司其職,每個語言的出現肯定都有自己價值和領域的範圍,不同的只是價值和領域的高階和大小。就像高,矮,胖,瘦組成一個“型”。但是技術是進步的,這個進步也是在舊的基礎上。放心,技術再飛躍也不會今天奔I,明天扣肉的迅速,在學習的同時也要時時關注整個語言界的走勢***貌似哪個偉人說的與時俱進***,保持一種同步曲線的前進。語言能幹什麼?能問這句話,很欣慰。表明你是從基礎學起才會問出這樣的話來。但換而言之你一開始對這門語言調查的資訊不足。廟算者勝,對自己身邊的事物瞭解是非常重要的,這也能說明說你的教材或者教導你的人不夠充分。如果是我對新手交流,我會花足時間讓他明白這門語言是什麼,能幹什麼,整個體系等等。這樣在學的時候,對同一條語句上的理解你可能跟別人就不一樣了, 因為你知道這門語言的體系架構,你可以從更多的特性角度去挖掘使用它。提高自己對語言閱讀能力。如何快速的進步?可以告訴你沒有一步登天的辦法,但是也可以告訴你如何讓你快速掌握你所學的技術。多讀他人程式碼,多領悟他人思維,多給自己出難題,多幾種方法來解問題,多將語言的思想和身邊的事物聯絡起來。想想你是怎麼掌握普通話的,方法就不具體說了。程式設計的思維。計算機是充滿誘惑的東西,很多人都說熱愛計算機,那只是它的表面,你熱愛的只是他的一種擴充套件性的東西。能學計算機我很高興,因為計算機從某種意義上來說將空間的距離給消除掉了。這裡沒有流血,沒有犧牲。你可以以一種藝術家的思維來塑造它,可以以偵探的邏輯思維來破解它,可以以一種戰爭狂人的思維來摧毀它。你可以將你的這種思維體現在程式碼和整個佈局裡,不要驚異別人程式碼思維的異風,你也有自己的思維風格,你也可以,你也可以用自己程式碼讓別人驚異。記住你學東西時更多的要體會他的思維,比如數學,微積分,離散,無數的定理,你學完以後可能永遠都用不到,但是你可能有這種感覺,在你碰到某一問題時,這一問題的性質和你學到的東西很類似,但是中間就是差了一點東西,對了,這就是它思維上的一種運用,一種抽象,一種轉換。
嵌入式學習心得體會範文:
首先我宣告,我是基於嵌入式系統平臺級設計的,硬體這個方向我相對來講比較有發言權,如果是其它方面所要具備的基本技能還要和我們培訓中心其它專業級講師溝通。他們的方面上我只能說是知道些,但不是太多,初級的問題也可以問我。
對於硬體來講有幾個方向,就單純訊號來分為數字和模擬,模擬比較難搞,一般需要很長的經驗積累,單單一個阻值或容值的精度不夠就可能使訊號偏差很大。因此年輕人搞的較少,隨著技術的發展,出現了類比電路數字化,比如手機的modem射頻模組,都採用成熟的套片,而當年國際上只有兩家公司有此技術,自我感覺模擬功能不太強的人,不太適合搞這個,如果真能搞定到手機的射頻模組,只要達到一般程度可能月薪都在15k以上。
另一類就是數字部分了,在大方向上又可分為51/arm的微控制器類,dsp類,fpga類,國內fpga的工程師大多是在ic設計公司從事ip核的前端驗證,這部分不搞到門級,前途不太明朗,即使做個ic前端驗證工程師,也要搞上幾年才能勝任。dsp硬體介面比較定型,如果不向驅動或是演算法上靠攏,前途也不會太大。而arm微控制器類的內容就較多,業界產品佔用量大,應用人群廣,因此就業空間極大,而硬體設計最體現水平和水準的就是介面設計這塊,這是各個高階硬體工程師相互pk,判定水平高低的依據。而介面設計這塊最關鍵的是看時序,而不是簡單的連線,比如pxa255處理器i2c要求速度在100kbps,如果把一個i2c外圍器件,最高還達不到100kbps的與它相接,必然要導致設計的失敗。這樣的情況有很多,比如51微控制器可以在匯流排接lcd,但為什麼這種lcd就不能掛在arm的總線上,還有arm7總線上可以外接個winband的sd卡控制器,但為什麼這種控制器接不到arm9或是xscale處理器上,這些都是問題。因此介面並不是一種簡單的連線,要看時序,要看引數。 一個優秀的硬體工程師應該能夠在沒有參考方案的前提下設計出一個在成本和效能上更加優秀的產品,靠現有的方案,也要進行適當的可行性裁剪,但不是胡亂的來,我遇到一個工程師把方案中的5v變1.8v的dc晶片,直接更換成ldo,有時就會把cpu燒上幾個。前幾天還有人希望我幫忙把他們以前基於pxa255平臺的手持gps裝置做下程式優化,我問了一下情況,地圖是存在sd卡中的,而sd卡與pxa255的mmc控制器間採用的spi介面,因此導致地圖讀取速度十分的慢,這種情況是設計中嚴重的缺陷,而不是程式的問題,因此我提了幾條建議,讓他們更新試下再說。因此想成為一個優秀的工程師,需要對系統整體性的把握和對已有電路的理解,換句話說,給你一套電路圖你終究能看明白多少,看不明白80%以上的話,說明你離優秀的工程師還差得遠哪。其次是電路的除錯能力和審圖能力,但最最基本的能力還是原理圖設計pcb繪製,邏輯設計這塊。這是指的硬體設計工程師,從上面的硬體設計工程師中還可以分出ecad工程師,就是專業的畫pcb板的工程師,和emc設計工程師,幫人家解決emc的問題。硬體工程師再往上就是板級測試工程師,就是c語功底很好的硬體工程師,在電路板除錯過程中能通過自已編寫的測試程式對硬體功能進行驗證。然後再交給基於作業系統級的驅動開發人。
總之,硬體的內容很多很雜,硬體那方面練成了都會成為一個高手,我時常會給人家做下方案評估,很多高階硬體工程師設計的東西,經常被我一句話否定,因此工程師做到我這種地步,也會得罪些人,但硬體的確會有很多不為人知的東西,讓很多高階硬體工程師也摸不到頭腦。
那麼高階硬體件工程師技術技能都要具備那些東西哪,首先要掌握eda設計的輔助工具類如protel\orcad\powperpcb\maplux2\ise、vdhl語言,要能用到這些工具畫圖畫板做邏輯設計,再有就是介面設計審圖能力,再者就是除錯能力,如果能走到總體方案設計這塊,那就基本上快成為資深工程師了。
硬體是要靠經驗,也要靠積累的,十年磨一劍,百年磨一針。
把一個月前想寫的東西,今天終於用一上午的進間整理完了,希望對喜愛嵌入式系統開發的工程師和學生們有所幫助。
相關文章
嵌入式學習心得體會範文