學(xué)習(xí)掌握嵌入 Linux 的開發(fā)與移植 現(xiàn)在非常流行。各種學(xué)習(xí)文章與培訓(xùn)班,充斥書店街頭。筆者也上了路,經(jīng)歷漫長的摸索,終于一日開竅,但的確 糟蹋了很多金錢與時間。 作為窮人,現(xiàn)寫下自己的感受,供 好學(xué)寒士 參考。 第一要點: 實驗重于看書 (多編碼,少翻書) 一定首先搭建x86實驗環(huán)境。用舊計算機(周末電腦城拋售存貨,有新的),搭建一套 實驗環(huán)境。 host主機: 一臺PC機(能夠跑redhat linux,看問檔 就可以了,配網(wǎng)卡與軟驅(qū))。 target目標機: 一塊舊PC主板,配一張網(wǎng)卡和一個軟驅(qū),電源。 附件: 交*網(wǎng)線 ,交*串口線 夠了,不會超過3千元(已經(jīng)很滿足了)。 軟件全部到 電腦城/網(wǎng)站 下載。 先不管什么arm ppc mips, 以后看看文檔吧。 第二重點:GNU C編譯 在PC 上安裝 redhat linux 包括 開發(fā)工具。 熟悉linux 的配置命令。 練習(xí) linux 的 C 語言編程,多個程序的編譯工程制作。 無聊的話,將C語言教材的例程,編譯十幾個,熟悉GNU 編譯器。www.gnu.org 包括gcc make ld objdump ar 等 GNU toolkit 第三重點:realtime linux 內(nèi)核編程/加載到目標板運行。 1。 下載 rt-linux ,或uclinux 或什么 非 redhat的linux 源碼,一定 是包括,編譯工程makefile, 并且for x86 PC的。 2。修改和配置程序,將 rtlinux的 標準 console口 改為串口,不是vga與鍵盤。 3。在redhat linux 環(huán)境下,編譯 這個 embedded linux內(nèi)核。 用mkboot的這樣程序(或按代碼中工具,) 將編譯好的內(nèi)核執(zhí)行文件 拷貝定位軟盤引導(dǎo)區(qū)。 4。用這張軟盤引導(dǎo)在目標PC主板 。 在PC主機的 串口終端上配置 PC主板目標機。 效果同 redhat linux terminal console一樣。 以后越來月難,堅持。 第四個重點 編譯跑通網(wǎng)卡的驅(qū)動程序 下載編譯 你的網(wǎng)卡驅(qū)動源碼 跑通 主機與目標機的 網(wǎng)絡(luò)通訊。 不要太動頭想, ping 通就是了。 第五個重點 用tftp 下載執(zhí)行文件從 PC主機 到 目標機運行。 第六個重點 GNU GDB 遠程在線調(diào)試(網(wǎng)口調(diào)試) 第七個重點 實時內(nèi)核學(xué)習(xí)/修改 照文章/書 分析調(diào)試/破壞 內(nèi)核的源碼。 主要是 調(diào)度/消息/存儲/文件/進程/線程/互斥 等 單獨跑跑, 了解內(nèi)核功能就是了。 第八個重點 TCP/IP的學(xué)習(xí) 下載一個 簡單的web server (http server) 學(xué)習(xí)理解,并編譯加載運行。 將 PC主板目標機 看作網(wǎng)站服務(wù)器,然后在PC主機的網(wǎng)絡(luò)瀏難器中 訪問這個 web server. 有興趣,把你的照片加載到目標機的 html網(wǎng)頁中。 www.zebra.org 第九個重點 網(wǎng)卡驅(qū)動程序分析 了解 PCI總線原理,嘗試獨立寫點網(wǎng)卡驅(qū)動程序,過濾以太報文的處理。 跟蹤處理 特殊的報文。 第十個重點USB和 FLASH文件系統(tǒng)練習(xí)。(可以跳過) 可以分析修改 USB與FLASH文件系統(tǒng)源碼。 一定要分析源碼,上網(wǎng)查 FLASH的型號。 第十一個重點 路由器實驗。 分析zebra方面的源碼,再買一張網(wǎng)卡。 嘗試分析 NAT RIP等協(xié)議,將你的PC板目標機,變成一臺簡單的路由器。 以后的實驗 需要根據(jù)行業(yè)來,例如,mini-GUI (圖形編程),或 DVR (硬盤錄象機),或IP Vedio WebTV 服務(wù)器。 可以玩好幾年,當(dāng)然最好找工作前,有針對地做實驗。 一句話,動手修改編碼,不要只看看。 |
參與人數(shù) 1 | 積分 +2 | 收起 理由 |
---|---|---|
| + 2 |
頂 |
“第六個重點 GNU GDB 遠程在線調(diào)試(網(wǎng)口調(diào)試)”可以講的詳細點嗎?有點不懂! |
呵呵 加油了哦 |