<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 學(xué)習(xí)方法與實(shí)踐 > 嵌入Linux的學(xué)習(xí)方法建議

          嵌入Linux的學(xué)習(xí)方法建議

          ——
          作者: 時(shí)間:2007-11-30 來(lái)源:網(wǎng)絡(luò) 收藏

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

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

            一定要首先搭建X86實(shí)驗(yàn)環(huán)境。用舊計(jì)算機(jī)(周末電腦城拋售存貨,有新的),搭建一套實(shí)驗(yàn)環(huán)境。

            Host主機(jī):一臺(tái)PC機(jī)(能夠跑redhat linux ,看文檔就可以了,配網(wǎng)卡與軟驅(qū))。

            Target目標(biāo)機(jī)一塊舊PC主板,配一張網(wǎng)卡和一個(gè)軟驅(qū),電源。

            附件:交叉網(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配置命令。

            練習(xí) linux 的 C 語(yǔ)言編程,多個(gè)程序的編譯工程制作。無(wú)聊的話(huà),將C語(yǔ)言教材的例程,編譯十幾個(gè),熟悉GNU 編譯器。 www.gnu.org

            包括gcc make ld objdump ar 等 GNU toolkit

          第三重點(diǎn):realtime linux 內(nèi)核編程/加載到目標(biāo)板運(yùn)行。
          1. 下載 rt-linux ,或uclinux 或什么非 redhat的linux 源碼,一定是包括,編譯工程makefile, 并且for x86 PC的。

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

          3. 在redhat linux 環(huán)境下,編譯 這個(gè) embedded linux內(nèi)核。 用mkboot的這樣程序(或按代碼中工具,) 將編譯好的內(nèi)核執(zhí)行文件 拷貝定位軟盤(pán)引導(dǎo)區(qū)。
          4. 用這張軟盤(pán)引導(dǎo)在目標(biāo)PC主板 。 在PC主機(jī)的 串口終端上配置 PC主板目標(biāo)機(jī)。 效果同 redhat linux terminal console一樣。以后越來(lái)越難,堅(jiān)持。

          第四個(gè)重點(diǎn)  編譯跑通網(wǎng)卡的驅(qū)動(dòng)程序
          1. 下載編譯 你的網(wǎng)卡驅(qū)動(dòng)源碼
          2.   跑通 主機(jī)與目標(biāo)機(jī)的 網(wǎng)絡(luò)通訊。
          3.  不要太動(dòng)頭想, ping 通就是了。

          第五個(gè)重點(diǎn)  用tftp 下載執(zhí)行文件從 PC主機(jī) 到 目標(biāo)機(jī)運(yùn)行。



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

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

            照文章/書(shū) 分析調(diào)試/破壞 內(nèi)核的源碼。

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

            第八個(gè)重點(diǎn) TCP/IP的學(xué)習(xí)。下載一個(gè) 簡(jiǎn)單的web server (http server)學(xué)習(xí)理解,并編譯加載運(yùn)行。
            將 PC主板目標(biāo)機(jī) 看作網(wǎng)站服務(wù)器,然后在PC主機(jī)的網(wǎng)絡(luò)瀏難器中 訪(fǎng)問(wèn)這個(gè) web server. 

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


          第九個(gè)重點(diǎn) 網(wǎng)卡驅(qū)動(dòng)程序分析
            了解PCI總線(xiàn)原理,嘗試獨(dú)立寫(xiě)點(diǎn)網(wǎng)卡驅(qū)動(dòng)程序,過(guò)濾以太報(bào)文的處理。 跟蹤處理特殊的報(bào)文。

          第十個(gè)重點(diǎn)USB和 FLASH文件系統(tǒng)練習(xí)。(可以跳過(guò))
            可以分析修改 USB與FLASH文件系統(tǒng)源碼。
            一定要分析源碼,上網(wǎng)查 FLASH的型號(hào)。
          第十一個(gè)重點(diǎn) 路由器實(shí)驗(yàn)。
            分析zebra方面的源碼,再買(mǎi)一張網(wǎng)卡。

            嘗試分析 NAT RIP等協(xié)議,將你的PC板目標(biāo)機(jī),變成一臺(tái)簡(jiǎn)單的路由器。
            以后的實(shí)驗(yàn) 需要根據(jù) 行業(yè)來(lái),例如,mini-GUI (圖形編程),或 DVR (硬盤(pán)錄象機(jī)),或IP Vedio WebTV 服務(wù)器??梢酝婧脦啄辏?dāng)然最好找工作前,有針對(duì)地做實(shí)驗(yàn)。
             

          一句話(huà),動(dòng)手修改編碼,不要只看看。

          linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();