一:做任何事情都有一個(gè)循序漸進(jìn)的過(guò)程,學(xué)習(xí)嵌入式linux也一樣。在有了一定的嵌入式開(kāi)發(fā)基礎(chǔ)后,學(xué)習(xí)嵌入式linux開(kāi)發(fā)比較適合的切入點(diǎn)是從嵌入式linux應(yīng)用程序開(kāi)發(fā)開(kāi)始,即暫時(shí)先不去關(guān)心嵌入式硬件平臺(tái),不去關(guān)心linux的底層驅(qū)動(dòng),先把精力集中在現(xiàn)有的嵌入式linux平臺(tái)上進(jìn)行嵌入式linux應(yīng)用程序設(shè)計(jì)開(kāi)發(fā)。學(xué)習(xí)嵌入式linux開(kāi)發(fā)絕不是看看書(shū)就可以學(xué)好的,需要多實(shí)踐,編程調(diào)試;因?yàn)榍度胧介_(kāi)發(fā)不同于普通的基于PC機(jī)或服務(wù)器的應(yīng)用程序開(kāi)發(fā),嵌入式開(kāi)發(fā)的應(yīng)用程序是要燒寫(xiě)到嵌入式板卡或開(kāi)發(fā)板上運(yùn)行的,所以首先你要給自己購(gòu)買(mǎi)一塊開(kāi)發(fā)板,現(xiàn)在普遍流行的嵌入式開(kāi)發(fā)板都是基于三星的ARM9 CPUS3C2440,性?xún)r(jià)比極高,在這里我推薦使用飛凌公司FL-2440 高性?xún)r(jià)比ARM9學(xué)習(xí)開(kāi)發(fā)板,開(kāi)發(fā)板資源豐富,穩(wěn)定,同時(shí)配有大量的實(shí)驗(yàn)源碼,視頻教程和實(shí)驗(yàn)指導(dǎo)書(shū)。有了開(kāi)發(fā)板后,先后開(kāi)始學(xué)習(xí)嵌入式linux開(kāi)發(fā)環(huán)境搭建、嵌入式linux開(kāi)發(fā)模型、linux內(nèi)核移植和文件系統(tǒng)、嵌入式linux應(yīng)用程序移植、嵌入式linux多進(jìn)程,多線(xiàn)程應(yīng)用程序設(shè)計(jì)、嵌入式linux網(wǎng)絡(luò)編程,如果對(duì)嵌入式數(shù)據(jù)庫(kù)或圖形軟件開(kāi)發(fā)有興趣的,可以進(jìn)一步學(xué)習(xí)嵌入式linux數(shù)據(jù)庫(kù)開(kāi)發(fā)或基于QT的嵌入式linux圖形應(yīng)用軟件設(shè)計(jì)。每學(xué)一章節(jié)都要通過(guò)相關(guān)實(shí)驗(yàn)來(lái)來(lái)驗(yàn)證你從書(shū)上學(xué)到的東西,同時(shí)提高自己編寫(xiě)代碼,調(diào)試程序的能力。這個(gè)過(guò)程根據(jù)不同學(xué)員的基礎(chǔ)不同,大概要花上1 ~ 2個(gè)月時(shí)間。學(xué)完這些課程后,你就有了再現(xiàn)有的嵌入式linux平臺(tái)上進(jìn)行應(yīng)用程式設(shè)計(jì)開(kāi)發(fā)的能力,到一些嵌入式軟件公司去,能夠勝任在現(xiàn)有的嵌入式linux平臺(tái)上進(jìn)行上層的應(yīng)用程序開(kāi)發(fā)工作。但是目前你還不能進(jìn)行嵌入式linux系統(tǒng)和驅(qū)動(dòng)的開(kāi)發(fā),也就是說(shuō),你現(xiàn)在只能在一個(gè)已經(jīng)構(gòu)建好的嵌入式linux平臺(tái)上進(jìn)行應(yīng)用程序開(kāi)發(fā),而自己還沒(méi)有能力根據(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)開(kāi)發(fā)。二、嵌入式Linux系統(tǒng)和驅(qū)動(dòng)開(kāi)發(fā) 有了嵌入式linux平臺(tái)上開(kāi)發(fā)應(yīng)用程序的基礎(chǔ),你已經(jīng)對(duì)linux的功能、linux對(duì)應(yīng)用程序提供的接口和系統(tǒng)調(diào)用有了一定的了解:知道如何利用linux提供的功能來(lái)進(jìn)行應(yīng)用程序開(kāi)發(fā),知道如何來(lái)使用設(shè)備驅(qū)動(dòng)來(lái)進(jìn)行應(yīng)用程序設(shè)計(jì),有了這些知識(shí)后,你就可以更深入的去學(xué)習(xí)Linux系統(tǒng)原理和基于Linux驅(qū)動(dòng)的開(kāi)發(fā),Linux內(nèi)核的裁剪,文件系統(tǒng)構(gòu),bootloader等等底層的知識(shí)了。想要更深入學(xué)習(xí)嵌入式Linux系統(tǒng)和驅(qū)動(dòng)開(kāi)發(fā),要學(xué)的內(nèi)容非常多包括計(jì)算機(jī)軟件、硬件、操作系統(tǒng)知識(shí)。這時(shí)候你可以參照以下的學(xué)習(xí)思路:因?yàn)榍度胧絃inux系統(tǒng)和驅(qū)動(dòng)的開(kāi)發(fā),和底層硬件聯(lián)系非常緊密,所以首先我們從學(xué)習(xí)了解嵌入式硬件開(kāi)始,包括:ARM體系架構(gòu)、S3C2440微處理器接口設(shè)計(jì)、時(shí)鐘系統(tǒng)、LCD屏接口、存儲(chǔ)控制器及系統(tǒng)的存儲(chǔ)空間分配、NAND FLASH接口和NOR FLASH接口等。對(duì)嵌入式系統(tǒng)硬件有了一定的了解后,接下來(lái)就可以開(kāi)始學(xué)習(xí)bootloader了,理解bootloader的概念,功能,和原理,重點(diǎn)掌握U-BOOT的使用和移植 。 接下來(lái)就開(kāi)始學(xué)習(xí)嵌入式linux內(nèi)核機(jī)制,分析嵌入式Linux源碼組成、內(nèi)核的模塊機(jī)制、內(nèi)核進(jìn)程管理、內(nèi)存管理機(jī)制、linux的中斷系統(tǒng)、Linux內(nèi)核的移植等。有了內(nèi)核的基礎(chǔ),就可以學(xué)習(xí)嵌入式Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)了,重點(diǎn)掌握字符設(shè)備驅(qū)動(dòng)開(kāi)發(fā),LCD屏設(shè)備驅(qū)動(dòng)開(kāi)發(fā)、觸摸屏設(shè)備驅(qū)動(dòng)開(kāi)發(fā)、USB設(shè)備驅(qū)動(dòng)開(kāi)發(fā),網(wǎng)卡設(shè)備驅(qū)動(dòng)開(kāi)發(fā)。學(xué)完這些知識(shí)點(diǎn)并通過(guò)相關(guān)實(shí)驗(yàn)驗(yàn)證后,嵌入式Linux系統(tǒng)和驅(qū)動(dòng)的開(kāi)發(fā)就算掌握了差不多了,能夠勝任絕大部分基于linux平臺(tái)的驅(qū)動(dòng)開(kāi)發(fā)工作了。學(xué)完這些知識(shí)點(diǎn),根據(jù)學(xué)員的不同情況,一般需要花三個(gè)月到半年時(shí)間。通過(guò)這一階段的學(xué)習(xí),你在嵌入式Linux開(kāi)發(fā)領(lǐng)域已經(jīng)算是有了一定的功底,已經(jīng)不再被人稱(chēng)為菜鳥(niǎo)了,已經(jīng)進(jìn)入嵌入式linux開(kāi)發(fā)高手行列了。三、更上一層樓 深入理解了嵌入式內(nèi)核和驅(qū)動(dòng)開(kāi)發(fā),這時(shí)候?qū)憘(gè)什么驅(qū)動(dòng)對(duì)你已經(jīng)沒(méi)有什么問(wèn)題了,開(kāi)發(fā)過(guò)程中一些基本問(wèn)題都難不倒你了。這是你可能想優(yōu)化一下系統(tǒng)的性能,比如實(shí)時(shí)性,提高系統(tǒng)的啟動(dòng)速度,或者優(yōu)化系統(tǒng)的內(nèi)存管理機(jī)制,要達(dá)到修改內(nèi)核核心機(jī)制的境界,你就需要去深入去研讀linux內(nèi)核源碼了,參考《linux源碼深度分析》、《linux情景分析等》等linux源碼分析的書(shū)籍,深入理解linux各部分的實(shí)現(xiàn)機(jī)制和原理,以及可能存在的問(wèn)題,
對(duì)嵌入式系統(tǒng)感興趣或想學(xué)習(xí)嵌入式的朋友可以加Q交流
聯(lián)系方式.png (70.82 KB)
聯(lián)系方式.png (70.82 KB)
歡迎光臨 電子工程網(wǎng) (http://m.qingdxww.cn/) | Powered by Discuz! X3.4 |