在學習嵌入式Linux之前,肯定要有C語言基礎。匯編基礎有沒有無所謂(就那么幾條匯編指令,用到了一看就會)。
C語言要學到什么程度呢?越熟當然越好,不熟的話也要具備基本技能。比如寫一個數組排序、輸入數字求和什么的。
學C語言唯一的方法是多寫程序多練習,編譯出錯沒關系,自己去解決;執(zhí)行出錯沒關系,自己去分析。以前我是用
VC來練習C語言的,經常去嘗試著寫一些C語言競賽的題目。它們是純C、純數學、純邏輯的題目,不涉及界面這些東西,
很適合煅煉你的編程能力。
回到主題,首先我們要明白你的目的是什么,大概來說所謂嵌入式Linux可以分為兩部分:底層系統、應用開發(fā)。
如果你是想做應用開發(fā),那么你去把C語言、數據結構、JAVA什么的學好吧。嵌入式應用開發(fā)和PC上的
應用開發(fā)并沒有什么特別要注意的。也許你說在嵌入式上要做些優(yōu)化,是的,要優(yōu)化,但是未經優(yōu)化的程序
和PC上的程序開發(fā)沒什么差別。另外,當你有能力去優(yōu)化時,你已經不用來問這個問題了。具體到某個例子,
比如說開發(fā)界面,在PC上我們用VC;在嵌入式Linux里也許我們用QT也許用Android,這個時候你應該去學學QT、
Android的編程。但是基礎還是C或JAVA,在此基礎上去熟悉它們的接口。你學過VC的話,也是要花時間去了解
那些類、控件的。
如果你的目的是想學習底層系統,這是我的專長,倒是可以說一點。
在回答這個問題之前,我先回答:不少人問我,到底是學驅動還是學應用?
我只能說憑興趣,并且驅動和應用并不是截然分開的
1. 我們說的驅動,其實并不局限于硬件的操作,還有操作系統的原理、進程的休眠喚醒調度等概念。
想寫出一個好的應用,想比較好的解決應用碰到的問題,這些知識你應該懂
2. 做應用門檻低,特別是現在的ANDROID,純JAVA。做應用的發(fā)展路徑個人認為就是業(yè)務純熟。
比如在通信行業(yè)、IPTV行業(yè)、手機行業(yè),你了解行業(yè)的需求。所以,當領導的人,多是做應用的。
3. 做驅動,其實我不想稱為“做驅動”,而是想稱為“做底層系統”,做好了這是通殺各行業(yè)。我工作幾年,
做過手機、IPTV、會議電視,但是這些產品對我毫無差別,因為我只做底層。他們的業(yè)務跟我沒關系。
當應用出現問題,他們解決不了時,我就會從內核角度給他們出主意,給他們提供工具。
做底層的發(fā)展方向,個人認為是技術專家。
4. 其實,做底層還是做應用,之間并沒有一個界線,有底層經驗,再去做應用,你會感覺很踏實。
有了業(yè)務經驗,你再了解一下底層,很快就可以組成一個團隊。
回到怎么學的問題上。嵌入式Linux底層系統包含哪些東西?不要急,舉一個例子你就知道了。
1. 電腦一開機,那些界面是誰顯示的?是BIOS,它做什么?一些自檢,然后從硬盤上讀入windows,并啟動它。
類似的,這個BIOS對應于嵌入式Linux里的bootloader。這個bootloader要去Flash上讀入Linux內核,并啟動它。
2. 啟動windows的目的是什么?當然是上網聊天什么的了。這些上網、聊天工具在哪?
在C盤、D盤上。所以, windows要先識別出C盤、D盤。在Linux下我們稱為根文件系統。
1. 最適合入門的Linux暢銷書《嵌入式Linux應用開發(fā)完全手冊》,
在google上搜“嵌入式Linux應用開發(fā)完全手冊有目錄”即可下載到。
2. 與書完全配套的第1期視頻,引你入門
3. 深入講解驅動程序的第2期視頻,讓你深入
4. 實際項目從零寫起,第3期視頻讓你了解整個嵌入式Linux系統開發(fā)
1、由《嵌入式Linux應用開發(fā)完全手冊》作者韋東山親自講解
2、第1期與書完全配套,第2期深入講解驅動程序
5、一個首創(chuàng):第1個使用繪圖板來講解,絕不是“照著PPT念”,跟“在教室里看著老師在黑板上講解”效果一樣!
6、一個絕對:每個實驗,每一行代碼都是當場編寫和調試。視頻里有幾十個程序,作者完全從頭寫了幾十個程序。每一個實驗,都是先講解硬件操作,再寫程序。
7、一個保證:每個實驗,只要您的開發(fā)板有對應的芯片,都可以在您的開發(fā)板上運行起來。
8、一個超值:內容完全超越其他同類視頻或是培訓機構,并且還在不斷更新。
第一期視頻介紹
第1期:ARM實驗、uboot移植、文件系統、初級驅動