嵌入式學(xué)習(xí)是一個(gè)循序漸進(jìn)的過(guò)程,如果是希望向嵌入式軟件方向發(fā)展的話,目前最常見的是嵌入式Linux方向,關(guān)注這個(gè)方向,信盈達(dá)工程師認(rèn)為大概分3個(gè)階段:
(1) 嵌入式Linux上層應(yīng)用,包括QT的GUI開發(fā)
(2) 嵌入式Linux系統(tǒng)開發(fā)
(3) 嵌入式Linux驅(qū)動(dòng)
嵌入式目前主要面向的幾個(gè)操作系統(tǒng)是,Linux,WINCE、VxWorks等等。
Linux是開源免費(fèi)的,而且其源代碼是開放的,更加適合我們學(xué)習(xí)嵌入式。
你可以嘗試以下路線:
(1) C語(yǔ)言是所有編程語(yǔ)言中的強(qiáng)者,單片機(jī)、DSP、類似ARM的種種芯片的編程都可以用C語(yǔ)言搞定),因此必須非常熟練的掌握。
(2) 操作系統(tǒng)原理,是必需的,如果你是計(jì)算機(jī)專業(yè)畢業(yè)那也就無(wú)所謂了,如果是非計(jì)算機(jī)專業(yè)的就必須找一本比較淺顯的計(jì)算機(jī)原理書籍看一看,把啥叫“進(jìn)程”“線程”“系統(tǒng)調(diào)度”等等基本問(wèn)題搞清楚。
(3) Linux操作系統(tǒng)就是用C語(yǔ)言編寫的,所以你也應(yīng)該先學(xué)習(xí)下Linux方面的編程,只有你會(huì)應(yīng)用了,才能近一步去了解其內(nèi)核的精髓。
(4) 了解ARM的架構(gòu),原理,以及其匯編指令,我們?cè)?a href="http://www.nxhydt.com/v/tag/232/" target="_blank">嵌入式開發(fā)中,一般很少去寫匯編,但是最起碼的要求是能夠看懂a(chǎn)rm匯編。
(5) 系統(tǒng)移植的時(shí)候,就需要你從最下層的
bootloader開始,然后內(nèi)核移植,文件系統(tǒng)移植等。而移植這部分對(duì)硬件的依賴是非常大的,其配置步驟也相對(duì)復(fù)雜,也沒(méi)有太多詳細(xì)資料。
(6) 驅(qū)動(dòng)開發(fā)
linux驅(qū)動(dòng)程序設(shè)計(jì)既是個(gè)極富有挑戰(zhàn)性的領(lǐng)域,又是一個(gè)博大精深的內(nèi)容。
linux驅(qū)動(dòng)程序設(shè)計(jì)本質(zhì)是屬于linux內(nèi)核編程范疇的,因而是對(duì)linux內(nèi)核和內(nèi)核編程是有要求的。在學(xué)習(xí)前你要想了解linux內(nèi)核的組成,因?yàn)槊恳徊糠忠敿?xì)研究的話足夠可以擴(kuò)展成一本厚書。
以上只不過(guò)是大概的框架,在實(shí)際的開發(fā)中還會(huì)涉及很多東西,比如:交叉編譯、makefile、shell腳本等等,所以說(shuō)學(xué)習(xí)嵌入式的周期較長(zhǎng),門檻較高,自學(xué)的話更是需要較強(qiáng)的學(xué)習(xí)能力和專業(yè)功底。只要能堅(jiān)持下來(lái)一定會(huì)取得成功!
從事嵌入式軟件開發(fā)的好處是:
(1) 目前國(guó)內(nèi)外這方面的人都很稀缺。這一領(lǐng)域入門門檻較高,所以非專業(yè)IT人員很難切 入這一領(lǐng)域;另一方面,是因?yàn)檫@一領(lǐng)域較新,目前發(fā)展太快,大多數(shù)人無(wú)條件接觸。
(2) 與企業(yè)計(jì)算等應(yīng)用軟件不同,嵌入式領(lǐng)域人才的工作強(qiáng)度通常低一些(但收入不低)。
(3) 哪天若想創(chuàng)業(yè),搞自已的產(chǎn)品,嵌入式不像應(yīng)用軟件那樣容易被盜版。
(4) 興趣所在,這是最主要的。
從事嵌入式軟件開發(fā)的缺點(diǎn)是:
(1) 入門起點(diǎn)較高,所用到的技術(shù)往往都有一定難度,若軟硬件基礎(chǔ)不好,特別是操作系統(tǒng)級(jí)軟件功底不深,則可能不適于此行。
(2) 這方面的企業(yè)數(shù)量要遠(yuǎn)少于企業(yè)計(jì)算類企業(yè)。
(3) 有少數(shù)公司經(jīng)常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。但大多數(shù)公司也并無(wú)此要求,只要有經(jīng)驗(yàn)即可。
(4) 平臺(tái)依托強(qiáng),換平臺(tái)比較辛苦。
學(xué)嵌入式方法步驟:
1、基礎(chǔ)知識(shí)
目的:能看懂硬件工作原理,但重點(diǎn)在嵌入式軟件,特別是操作系統(tǒng)級(jí)軟件,那將是我的優(yōu)勢(shì)。
科目:數(shù)字電路、計(jì)算機(jī)組成原理、嵌入式微處理器結(jié)構(gòu)、匯編語(yǔ)言、C/C++、編譯原理、離散數(shù)學(xué)、數(shù)據(jù)結(jié)構(gòu)和算法、操作系統(tǒng)、軟件工程、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)。
2、學(xué)習(xí)linux
目的:深入掌握l(shuí)inux系統(tǒng)。
方法:使用linux—〉linxu系統(tǒng)編程開發(fā)—〉驅(qū)動(dòng)開發(fā)和分析linux內(nèi)核。看幾遍后,看情景分析,對(duì)照深看,兩本交叉,深是綱,情是目。剖析則是0.11版,適合學(xué)習(xí),最后深入代碼。
3、學(xué)習(xí)嵌入式linux
目的:掌握嵌入式處理器其及系統(tǒng)。
-
嵌入式
+關(guān)注
關(guān)注
5068文章
19017瀏覽量
303255 -
Linux
+關(guān)注
關(guān)注
87文章
11227瀏覽量
208925 -
WinCE
+關(guān)注
關(guān)注
2文章
128瀏覽量
49006
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論