如果從應(yīng)用層的應(yīng)用開(kāi)發(fā)出發(fā),建議先熟悉API函數(shù)。如果從應(yīng)用層的界面開(kāi)發(fā)出發(fā),則建議學(xué)習(xí)Qt,WinCE或Android等。
但真實(shí)的嵌入式開(kāi)發(fā),熟悉以上還是遠(yuǎn)遠(yuǎn)不夠的,建議如下學(xué)習(xí)曲線:
第一節(jié)段 熟練使用Linux操作系統(tǒng)
學(xué)習(xí)Linux操作系統(tǒng)的概念和安裝方法,理解Linux下的基本命令、管理配置和編輯器,包括VI編輯器,GCC編譯器,GDB調(diào)試器和 Make 項(xiàng)目管理工具等知識(shí)。
第二階段 精通linux下C語(yǔ)言
通過(guò)大量編程實(shí)例重點(diǎn)學(xué)習(xí)C語(yǔ)言的高級(jí)編程知識(shí),包括函數(shù)與程序結(jié)構(gòu)、指針、數(shù)組、常用算法、庫(kù)函數(shù)的使用等知識(shí),另外,還要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)內(nèi)容,包括鏈表、隊(duì)列、棧、樹(shù)、哈希表、圖等內(nèi)容。
第三階段 嵌入式Linux應(yīng)用編程
精通嵌入式Linux下的程序設(shè)計(jì),精通嵌入式Linux開(kāi)發(fā)環(huán)境,強(qiáng)化對(duì)Linux應(yīng)用開(kāi)發(fā)的理解和編碼調(diào)試的能力,包括系統(tǒng)編程、文件I/O、多進(jìn)程和多線程、網(wǎng)絡(luò)編程、GUI圖形界面編程、數(shù)據(jù)庫(kù)。
第四階段 嵌入式入門(mén)階段-ARM體系結(jié)構(gòu)
ARM處理器體系結(jié)構(gòu)、編程環(huán)境、指令集、尋址方式、調(diào)試、匯編和混合編程。ARM的常用接口開(kāi)發(fā)及硬件電路設(shè)計(jì)基礎(chǔ)(包括IO、串口、看門(mén)狗、實(shí)時(shí)時(shí)鐘、SPI、IIC、掃描鍵盤(pán)、FLASH操作等),為以后的設(shè)備驅(qū)動(dòng)的學(xué)習(xí)打好基礎(chǔ)。
第五階段 嵌入式高級(jí)階段-Linux內(nèi)核和驅(qū)動(dòng)開(kāi)發(fā)
深入內(nèi)核細(xì)節(jié),了解Linux相關(guān)運(yùn)行機(jī)理,為后面的驅(qū)動(dòng)開(kāi)發(fā)打好理論基礎(chǔ),內(nèi)容包括內(nèi)核源碼結(jié)構(gòu)、內(nèi)存管理、進(jìn)程管理、中斷管理、系統(tǒng)調(diào)用、內(nèi)核同步、時(shí)鐘和定時(shí)器管理、信號(hào)、調(diào)度、進(jìn)程間通信、文件系統(tǒng)和I/O設(shè)備管理等方面的內(nèi)容。
第六階段 嵌入式硬件開(kāi)發(fā)(學(xué)軟件的可以不學(xué),但了解硬件對(duì)學(xué)嵌入式軟件有更深入的了解,尤其對(duì)系統(tǒng)的理解更深入。)
內(nèi)容包括單片機(jī)的學(xué)習(xí),電路分析和電路的原理,PCB設(shè)計(jì),主要包括Altium Designed,電子設(shè)計(jì)基礎(chǔ)知識(shí),原理圖初步設(shè)計(jì),進(jìn)階,提高,深入,pcb庫(kù)的設(shè)計(jì),集成庫(kù)的作用和制作,pcb設(shè)計(jì)初步,PCB設(shè)計(jì)提高,PCB深入,對(duì)FPGA和CPLD系統(tǒng)的相關(guān)基礎(chǔ)概念等
第七階段 嵌入式深入階段
變成高手,你還要進(jìn)一步學(xué)習(xí)內(nèi)核和系統(tǒng),內(nèi)容包括計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)和匯編,linux內(nèi)核編程,linux內(nèi)核的基礎(chǔ)知識(shí),匯編及保護(hù)模式,linux內(nèi)核體系結(jié)構(gòu),linux引導(dǎo)程序分析,linux內(nèi)核代碼分析,linux塊設(shè)備驅(qū)動(dòng)程序分析等
第八階段 實(shí)踐階段
其實(shí)就是循序漸進(jìn),先學(xué)好基礎(chǔ)理論知識(shí),然后動(dòng)手試驗(yàn),最后總結(jié)試驗(yàn)結(jié)果,驗(yàn)證所學(xué)知識(shí)并積累經(jīng)驗(yàn)
最近在工作上,給做算法的兄弟介紹系統(tǒng)工程師的作用,沒(méi)有講明白,大家看看是不是我理解錯(cuò)了?我的講解:
系統(tǒng)工程師是研究系統(tǒng)的,系統(tǒng)很復(fù)雜,但是他理解的系統(tǒng)工程師搞得很雜,沒(méi)有深度,就是打雜的,我卻不知如何解釋。
例如:
1. 想實(shí)現(xiàn)一個(gè)10ms定時(shí)讀取某個(gè)傳感器的數(shù)值的問(wèn)題,怎么判斷是否能夠達(dá)成?
需要考慮系統(tǒng)響應(yīng)時(shí)間,調(diào)度機(jī)制,各種信號(hào)的影響,內(nèi)存分配等原理,信號(hào)量原理,中斷相應(yīng),系統(tǒng)調(diào)用原理等......
2. nuttx中timer是用signal實(shí)現(xiàn)的,請(qǐng)問(wèn)可以改成中斷方式嗎?一個(gè)進(jìn)程發(fā)送了signal,另外一個(gè)進(jìn)程立刻會(huì)響應(yīng)嗎?signal底層實(shí)現(xiàn)機(jī)制是什么?
3. 系統(tǒng)能否滿足要求?例如,5ms控制精度能達(dá)到否?涉及到系統(tǒng)調(diào)度,優(yōu)先級(jí),中斷響應(yīng)時(shí)間等等......,多任務(wù)切換......., IO性能,計(jì)算瓶頸等
-
嵌入式
+關(guān)注
關(guān)注
5086文章
19143瀏覽量
306094 -
Linux
+關(guān)注
關(guān)注
87文章
11319瀏覽量
209830
原文標(biāo)題:搞嵌入式應(yīng)用層開(kāi)發(fā)要學(xué)習(xí)什么?看這里
文章出處:【微信號(hào):weixin21ic,微信公眾號(hào):21ic電子網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論