當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > 如何從零開始學(xué)習(xí)嵌入式
在討論學(xué)習(xí)嵌入式之前,首先需要明確何為嵌入式,嵌入式即嵌入式系統(tǒng),IEEE(美國電氣和電子工程師協(xié)會)對其定義是用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置,嵌入式是一種專用的計算機(jī)系統(tǒng),一般指非PC系統(tǒng),它包括硬件和軟件兩部分。硬件包括處理器/微處理器、存儲器及外設(shè)器件和I/O端口、圖形控制器等。軟件部分包括操作系統(tǒng)軟件和應(yīng)用程序編程。
對于零基礎(chǔ)學(xué)習(xí)嵌入式的同學(xué),建議可以看一下有關(guān)計算機(jī)操作系統(tǒng)工作原理以及計算機(jī)組成原理等方面的專業(yè)書籍。如果需要快速入門的同學(xué),可以直接學(xué)習(xí)軟件基礎(chǔ),比如C語言,匯編語言,熟悉linux操作系統(tǒng)。先對于進(jìn)程、線程、任務(wù)調(diào)度、總線、I/O等基本概念及工作原理有一個初步的了解和掌握,這部分知識的準(zhǔn)備對于后續(xù)更好地學(xué)習(xí)嵌入式Linux系統(tǒng)開發(fā)將會起到很好的幫助作用。
嵌入式系統(tǒng)分為硬件層、驅(qū)動層、操作系統(tǒng)層和應(yīng)用層四個層次,關(guān)于硬件層,是整個嵌入式系統(tǒng)的根本,如果對于單片機(jī)及接口這塊很熟悉,并且能用C和匯編語言來編程的話,從嵌入式系統(tǒng)的硬件層走起來相對容易,硬件層也是驅(qū)動層的基礎(chǔ);硬件層需要掌握的專業(yè)基礎(chǔ)知識有,單片機(jī)原理及接口技術(shù)、微機(jī)原理及接口技術(shù)、C語言。
驅(qū)動層就比較難了,需要看懂電路圖還要能對操作系統(tǒng)內(nèi)核十分的精通,以便其所寫的驅(qū)動程序在系統(tǒng)調(diào)用時,不會獨占操作系統(tǒng)時間片,而導(dǎo)致其它任務(wù)不能動行,嵌入式的驅(qū)動層比較適合于電子、通信、自動化、機(jī)電一體、信息工程類專業(yè)尤其是計算機(jī)偏體系結(jié)構(gòu)類專業(yè)的人來搞,除硬件層所具備的基礎(chǔ)學(xué)科外,還要對數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)原理、編譯原理都要十分精通了解。
操作系統(tǒng)層,對于操作系統(tǒng)層目前可能只能說是簡單的移植,操作系統(tǒng)是負(fù)責(zé)系統(tǒng)任務(wù)的調(diào)試、磁盤和文件的管理。
應(yīng)用層,相對來講較為容易的,如果會在windows下如何進(jìn)行編程接口函數(shù)調(diào)用,到操作系統(tǒng)下只是編譯和開發(fā)環(huán)境有相應(yīng)的變化而已。需要掌握基礎(chǔ)算法,數(shù)據(jù)庫、基于嵌入式系統(tǒng)的網(wǎng)絡(luò)編程和基于某此應(yīng)用層面的協(xié)議應(yīng)用開發(fā),如MQTT等。
基于以上的介紹,對應(yīng)于嵌入式各個層次的技術(shù)要求也不同,嵌入式的第一階段建議大家學(xué)習(xí)Linux操作系統(tǒng)的使用,精通使用C/C++語言編程;第二階段 精通嵌入式Linux下的程序設(shè)計,了解ARM體系結(jié)構(gòu)和編程,掌握bootloader和kernel的移植技能和嵌入式Linux開發(fā)技術(shù),第三階段掌握嵌入式Linux驅(qū)動開發(fā),掌握Qt應(yīng)用開發(fā)、系統(tǒng)開發(fā)。
當(dāng)然了,學(xué)習(xí)完理論,也需要結(jié)合實際的開發(fā)項目,并多加實踐,循序漸進(jìn)。