當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 入門指導(dǎo) > 如何著手嵌入式linux開發(fā),老鳥來(lái)教你
現(xiàn)在學(xué)嵌入式的人也是越來(lái)越多了,而對(duì)于嵌入式linux開發(fā)的學(xué)習(xí)不是一蹴而就的,需要不斷的積累,那么我們?cè)趯W(xué)習(xí)嵌入式linux開發(fā)時(shí),應(yīng)該從哪些方面來(lái)著手學(xué)習(xí)呢,我這只老鳥就來(lái)獻(xiàn)獻(xiàn)丑了,都是一些嵌入式linux開發(fā)最重要的,結(jié)合學(xué)習(xí)中遇到的一些問題,讓你更深入的認(rèn)識(shí)嵌入式linux開發(fā)
很多學(xué)習(xí)嵌入式linux的人在學(xué)習(xí)嵌入式linux時(shí)買大量的linux書籍,從圖書館借了一大堆關(guān)于linux的書:什么《linux使用基礎(chǔ)教程》、《linux源碼深度分析》、《linux情景分析等》、 《linux高級(jí)使用指南》等等。結(jié)果抱著這些圖書看了10天半個(gè)月還是不知所云,當(dāng)初學(xué)習(xí)的激情慢慢就消退了,最后不了了之,終究沒有進(jìn)入嵌入式開發(fā)大門。究其原因,是因?yàn)闆]有找到合適學(xué)習(xí)嵌入式開發(fā)的方法,做任何事情都有方法可循,找對(duì)了學(xué)習(xí)方法往往就能事半功倍;否則就可能是事倍功半,甚至勞而無(wú)功。接下來(lái)就結(jié)合對(duì)學(xué)習(xí)嵌入式linux開發(fā)的幾種常見的學(xué)習(xí)誤區(qū)來(lái)給你們一個(gè)好的學(xué)習(xí)方法
誤區(qū)一、直接閱讀linux內(nèi)核源代碼
很多想學(xué)linux,在連linux是什么東西,一點(diǎn)都還不會(huì)使用的情況下去就閱讀linux內(nèi)核源代碼,花了大量時(shí)間去閱讀《linux源碼深度分析》、《linux情景分析等》等書。這樣的結(jié)果很可能就是看的頭昏眼花,不知所云,最后只能放棄了。這也是同學(xué)們學(xué)習(xí)嵌入式linux的一個(gè)誤區(qū),在有一定嵌入式linux開發(fā)基礎(chǔ)后,帶著一定的目的去閱讀linux源代碼,這樣可以極大的提高你的技術(shù)能力,但是你在沒有任何基礎(chǔ),對(duì)linux一點(diǎn)都不了解的情況下就去閱讀linux內(nèi)核源代碼,無(wú)異于以卵擊石,最后只能是撞個(gè)頭破血流。
誤區(qū)二、全身投入學(xué)習(xí)桌面或服務(wù)器版本linux系統(tǒng)
很多想學(xué)嵌入式linux 的同學(xué)經(jīng)常問我,我不會(huì)linux系統(tǒng),怎么學(xué)習(xí)嵌入式linux開發(fā),于是他們就花費(fèi)了大量的精力和時(shí)間去研究學(xué)習(xí)桌面版本linux系統(tǒng)的使用,什么redhat 、federo,、ubuntu等等都用過(guò),如何配置linux,linux的各種使用命令都背的滾瓜爛熟,linux各種服務(wù)器的配置,還原備份各種操作非常熟悉,以為這樣就學(xué)會(huì)了嵌入式linux開發(fā)。其實(shí)這是一個(gè)學(xué)習(xí)嵌入式Linux開發(fā)的誤區(qū)。
Linux桌面環(huán)境只是嵌入式linux的一個(gè)開發(fā)工具,開發(fā)環(huán)境而已。我們的目標(biāo)不是學(xué)習(xí)linux服務(wù)器的配置和使用,linux服務(wù)器的高級(jí)配置和使用那是另外一個(gè)領(lǐng)域,不屬于嵌入式linux討論的范疇。我們進(jìn)行嵌入式linux開發(fā),只是把linux桌面環(huán)境當(dāng)作一個(gè)工具,在linux桌面環(huán)境下運(yùn)行嵌入式linux開發(fā)工具,例如gcc 編譯器,make工具來(lái)開發(fā)我們的嵌入式linux應(yīng)用程序而已,對(duì)于嵌入式開發(fā)工程師來(lái)說(shuō),沒有必要花費(fèi)那么多的精力和時(shí)間去研究linux桌面版和服務(wù)器的應(yīng)用,只要能了解最基本的操作即可,F(xiàn)在的桌面linux系統(tǒng)的圖形化界面做的也相當(dāng)好,跟window具有相同的易用性能,例如ubuntu很多操作都可以在圖形界面下完成,就沒有必要去記每個(gè)linux命令了。熟悉linux桌面系統(tǒng)的使用和基本操作命令,安排1~2天時(shí)間學(xué)習(xí)基本就可以掌握了。
以上分析了同學(xué)們學(xué)習(xí)嵌入式linux 開發(fā)的2個(gè)誤區(qū),那么如何正確的嵌入式linux開發(fā)呢?
做任何事情都有一個(gè)循序漸進(jìn)的過(guò)程,學(xué)習(xí)嵌入式linux也一樣。在有了一定的嵌入式開發(fā)基礎(chǔ)后,學(xué)習(xí)嵌入式linux開發(fā)比較適合的切入點(diǎn)是從嵌入式linux應(yīng)用程序開發(fā)開始,即暫時(shí)先不去關(guān)心嵌入式硬件平臺(tái),不去關(guān)心linux的底層驅(qū)動(dòng),先把精力集中在現(xiàn)有的嵌入式linux平臺(tái)上進(jìn)行嵌入式linux應(yīng)用程序設(shè)計(jì)開發(fā)。學(xué)習(xí)嵌入式linux開發(fā)絕不是看看書就可以學(xué)好的,需要多實(shí)踐,編程調(diào)試;因?yàn)榍度胧介_發(fā)不同于普通的基于PC機(jī)或服務(wù)器的應(yīng)用程序開發(fā),嵌入式開發(fā)的應(yīng)用程序是要燒寫到嵌入式板卡或開發(fā)板上運(yùn)行的,所以首先你要給自己購(gòu)買一塊開發(fā)板,現(xiàn)在普遍流行的嵌入式開發(fā)板都是基于三星的ARM9 CPU S3C2440,性價(jià)比極高。
有了開發(fā)板后,先后開始學(xué)習(xí)嵌入式linux開發(fā)環(huán)境搭建、嵌入式linux開發(fā)模型、linux內(nèi)核移植和文件系統(tǒng)、嵌入式linux應(yīng)用程序移植、嵌入式linux多進(jìn)程,多線程應(yīng)用程序設(shè)計(jì)、嵌入式linux網(wǎng)絡(luò)編程,如果對(duì)嵌入式數(shù)據(jù)庫(kù)或圖形軟件開發(fā)有興趣的,可以進(jìn)一步學(xué)習(xí)嵌入式linux數(shù)據(jù)庫(kù)開發(fā)或基于QT的嵌入式linux圖形應(yīng)用軟件設(shè)計(jì)。每學(xué)一章節(jié)都要通過(guò)相關(guān)實(shí)驗(yàn)來(lái)來(lái)驗(yàn)證你從書上學(xué)到的東西,同時(shí)提高自己編寫代碼,調(diào)試程序的能力。這個(gè)過(guò)程根據(jù)不同學(xué)員的基礎(chǔ)不同,大概要花上1 ~ 2個(gè)月時(shí)間。學(xué)完這些課程后,你就有了再現(xiàn)有的嵌入式linux平臺(tái)上進(jìn)行應(yīng)用程式設(shè)計(jì)開發(fā)的能力,到一些嵌入式軟件公司去,能夠勝任在現(xiàn)有的嵌入式linux平臺(tái)上進(jìn)行上層的應(yīng)用程序開發(fā)工作。但是目前你還不能進(jìn)行嵌入式linux系統(tǒng)和驅(qū)動(dòng)的開發(fā),也就是說(shuō),你現(xiàn)在只能在一個(gè)已經(jīng)構(gòu)建好的嵌入式linux平臺(tái)上進(jìn)行應(yīng)用程序開發(fā),而自己還沒有能力根據(jù)實(shí)際需要去重新構(gòu)建一個(gè)嵌入式linux平臺(tái)。要讓自己有能力根據(jù)實(shí)際需要重新構(gòu)建一個(gè)嵌入式linux軟硬件平臺(tái),這時(shí)候就需要進(jìn)行下一階段的學(xué)習(xí)了,即嵌入式linux系統(tǒng)和驅(qū)動(dòng)開發(fā)。
對(duì)于嵌入式linux開發(fā)初級(jí)你是否了解了呢,嵌入式linux開發(fā)學(xué)習(xí)更多需要的是你的實(shí)踐,而不是你學(xué)學(xué)懂了,就不管了,所以學(xué)習(xí)嵌入式linux開發(fā)需要你多下功夫,把理論和實(shí)踐相結(jié)合,這樣你才會(huì)學(xué)而有所得。