如何開始學習嵌入式
目前嵌入式主要開發環境有 Linux、Wince等;Linux因其開源、開發操作便利而被廣泛採用。下面小編收集了一些關於學習嵌入式的方法,希望對你有幫助
學習嵌入式方法篇一
第一步,電路基礎與語言基礎;具體將理論學到什麼程度就可以開始著手學習嵌入式了呢?把中學的電路基礎常識回想一下,能夠搭建簡單的電路,比如串聯並聯、歐姆定律、電容電感等。再把大學的類比電子課本掃一遍,不求甚解,有了解即可。另外,對於C語言,能夠做的起國家二級考試的試題,不是說一定要得多少分,而是你做錯了題能夠通過看答案或者註釋明白自己為什麼錯了。有這樣的基礎就可以開始學習嵌入式了。
第二步,開發板;前面說不要盲目的購買開發板追求處理器,但是學習前期買一個微控制器開發板***型號不限,51微控制器、IAR、STM32均可***作為入門必備還是必要的。跟著學習視訊跑跑例程也是入門時學習的一個好方法。在學習開發板的時候,初步能接觸一些微控制器外圍裝置,如時鐘晶片、繼電器、溫度感測器等。
第三步,這一步就相當重要了,有朋友第二步之後就開始學習其他處理器,走入誤區。其實這個時候你應該趁熱打鐵,利用你剛剛學會的微控制器處理器去設計各種各樣的嵌入式系統。筆者曾經學習時,花了兩個月時間將常見的外圍裝置都通過自己搭建電路成功驅動。包括1602液晶、12864液晶、TFT液晶、ZLG7290、DTH11、DTMF編解碼、時鐘晶片、溫度晶片、超聲波、光耦、SD卡、GSM模組、藍芽模組、語音晶片、AD/DA、攝像頭等等,隨後為了準備電子設計大賽,又花了兩個月時間學習電源,自己焊接了30多個除錯板,充分掌握了DC-DC降壓、升壓原理、AC-DC原理***現在後悔沒有嘗試逆變電源***。
有了這些基本模組設計與除錯經驗之後,後面做專案就是水到渠成。筆者也做過小車、無線傳輸、直流穩壓電源、高效恆流電源,當然在大學畢業設計的時候利用Cortex-M3做了一個將PSTN座機電話與GSM手機結合的智慧語音轉接系統。後面也移植過LINUX,編寫過驅動程式,但是由於畢業的原因沒有太多時間學習,但是由於有之前的那些基礎,對整個系統的架構就相當熟悉,上手起來就相對容易。告訴大家一個祕密,一個月前筆者從來沒有接觸過STM32,但是後來由於IT指路燈的需要,我開始了STM32的學習,如今筆者同樣可以利用STM32作為處理器加上之前的那些外圍器件設計出相應的專案。
第四步,知識面的擴充套件;由於第三步對技術方面已經有了積累,對整個嵌入式系統構成有了深入的瞭解。這個時候主要擴大知識面,瞭解如何將你學到的嵌入式技術與其他潮流技術,如雲服務、安卓手機等結合起來,形成更大的系統。這樣一個優秀的物聯網人才就誕生了。
第五步,之前學到的知識是時候用啦,挑一個自己喜歡的工作***為什麼是挑,因為你無法被取代,公司搶還來不及呢***開始盡展才華,獨領風騷的時候啦。當然,仍然別忘了學習提高和分享。
學習嵌入式方法篇二
***1*** C語言是所有程式語言中的強者,微控制器、DSP、類似ARM的種種晶片的程式設計都可以用C語言搞定***,因此必須非常熟練的掌握。 推薦書籍:譚浩強的很不錯,《The C Programming Language》 這本經典的教材是老外寫的,也有中譯版本。
***2*** 作業系統原理,是必需的,如果你是計算機專業畢業那也就無所謂了,如果是非計算機專業的就必須找一本比較淺顯的計算機原理書籍看一看,把啥叫“程序”“執行緒”“系統排程”等等基本問題搞清楚。
***3*** Linux作業系統就是用C語言編寫的,所以你也應該先學習下Linux方面的程式設計,只有你會應用了,才能近一步去了解其核心的精髓。 推薦書籍:《UNIX環境高階程式設計》***第2版***
***4*** 瞭解ARM的架構,原理,以及其彙編指令,我們在嵌入式開發中,一般很少去寫彙編,但是最起碼的要求是能夠看懂arm彙編。
***5*** 系統移植的時候,就需要你從最下層的bootloader開始,然後核心移植,檔案系統移植等。而移植這部分對硬體的依賴是非常大的,其配置步驟也相對複雜,也沒有太多詳細資料。
***6*** 驅動開發 linux驅動程式設計既是個極富有挑戰性的領域,又是一個博大精深的內容。 linux驅動程式設計本質是屬於linux核心程式設計範疇的,因而是對linux核心和核心程式設計是有要求的。在學習前你要想了解linux核心的組成,因 為每一部分要詳細研究的話足夠可以擴充套件成一本厚書。
掌握嵌入式後,工作地點
1. 研究類機構
這類機構很多都很輕鬆,研究成果也不一定能轉化為成果,掙錢靠資歷,剛畢業薪水一般不高,打拼基本沒用。不過很適合不想競爭,但是想深入研究一些課題的人。
2. 小的晶片設計公司
這類公司往往只需要你有能力解決某些問題,對時間要求不是很緊,產品開發週期長,有大量的時間供你研究某項技術,薪水起點較高。這類公司一邊接觸市場,一邊接觸最前沿的科技,確實對學習嵌入式技術很有效,但是同樣,對人的要求就高了。
3. 晶片設計公司的技術部門
這部分要單提出來,因為很多國外或者臺灣的IC公司,在大陸設立了技術支援部門,但是這些部門的人並不能接觸到核心的技術,甚至有些公司連原始碼都看不到,這比下游的廠商來說,唯一有優勢的地方就是最先得到本公司的培訓和技術資料,關於本公司晶片的應用技術非常精通,其他也沒什麼。不過還是有很多公司的FAE可以和研發一起工作的,這些就另當別論了。再說其他,薪水自然沒有晶片設計的高,不過工作強度卻不小,畢竟和客戶打交道。
4. 方案公司
這類公司可以和上面說的晶片設計公司的技術支援部門等同,但是在技術上,接觸的東西要廣的多。一般會接觸到10家左右晶片公司的產品,並且能夠設計到很多產品功能的設計。如果沒有能力進入晶片公司做設計,在這類公司做也是不錯的選擇。這類公司的薪水差別都比較大,有高有低,工作強度不會小。
5. 方案二次開發公司
這類公司普遍的特點就是小,大的也超不過七八十。工作簡單,往往就是修改UI,修改模組,改個語言什麼的。而且與工廠配合密切,這意味著你的工作時間基本上是無法確定的,工廠有訂單,你就得加班,最主要的是,工廠一般週末不休息....薪水不高,個別水平很高的可以做老闆的合夥人,這是唯一比較有誘惑的地方。
6. 有研發能力的公司
這類的公司工廠有很多,有研發能力很強的,不用說如今智慧時代的產品公司非常多,如:華為、中興、樂視、小米、華碩等等自己的產品全部是自己研發,這些和自己開發Solution的方案公司很像,也不過,只是工作時間要長一些,畢竟和工廠打交道。還有剛開始建立研發部門的,這類一般是老闆開工廠賺到錢了,想轉型。後者就比較危險,很多轉型不成功的情況,老闆都會把研發部門裁掉,然後繼續做工廠。技術上來說,前者可以學到很多東西,後者要求有比較好的領悟力和自學能力,畢竟一般沒有人教你。至於薪水,前者還不錯,後者看老闆的魄力,不過後者因為長期僱傭工人,一般不會太捨得錢給一般員工,除非你去了做研發部的頭。