零基礎(chǔ)學(xué)嵌入式的課程有哪些
時間:2019-11-29 00:00:00
來源:信盈達
作者:信盈達
隨著現(xiàn)在智能家居產(chǎn)品的出現(xiàn),很多人想轉(zhuǎn)過來,可是一點基礎(chǔ)都沒有,怎么辦呢?如果你圍繞“嵌入式開發(fā)學(xué)習(xí)路線”搜一搜,很多答案都是“數(shù)字電路、計算機組成原理、嵌入式微處理器結(jié)構(gòu)、匯編語言……”好吧,想要學(xué)完這些課程,我覺得你得重上一次大學(xué)了。
很多人都是從事互聯(lián)網(wǎng)的行業(yè),現(xiàn)在感覺智能家居是以后的發(fā)展方向,無論是從軟件開發(fā)轉(zhuǎn)入還是零基礎(chǔ)轉(zhuǎn)入嵌入式開發(fā),都有一個共同的特點,能利用的學(xué)習(xí)時間都很有限。制定的策略是先切入嵌入式軟件這一行當(dāng),等到了工作崗位再根據(jù)需要深入學(xué)習(xí),所以建議他只學(xué)習(xí)最少必要知識,快速入門就行而不是快速精通。
1. 掌握C語言
看書、看視頻學(xué)習(xí)都可以。不過我建議還是買一本教材認(rèn)真閱讀,反復(fù)上機實踐。我推薦的教材是《C Primer Plus》這里是C不是C++。對于嵌入式軟件程序員,用得最多的是指針、數(shù)組、結(jié)構(gòu)體、位操作等,這些知識一定要熟練掌握。
2. 學(xué)習(xí)基本數(shù)據(jù)結(jié)構(gòu)
往往我們聽到說是做程序員很少用到算法啊,數(shù)據(jù)結(jié)構(gòu)之類的東西,那是因為PHP,Java這類都是高級語言,主要負(fù)責(zé)的是軟件層的程序編寫,而嵌入式開發(fā)就需要軟硬結(jié)合了。在這里因為是入門,所以數(shù)據(jù)結(jié)構(gòu)這塊不用買來一本很厚的書從頭啃到尾,這樣只會中途放棄。建議掌握最基本的鏈表、棧、隊列就可以。等真正入門后可以再回來系統(tǒng)的基礎(chǔ)的學(xué)習(xí)。
3. 選擇一款開發(fā)板
選購開發(fā)板應(yīng)以“適合”為原則,沒有必要追隨最新的處理器。在處理器的選擇上,主要分為兩種,一種是以ARM Cortex-A為核心(可以移植Linux),這種處理器主要應(yīng)用于消費電子;一種是以ARM Cortex-M為核心(跑不了Linux,但是可以跑實時操作系統(tǒng)),這種處理器主要應(yīng)用于工控領(lǐng)域,取代了之前的8位、16位單片機。不管選擇誰家的板子,除了板子,豐富的學(xué)習(xí)資料是必不可少的。對于初學(xué)者,一定要有源碼有視頻。如果有論壇、有人答疑就更完美了。
4. 學(xué)習(xí)裸板開發(fā)
跟著視頻和源碼來學(xué)習(xí),一定要動手實踐,非常建議寫博客總結(jié)。學(xué)完這一步,一只腳就跨入嵌入式軟件開發(fā)大門了。不要驚訝,覺得還沒學(xué)什么就可以搞
嵌入式軟件開發(fā)了??墒聦嵣暇褪沁@樣。到了工作崗位上邊干邊學(xué),這樣進步最快,難道不是嗎?
5. 學(xué)習(xí)操作系統(tǒng)的移植
對于零基礎(chǔ)的,可以移植一款RTOS(實時操作系統(tǒng)),比如?C/OSⅡ或Ⅲ;基礎(chǔ)好的可以學(xué)習(xí)移植Linux。
這里要指出一個誤區(qū),有人說ARM開發(fā)板不跑Linux簡直是浪費,有人說離開了Linux的嵌入式是沒有深度的,還有人說RTOS太簡單了,沒啥可學(xué)的……對于這些說法,太片面,往往會誤導(dǎo)初學(xué)者。畢竟初學(xué)者是需要一步一步成長的,不要剛一開始就用深度的技術(shù)問題要求和衡量。零基礎(chǔ)學(xué)嵌入式的課程有哪些
第一,不是每個企業(yè)都有“ARM+Linux”的需求。對于做工控產(chǎn)品的企業(yè),很少用Linux,有時候就是裸奔,功能復(fù)雜的話加一個RTOS足矣。例如WIFI芯片和藍牙芯片,不管是WIFI協(xié)議棧還是藍牙協(xié)議棧,代碼量都在10萬行以上,在硬件上都是用Cortex-M3的核,最多跑一個RTOS,Linux根本用不上。零基礎(chǔ)學(xué)嵌入式的課程有哪些
第二,對于從來沒有接觸過開發(fā)板的人,一上來就移植Linux,學(xué)Linux驅(qū)動,難度實在是太大,很有可能被博大精深的Linux內(nèi)核淹沒而放棄,最后再來一句“我不適合搞嵌入式”,從此徹底無緣嵌入式軟件開發(fā),所以自信也需要逐步建立。
并不是說Linux不重要。相反,Linux很重要,恰恰是嵌入式軟件工程師的核心競爭力。但是對于初學(xué)者,不要一上來就給自己定下那么大的目標(biāo),如果先通過?C/OSⅡ或Ⅲ的學(xué)習(xí)來打基礎(chǔ),再去學(xué)習(xí)Linux就會有事半功倍的效果。零基礎(chǔ)學(xué)嵌入式的課程有哪些
6. 有自己的小作品
既然已經(jīng)學(xué)會了裸板開發(fā)和操作系統(tǒng)移植,你肯定有做東西的想法了,那就結(jié)合生活實際做點東西吧。比如做一個家用防盜報警裝置,當(dāng)檢測到有人進來,立刻給不在家的你撥打電話。這時候你會發(fā)現(xiàn),圍繞著需求還有很多東西要學(xué),比如如何驅(qū)動紅外傳感器模塊(用來檢測有人靠近),如何驅(qū)動GSM模塊(用來撥打電話)。獨立完成一些小作品不僅能大大提高你的知識熟練度和解決問題的能力,也會使你在面試的時候有話可說。