<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 學(xué)習方法與實(shí)踐 > 嵌入式linux的學(xué)習方法

嵌入式linux的學(xué)習方法

作者: 時(shí)間:2008-02-25 來(lái)源: 收藏

         學(xué)習掌握嵌入Linux的開(kāi)發(fā)與移植現在非常流行。各種學(xué)習文章與培訓班,充斥書(shū)店、街頭。筆者,也上了路,經(jīng)歷漫長(cháng)的摸索,終于一日開(kāi)竅,但的確糟蹋了很多金錢(qián)與時(shí)間。作為窮人,現寫(xiě)下自己的感受,供好學(xué)者參考。

第一要點(diǎn):實(shí)驗重于看書(shū)(多編碼,少翻書(shū))

  一定要首先搭建X86實(shí)驗環(huán)境。用舊計算機(周末電腦城拋售存貨,有新的),搭建一套實(shí)驗環(huán)境。
  Host主機:一臺PC機(能夠跑redhat linux ,看文檔就可以了,配網(wǎng)卡與軟驅?zhuān)?

  Target目標機一塊舊PC主板,配一張網(wǎng)卡和一個(gè)軟驅?zhuān)娫础?

  附件:交叉網(wǎng)線(xiàn),交叉串口線(xiàn)。

  夠了,不會(huì )超過(guò)三千元(已經(jīng)很滿(mǎn)足了)。

  軟件全部到電腦城/網(wǎng)站下載。

  先不管什么 arm ppc mips ,以后看看文檔吧。
 
第二重點(diǎn):GNU C編譯 

  在PC上安裝redhat linux包括開(kāi)發(fā)工具。熟悉linux配置命令。   練習 linux 的 C 語(yǔ)言編程,多個(gè)程序的編譯工程制作。無(wú)聊的話(huà),將C語(yǔ)言教材的例程,編譯十幾個(gè),熟悉GNU 編譯器。 www.gnu.org

  包括gcc make ld objdump ar 等 GNU toolkit

第三重點(diǎn):realtime linux 內核編程/加載到目標板運行。 

1. 下載 rt-linux ,或uclinux 或什么非 redhat的linux 源碼,一定是包括,編譯工程makefile, 并且for x86 PC的。

2. 修改和配置程序,將 rtlinux的 標準 console口 改為串口,不是vga與鍵盤(pán)。

3. 在redhat linux 環(huán)境下,編譯 這個(gè) embedded linux內核。 用mkboot的這樣程序(或按代碼中工具,) 將編譯好的內核執行文件 拷貝定位軟盤(pán)引導區。 

4. 用這張軟盤(pán)引導在目標PC主板 。 在PC主機的 串口終端上配置 PC主板目標機。 效果同 redhat linux terminal console一樣。以后越來(lái)越難,堅持。

第四個(gè)重點(diǎn) 編譯跑通網(wǎng)卡的驅動(dòng)程序 

1. 下載編譯 你的網(wǎng)卡驅動(dòng)源碼 

2. 跑通 主機與目標機的 網(wǎng)絡(luò )通訊。 . 不要太動(dòng)頭想, ping 通就是了。 

第五個(gè)重點(diǎn) 用tftp 下載執行文件從 PC主機 到 目標機運行。

第六個(gè)重點(diǎn) GNU GDB 遠程在線(xiàn)調試(網(wǎng)口調試)

第七個(gè)重點(diǎn) 實(shí)時(shí)內核學(xué)習/修改

  照文章/書(shū) 分析調試/破壞 內核的源碼。

  主要是 調度/消息/存儲/文件/進(jìn)程/線(xiàn)程/互斥等。單獨跑跑,了解內核功能就是了。

第八個(gè)重點(diǎn) TCP/IP的學(xué)習。

        下載一個(gè) 簡(jiǎn)單的web server (http server)學(xué)習理解,并編譯加載運行。 

  將 PC主板目標機 看作網(wǎng)站服務(wù)器,然后在PC主機的網(wǎng)絡(luò )瀏難器中 訪(fǎng)問(wèn)這個(gè) web server.

  有興趣,把你的照片加載到目標機的 html網(wǎng)頁(yè)中。 www.zebra.org

九個(gè)重點(diǎn) 網(wǎng)卡驅動(dòng)程序分析 

  了解PCI總線(xiàn)原理,嘗試獨立寫(xiě)點(diǎn)網(wǎng)卡驅動(dòng)程序,過(guò)濾以太報文的處理。 跟蹤處理特殊的報文。
 
第十個(gè)重點(diǎn)USB和 FLASH文件系統練習。(可以跳過(guò))
 
  可以分析修改 USB與FLASH文件系統源碼。
 
  一定要分析源碼,上網(wǎng)查 FLASH的型號。 

第十一個(gè)重點(diǎn) 路由器實(shí)驗。 

  分析zebra方面的源碼,再買(mǎi)一張網(wǎng)卡。

  嘗試分析 NAT RIP等協(xié)議,將你的PC板目標機,變成一臺簡(jiǎn)單的路由器。
 
  以后的實(shí)驗 需要根據 行業(yè)來(lái),例如,mini-GUI (圖形編程),或 DVR (硬盤(pán)錄象機),或IP Vedio WebTV 服務(wù)器??梢酝婧脦啄?,當然最好找工作前,有針對地做實(shí)驗。
 一句話(huà),動(dòng)手修改編碼,不要只看看。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


關(guān)鍵詞: 嵌入式 linux 學(xué)習 方法

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>