嵌入式小白到大神学习全攻略(学习路线+课程+学习书籍+练习项目)
文章較長(zhǎng),希望耐心閱讀,讀完相信會(huì)對(duì)你的學(xué)習(xí)一定有幫助~
嵌入式工程師需要掌握的內(nèi)容非常廣泛,嵌入式可以說是當(dāng)下最有前途的IT應(yīng)用領(lǐng)域,小到電子詞典、手機(jī),大到航空航天設(shè)備都是典型的嵌入式系統(tǒng),因此,通過嵌入式技術(shù)人才的職業(yè)發(fā)展空間是非常大的。要快速學(xué)習(xí)掌握技術(shù)我們要學(xué)會(huì)抓住重點(diǎn),學(xué)會(huì)取舍,達(dá)到一通百通,事半功倍的學(xué)習(xí)效果。
近幾年,嵌入式系統(tǒng)產(chǎn)品漸漸完善,并在全世界各行業(yè)得到廣泛應(yīng)用。2004年,全球嵌入式系統(tǒng)產(chǎn)品的產(chǎn)值已達(dá)2000億美元,國(guó)內(nèi)嵌入式軟件的產(chǎn)值也達(dá)到600億人民幣。目前,嵌入式系統(tǒng)產(chǎn)品的研制和應(yīng)用已經(jīng)成為我國(guó)信息化帶動(dòng)工業(yè)化、工業(yè)化促進(jìn)信息化發(fā)展的新的國(guó)民經(jīng)濟(jì)增長(zhǎng)點(diǎn)。隨著消費(fèi)家電的智能化,嵌入式更顯重要,像我們平常見到的手機(jī)、PDA、電子字典、可視電話、VCD/DVD/MP3 Player、數(shù)字相機(jī)(DC)、數(shù)字?jǐn)z像機(jī) (DV)、U-Disk、機(jī)頂盒(Set Top Box)、高清電視(HDTV)、游戲機(jī)、智能玩具、交換機(jī)、路由器、數(shù)控設(shè)備或儀表、汽車電子、家電控制系統(tǒng)、醫(yī)療儀器、航天航空設(shè)備等等,都是典型的嵌入式系統(tǒng)。據(jù)預(yù)測(cè),隨著Internet的迅速發(fā)展和廉價(jià)微處理器的出現(xiàn),嵌入式系統(tǒng)將在日常生活里形成更大的應(yīng)用領(lǐng)域。
嵌入式軟件工程師學(xué)習(xí)路線詳解及書籍推薦:
一、嵌入式軟件編程的基礎(chǔ)
這一階段重點(diǎn)打好嵌入式軟件編程的基礎(chǔ),包括學(xué)習(xí)Linux系統(tǒng)的基本應(yīng)用,Linux的常用命令、C語言編程基礎(chǔ)、常用的數(shù)據(jù)結(jié)構(gòu)。
特別是C語言中對(duì)指針的理解和應(yīng)用。這一階段的主要目的是學(xué)習(xí)編程語言、開發(fā)環(huán)境、和培養(yǎng)自己的編程思維,為進(jìn)一步學(xué)習(xí)嵌入式開發(fā)打下良好的基礎(chǔ)。 必學(xué)內(nèi)容有:Linux Ubuntu操作系統(tǒng)安裝、使用、Linux常用命令、samba服務(wù)器、SSH遠(yuǎn)程登錄GCC編譯器、GDB調(diào)試器、VI編輯器
1、嵌入式C語言高級(jí)編程
1、C數(shù)據(jù)類型、控制語句
2、C程序結(jié)構(gòu)設(shè)計(jì)、數(shù)組、函數(shù)、預(yù)處理:
3、指針及字符串操作
4、結(jié)構(gòu)體、共用體、宏、枚舉
5、文件I/O操作
推薦的嵌入式學(xué)習(xí)書籍:
《C程序設(shè)計(jì)語言》
《C語言核心技術(shù)》
《數(shù)據(jù)結(jié)構(gòu)與算法分析--C語言描述》
《C和指針》
《C陷阱與缺陷》
《C++ Primer》
二、嵌入式設(shè)備及GUI開發(fā)
操作系統(tǒng)的嵌入式系統(tǒng)的構(gòu)建,包括系統(tǒng)的啟動(dòng)流程熟悉使用。編寫嵌入式環(huán)境配置與開發(fā)工具學(xué)習(xí)。這一階段的主要目的是掌握帶有操作系統(tǒng)的嵌入式系統(tǒng)的構(gòu)建和燒寫過程,以及對(duì)嵌入式系統(tǒng)軟件的總體構(gòu)成有個(gè)整體認(rèn)識(shí),為我們接下來學(xué)習(xí)嵌入式應(yīng)用和驅(qū)動(dòng)開發(fā)打下堅(jiān)實(shí)的基礎(chǔ)。
1、Linux下項(xiàng)目管理工具M(jìn)ake以及Makefile工作原理及其編寫
2、Linux下shell腳本相關(guān)知識(shí)及其編寫
3、嵌入式開發(fā)環(huán)境的基本概念及其搭建
4、A53開發(fā)板介紹、設(shè)備使用、A53開發(fā)板與電腦通信、交叉編譯
GUI圖形界面開發(fā)
1、常用控件——button、label、text edit等
2、常用布局方式——水平布局、垂直布局、固定布局、網(wǎng)格布局、相對(duì)布局等
3、常用事件及信號(hào)處理技術(shù)——信息回調(diào)、鼠標(biāo)、鍵盤事件等
4、時(shí)間編程、數(shù)據(jù)存儲(chǔ)、繪圖機(jī)制、定時(shí)器處理、多任務(wù)處理等
這一階段推薦的嵌入式學(xué)習(xí)書籍:
1、《Linux與Unix Shell 編程指南》
2、《嵌入式Linux應(yīng)用程序開發(fā)詳解》
三、嵌入式Linux高級(jí)程序設(shè)計(jì)
這一階段主要學(xué)習(xí)上層的嵌入式Linux應(yīng)用程序開發(fā),包括基于Linux多進(jìn)程、多線程、網(wǎng)絡(luò)、文件與目錄和QT編程。掌握嵌入式Linux環(huán)境下應(yīng)用程序開發(fā)技術(shù)。嵌入式Linux系統(tǒng)編程。
1、Linux系統(tǒng)調(diào)用概念
2、進(jìn)程相關(guān)概念、多進(jìn)程實(shí)現(xiàn)多任務(wù)開發(fā)
3、進(jìn)程間通信:無名管道、命名管道、信號(hào)、消息隊(duì)列、共享內(nèi)存等
4、多線程實(shí)現(xiàn)多任務(wù)開發(fā)
5、多任務(wù)的同步互斥開發(fā):互斥鎖、信號(hào)量
四、Linux高級(jí)網(wǎng)絡(luò)程序設(shè)計(jì)
Linux高級(jí)網(wǎng)絡(luò)編程
1、網(wǎng)絡(luò)相關(guān)概念及網(wǎng)絡(luò)發(fā)展
2、TCP/IP協(xié)議
3、socket編程、TCP網(wǎng)絡(luò)編程、UDP網(wǎng)絡(luò)編程、Web編程開發(fā)等
4、Linux網(wǎng)絡(luò)應(yīng)用程序開發(fā),Linux網(wǎng)絡(luò)編程相關(guān)API
5、TCP協(xié)議服務(wù)器的編程方法和并發(fā)服務(wù)器的實(shí)現(xiàn)
6、HTTP協(xié)議及其實(shí)現(xiàn)方法,熟悉UDP廣播、多播的原理及編程方法,掌握混合C/S架構(gòu)網(wǎng)絡(luò)通信系統(tǒng)的設(shè)計(jì)
7、IPv6與IPv4協(xié)議,及其編程接口
8、網(wǎng)絡(luò)數(shù)據(jù)通信過程
9、網(wǎng)絡(luò)原始套接字概念及編程接口
這一階段推薦的書籍:
《UNIX環(huán)境高級(jí)編程》
《Unix網(wǎng)絡(luò)編程》
《Qt Creator快速入門》
《精通Qt4編程》
《Linux設(shè)備驅(qū)動(dòng)程序》
《Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解》
五、數(shù)據(jù)庫開發(fā)
1、數(shù)據(jù)庫概念、數(shù)據(jù)庫類型、常見數(shù)據(jù)庫
2、SQLite數(shù)據(jù)庫介紹及其安裝與移植
3、SQL數(shù)據(jù)庫語言( 數(shù)據(jù)定義語言(DDL)、數(shù)據(jù)操作語言(DML)、數(shù)據(jù)查詢語言(DQL)、數(shù)據(jù)控制語言(DCL) )
4、sqlite數(shù)據(jù)庫C語言編程中的各種SQL指令執(zhí)行函數(shù)完成對(duì)數(shù)據(jù)庫的控制。
六、C++面向?qū)ο蟾呒?jí)語言程序設(shè)計(jì)
C++語言高級(jí)語言開發(fā)
1.熟悉面向?qū)ο蟮恼Z言概述
2.熟練掌握c++語言的基本知識(shí)和類與對(duì)象及其高級(jí)應(yīng)用
3、作用域運(yùn)算符、內(nèi)聯(lián)函數(shù)、強(qiáng)制類型轉(zhuǎn)換
4、new、delete內(nèi)存管理
5、對(duì)象成員、成員函數(shù)
6、構(gòu)造函數(shù)、析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、函數(shù)重載
7、對(duì)象數(shù)組、this指針、枚舉、
8、靜態(tài)成員、靜態(tài)成員函數(shù)
9、對(duì)象成員
10、友元
11、封裝、繼承、多繼承、多態(tài)
12、虛函數(shù)、純虛函數(shù)、抽象類、虛析構(gòu)函數(shù) 等
七、物聯(lián)網(wǎng)開發(fā)
1、了解物聯(lián)網(wǎng)、泛在網(wǎng)、互聯(lián)網(wǎng)基本要領(lǐng)及其關(guān)系
2、熟悉RFID從低頻段到高頻段的基本工作原理,以及RFID標(biāo)簽的種類與行業(yè)應(yīng)用,讀卡器原理與通信過程
3、熟悉TI的cc2530的基本應(yīng)用,包含基本硬件資源,協(xié)議棧相關(guān)接口使用,以及點(diǎn)對(duì)點(diǎn)通信、星形通信、廣播通信、綁定通信,三種網(wǎng)絡(luò)結(jié)構(gòu)star、tree、mesh,掌握zibgee相關(guān)微控制處理芯片
4、了解zigbe協(xié)議棧組成,以及zigbee在通信、組網(wǎng)、搖控等領(lǐng)域的不同應(yīng)用
5、通過Bluetooth、wifi和zigbee技術(shù)對(duì)比各自的優(yōu)缺點(diǎn),并重點(diǎn)介紹zigbee的各種應(yīng)用
6、掌握溫度、濕度、光照、PH值、二氧化碳等傳感器的工作原理及通信接口
7、了解NB-IOT基本概念及移運(yùn)BC95模塊
8、熟悉CoAP協(xié)議在NB-IOT中的應(yīng)用
9、掌握常用AT指定集
嵌入式技術(shù)關(guān)鍵在于理論和實(shí)踐的結(jié)合,要能夠?qū)W以致用,完成了以上的所有階段的知識(shí)點(diǎn)學(xué)習(xí)后,到底有沒有學(xué)會(huì),會(huì)不會(huì)用,能不能應(yīng)用所學(xué)知識(shí)來解決實(shí)際開發(fā)中的問題,我們需要來完成一個(gè)綜合的嵌入式實(shí)訓(xùn)項(xiàng)目,例如:
項(xiàng)目一:智能家居項(xiàng)目
本項(xiàng)目實(shí)現(xiàn)設(shè)備的本地控制與遠(yuǎn)程控制,對(duì)開關(guān)量設(shè)備,能夠?qū)崿F(xiàn)信息采集類設(shè)備的控制如溫濕度,能夠?qū)崿F(xiàn)監(jiān)控類設(shè)備的控制如視頻監(jiān)控,安全系統(tǒng)如外人***能夠自動(dòng)通過GPRS報(bào)警。項(xiàng)目涉及技術(shù)c語言、多任務(wù)開發(fā)、網(wǎng)絡(luò)socket開發(fā)、boa網(wǎng)絡(luò)服務(wù)器、CGI編程、html網(wǎng)頁設(shè)計(jì)等
項(xiàng)目二:智能人臉識(shí)別項(xiàng)目
本項(xiàng)目首先通過opencv庫的使用來實(shí)現(xiàn)人臉基本訓(xùn)練模型檢測(cè)、再深入學(xué)習(xí)通過人臉識(shí)別以及實(shí)時(shí)抓取圖像分析并識(shí)別,了解認(rèn)識(shí)opencv、dlib等開源工具
項(xiàng)目三:RFID智能門禁項(xiàng)目
本項(xiàng)目實(shí)現(xiàn)RFID卡識(shí)別,用戶信息注冊(cè)、修改、刪除、語音播報(bào)提示可按不同的查詢條件查詢,可實(shí)現(xiàn)考勤
項(xiàng)目四:多媒體播放器項(xiàng)目
實(shí)現(xiàn)帶有圖形界面的音樂播放、暫停、上一曲、下一曲、歌曲列表歌詞同步等播放器功能,涉及到的知識(shí)點(diǎn)有c語言、數(shù)據(jù)結(jié)構(gòu)鏈表、Linux多進(jìn)程、多線程、進(jìn)程間通信、同步互斥等
項(xiàng)目五:智能手機(jī)設(shè)計(jì)項(xiàng)目
本項(xiàng)目能夠?qū)崿F(xiàn)智能手機(jī)接打電話、來電顯示、收發(fā)中英文短信,查看短信、信號(hào)強(qiáng)度檢測(cè)、運(yùn)營(yíng)商檢測(cè)。項(xiàng)目涉及到的技術(shù)GPRS AT指令集、Linux多進(jìn)程、多線程、進(jìn)程間通信、同步互斥、GUI圖形開發(fā)等
項(xiàng)目六:智慧教室項(xiàng)目
本項(xiàng)目可通過NB-IOT等標(biāo)準(zhǔn)物聯(lián)網(wǎng)通信協(xié)議是實(shí)現(xiàn)現(xiàn)代化資源統(tǒng)籌管理,基本功能是實(shí)現(xiàn)教室燈控、空調(diào)、通風(fēng)、窗簾、門禁、人流等實(shí)時(shí)遠(yuǎn)程監(jiān)控,以實(shí)現(xiàn)聯(lián)動(dòng)、手動(dòng)控制和數(shù)據(jù)采集分析
這些項(xiàng)目都綜合應(yīng)用了嵌入式開發(fā)當(dāng)中的應(yīng)用,驅(qū)動(dòng)和QT開發(fā)技術(shù)。以上就是我建議的比較系統(tǒng)的嵌入式學(xué)習(xí)路線。系統(tǒng)學(xué)習(xí)并能靈活應(yīng)用以上知識(shí)后,嵌入式基本上就算入門了,具備企業(yè)項(xiàng)目的嵌入式研發(fā)能力了,這時(shí)候去應(yīng)聘企業(yè)的嵌入式研發(fā)工程師崗位就不會(huì)有什么問題了。
轉(zhuǎn)載于:https://blog.51cto.com/14071672/2317486
總結(jié)
以上是生活随笔為你收集整理的嵌入式小白到大神学习全攻略(学习路线+课程+学习书籍+练习项目)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu 编译安装python3.7
- 下一篇: 面向对象第七章,内存的管理,面向对象三大