非常有前途。
嵌入式單片機(jī),即嵌入式微控制器,指以微控制器為核心控制單元的嵌入到對(duì)象體系中的專用計(jì)算機(jī)系統(tǒng),是應(yīng)用十分廣泛的一種嵌入式系統(tǒng)結(jié)構(gòu)。無(wú)論是嵌入式系統(tǒng)還是單片機(jī)都是長(zhǎng)時(shí)間以來(lái)科技領(lǐng)域大家關(guān)注的焦點(diǎn),也是推動(dòng)科技發(fā)展、提高生活水平的科技產(chǎn)品。嵌入式單片機(jī)即指以微控制器為核心的嵌入式系統(tǒng)。
在物聯(lián)網(wǎng)時(shí)代,智能硬件都離不開(kāi)嵌入式。
單片機(jī)單片機(jī),即微控制器(Microcontroller),是將微型計(jì)算機(jī)的主要部分集成在一個(gè)芯片上的單芯片微型計(jì)算機(jī)。嵌入式單片機(jī)
嵌入式單片機(jī)本質(zhì)上是單片機(jī),即用于嵌入式系統(tǒng)的單片機(jī)。
由于嵌入式系統(tǒng)最大、最廣、最底層的應(yīng)用是傳統(tǒng)電子技術(shù)領(lǐng)域的智能化改造,因此,以通曉對(duì)象專業(yè)的電子技術(shù)隊(duì)伍為主,用最少的嵌入式系統(tǒng)軟、硬件開(kāi)銷,以8位機(jī)為主,帶有濃重的電子系統(tǒng)設(shè)計(jì)色彩的電子系統(tǒng)應(yīng)用模式會(huì)長(zhǎng)期存在下去。另外,計(jì)算機(jī)專業(yè)人士會(huì)愈來(lái)愈多地介入嵌入式系統(tǒng)應(yīng)用,但囿于對(duì)象專業(yè)知識(shí)的隔閡,其應(yīng)用領(lǐng)域會(huì)集中在網(wǎng)絡(luò)、通信、多媒體、商務(wù)電子等方面,不可能替代原來(lái)電子工程師在控制、儀器儀表、機(jī)械電子等方面的嵌入式應(yīng)用。因此,客觀存在的兩種應(yīng)用模式會(huì)長(zhǎng)期并存下去,在不同的領(lǐng)域中相互補(bǔ)充。電子系統(tǒng)設(shè)計(jì)模式應(yīng)從計(jì)算機(jī)應(yīng)用設(shè)計(jì)模式中,學(xué)習(xí)計(jì)算機(jī)工程方法和嵌入式系統(tǒng)軟件技術(shù);計(jì)算機(jī)應(yīng)用設(shè)計(jì)模式應(yīng)從電子系統(tǒng)設(shè)計(jì)模式中,了解嵌入式系統(tǒng)應(yīng)用的電路系統(tǒng)特性、基本的外圍電路設(shè)計(jì)方法和對(duì)象系統(tǒng)的基本要求等。那么學(xué)習(xí)嵌入式單片機(jī)如何開(kāi)始呢?
1、打好嵌入式軟件編程的基礎(chǔ)
特別是C語(yǔ)言中對(duì)指針的理解和應(yīng)用。這一階段的主要目的是學(xué)習(xí)編程語(yǔ)言、開(kāi)發(fā)環(huán)境、和培養(yǎng)自己的編程思維,為進(jìn)一步學(xué)習(xí)嵌入式開(kāi)發(fā)打下良好的基礎(chǔ)。這一階段推薦的嵌入式學(xué)習(xí)書籍如下:《C程序設(shè)計(jì)語(yǔ)言》,《C語(yǔ)言核心技術(shù)》,《數(shù)據(jù)結(jié)構(gòu)與算法分析--C語(yǔ)言描述》,《C和指針》,《C陷阱與缺陷》,《C++Primer》,作為嵌入式軟件工程師還要有一定的數(shù)字電路及模擬電路基礎(chǔ)
2、學(xué)習(xí)ARM體系結(jié)構(gòu)編程
這一階段才是真正的嵌入式編程,首先我們要選擇一款嵌入式CPU和一款嵌入式開(kāi)發(fā)平臺(tái),目前ARM嵌入式CPU應(yīng)用最廣泛,這一階段重點(diǎn)是學(xué)習(xí)嵌入式CPU的裸機(jī)編程,熟悉中斷、定時(shí)器、串口、NANDFLASH、網(wǎng)絡(luò)控制器、LCD屏、觸摸屏等常用嵌入式外圍設(shè)備的硬件工作原理,以及如何使用C語(yǔ)言來(lái)編程、控制這些硬件。這一階段除了要學(xué)習(xí)對(duì)硬件編程之外,還需要學(xué)習(xí)嵌入式硬件的知識(shí),但是對(duì)于嵌入式軟件工程師來(lái)講,重點(diǎn)是學(xué)習(xí)硬件的工作原理,在掌握硬件工作原理的基礎(chǔ)上,對(duì)硬件進(jìn)行編程控制。這和硬件工程師學(xué)習(xí)的側(cè)重點(diǎn)有所不同。這一階段對(duì)應(yīng)的學(xué)校的課程主要包括模擬電路、數(shù)字電路、微機(jī)原理和單片機(jī)。這一階段重點(diǎn)是要看CPU的芯片手冊(cè),大部分的參考書也是對(duì)芯片手冊(cè)的翻譯。推薦的參考書籍如下:《ARM嵌入式系統(tǒng)開(kāi)發(fā)--
軟件設(shè)計(jì)與優(yōu)化》,《ARM處理器開(kāi)發(fā)詳解基于ARMCortex-A8處理器的開(kāi)發(fā)設(shè)計(jì)》
3、學(xué)習(xí)嵌入式系統(tǒng)的構(gòu)建
這一階段主要學(xué)習(xí)帶有操作系統(tǒng)的嵌入式系統(tǒng)的構(gòu)建,包括系統(tǒng)的啟動(dòng)流程、Bootloader的工作流程、UBOOT的編譯、裁剪與移植、嵌入式Linux內(nèi)核的裁剪、移植與編譯,嵌入式根文件系統(tǒng)的定制、BootLoader、內(nèi)核和根文件系統(tǒng)的燒寫。這一階段的主要目的是掌握帶有操作系統(tǒng)的嵌入式系統(tǒng)的構(gòu)建和燒寫過(guò)程,以及對(duì)嵌入式系統(tǒng)軟件的總體構(gòu)成有個(gè)整體認(rèn)識(shí),為我們接下來(lái)學(xué)習(xí)嵌入式應(yīng)用和驅(qū)動(dòng)開(kāi)發(fā)打下堅(jiān)實(shí)的基礎(chǔ)。這一階段推薦的書籍如下:《構(gòu)建嵌入式Linux核心軟件系統(tǒng)實(shí)戰(zhàn)》
4、學(xué)習(xí)嵌入式Linux應(yīng)用程序開(kāi)發(fā)
這一階段主要學(xué)習(xí)上層的嵌入式Linux應(yīng)用程序開(kāi)發(fā),包括基于Linux多進(jìn)程、多線程、網(wǎng)絡(luò)、文件與目錄和QT編程。掌握嵌入式Linux環(huán)境下應(yīng)用程序開(kāi)發(fā)技術(shù)。這一階段推薦的書籍有:《UNIX環(huán)境高級(jí)編程》,《Unix網(wǎng)絡(luò)編程》,《QtCreator快速入門》,《精通Qt4編程》
5、學(xué)習(xí)嵌入式Linux驅(qū)動(dòng)程序開(kāi)發(fā)、
這一階段主要學(xué)習(xí)底層嵌入式Linux設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)設(shè)計(jì),包括常用的字符設(shè)備驅(qū)動(dòng)、塊設(shè)備驅(qū)動(dòng)、LCD設(shè)備驅(qū)動(dòng)、觸摸屏設(shè)備驅(qū)動(dòng)以及驅(qū)動(dòng)程序開(kāi)發(fā)中的核心技術(shù)。這一階段推薦的參考書籍有:《Linux設(shè)備驅(qū)動(dòng)程序》,《Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解》
6、完成一個(gè)綜合項(xiàng)目
嵌入式技術(shù)關(guān)鍵在于理論和實(shí)踐的結(jié)合,要能夠?qū)W以致用,完成了以上的所有階段的知識(shí)點(diǎn)學(xué)習(xí)后,到底有沒(méi)有學(xué)會(huì),會(huì)不會(huì)用,能不能應(yīng)用所學(xué)知識(shí)來(lái)解決實(shí)際開(kāi)發(fā)中的問(wèn)題,我們需要來(lái)完成一個(gè)綜合的嵌入式實(shí)訓(xùn)項(xiàng)目,例如:基于嵌入式Linux平臺(tái)實(shí)現(xiàn)的飛行器、基于嵌入式Linux平臺(tái)實(shí)現(xiàn)的智能機(jī)器人等,這些項(xiàng)目都綜合應(yīng)用了嵌入式開(kāi)發(fā)當(dāng)中的應(yīng)用,驅(qū)動(dòng)和QT開(kāi)發(fā)技術(shù)。