嵌入式系統學習心得總結
嵌入式系統無疑是當前最熱門最有發展前途的IT應用領域之一。以下小編為你帶來,希望對你有所幫助!
篇1
嵌入式系統用在一些特定專用裝置上,通常這些裝置的硬體資源***如處理器、儲存器等***非常有限,並且對成本很敏感,有時對實時響應要求很高等。特別是隨著消費家電的智慧化,嵌入式更顯重要。像我們平常常見到的手機、PDA、電子字典、可視電話、VCD/DVD/MP3 Player、數字相機***DC***、數字攝像機***DV***、U-Disk、機頂盒***Set Top Box***、高清電視***HDTV***、遊戲機、智慧玩具、交換機、路由器、數控裝置或儀表、汽車電子、家電控制系統、醫療儀器、航天航空裝置等等都是典型的嵌入式系統。
看到了嵌入式系統的範圍,你也應該知道嵌入式系統工程師是做什麼的,就是開發上面的那些電子產品的工程師。
關於如何學習嵌入式?
學習嵌入式,該學習什麼基本的知識呢?
首先C語言,這個是毋庸置疑的,不管是做嵌入式軟體還是硬體開發的人員,對C語言的掌握這個是必需的,特別是對於以後致力於嵌入式軟體開發的人,現在絕大部分都是用C語言,你說不掌握它可以嗎?至於如何學習C語言,我想這些基礎的知識每個人都有自己的方法,關鍵要去學習,看書也好,網上找些視訊看也好。很多人會問,C語言要學到怎麼樣,我覺得這沒有標準的答案。我想至少你在明白了一些基礎的概念後,就該寫程式碼了,動手才是最重要的,當你動手了,遇到問題了,再反過來學習,反過來查查課本,那時的收穫就不是你死看書能得到的。
其次,應該對作業系統有所瞭解,這對你對硬體和軟體的理解,絕對有很大的幫助。應該把系統的管理理解一下,比如程序、執行緒,系統如何來分配資源的,系統如何來管理硬體的,當然,不是看書就能把這些理解透,如果不是一時能理解,沒關係,多看看,結合以後的專案經驗,會有更好的理解的。
還有應該學習嵌入式系統,如linux或者wince下的程式設計,這些對以後做應用的程式設計很有幫助,當然,如果做手機的話,那可以學習MTK、塞班、Android等作業系統,Android是以後發展的趨勢,現在很熱門,Android也是基於linux系統封裝的,所以建議先學習下linux。
還有,應該學習下微控制器或者ARM或者MIPS,很多人說我沒有微控制器的經驗,直接學ARM可以嗎?我覺得那完全沒有問題的,當然如果你學習過微控制器,那最好不過了,以後學習ARM就更簡單了。
最後如果你把以上的知識都有所瞭解後,就該去閱讀閱讀一些優秀的程式碼,比如結合arm晶片手冊學習去學習下UBOOT的原始碼,瞭解下最小的系統開發,那對你整個嵌入式開發的非常有幫助的,可以的話,還可以學習下linux的原始碼,當然如果你直接閱讀2.6的程式碼,我想你會很痛苦的,可以先看看linux 程式碼早期的版本,比如0.12 的程式碼等等,麻雀雖小,五臟俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程師。
至於上面說的知識如何學習呢?每個人都應該去找自己最好的方法,所謂的最好的方法就是最適合自己的方法。很多人看不進書,那就去看看視訊吧。視訊也應該要選擇,不是隨便看看,應該要有所選擇,有所挑選。我也是這樣一路走過來的,不過我這人比較懶,我看不進書,一看書我就想睡覺,所以這幾年我都是看視訊過來的,現在也算學有所成,但也不敢說是高手吧。
我在網上看到,有人把自己學習嵌入式的視訊總結出來,嵌入式系列實踐和視訊教程,大家可以看看網址我仔細看了覺得很不錯,我本來也想整理下,可是奈何我自己的電腦硬碟空間才40G,沒有辦法,時間也是不夠,心有餘而力不足,我不是在幫他做廣告,雖然要花錢,我覺得算不錯,至少自己不用去整理和花大量的時間去找資源,當然如果網上有的下,你網速和硬碟都夠的話,我建議大家自己網上下也好。想想我自己該開始學的時候,那時視訊資源少之又少,我買書和買視訊至少花了幾千塊,但是我覺得那很值,至少我現在賺回來了很多知識。
最後,希望這篇文章對熱愛嵌入式,想致力於嵌入式開發的朋友有所幫助。送給大家一句簡單而又樸素的話,堅持就是勝利,貴在堅持,也可以看看如何堅持嵌入式學習!
篇2
首先我宣告,我是基於嵌入式系統平臺級設計的,硬體這個方向我相對來講比較有發言權,如果是其它方面所要具備的基本技能還要和我們培訓中心其它專業級講師溝通。他們的方面上我只能說是知道些,但不是太多,初級的問題也可以問我。
對於硬體來講有幾個方向,就單純訊號來分為數字和模擬,模擬比較難搞,一般需要很長的經驗積累,單單一個阻值或容值的精度不夠就可能使訊號偏差很大。因此年輕人搞的較少,隨著技術的發展,出現了類比電路數字化,比如手機的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語言,要能用到這些工具畫圖畫板做邏輯設計,再有就是介面設計審圖能力,再者就是除錯能力,如果能走到總體方案設計這塊,那就基本上快成為資深工程師了。
硬體是要靠經驗,也要靠積累的,十年磨一劍,百年磨一針。
把一個月前想寫的東西,今天終於用一上午的進間整理完了,希望對喜愛嵌入式系統開發的工程師和學生們有所幫助。