很多人認為學習嵌入式開發(fā)就必須先接觸嵌入式系統(tǒng)移植、Linux內(nèi)核這些熱門。但實際上作為新人,不應(yīng)該先接觸這些比較復(fù)雜的東西,而應(yīng)該從較簡單的部分入手,下面就和大家分享一下對Linux系統(tǒng)ARM嵌入式的學習過程:
從基本的裸機編程開始
想要掌握好硬件,就要從基本的知識開始對使用方法和整體知識有一個完整的認識。如果一開始就學linux系統(tǒng)、學移植那么只會馬上就陷入一個很深的漩渦。我在剛剛開始學ARM的時候是選擇ARM7(主意是當時ARM9還很貴),學ARM7的時候還是保持著學51單片機的思維,使用ADS去編程,第一個實驗就是控制led。學過一段時間ARM的人都會笑這樣很笨,實際上也不是,我倒是覺得有這個過程會好很多,因為無論做多復(fù)雜的系統(tǒng)最終都會落實到這些最底層的硬件控制,因此對這些硬件的控制有了感性的認識就好很多了。
理解硬件同樣非常重要,只有理解好硬件的架構(gòu)和控制原理才能說是完全理解了硬件。所謂的理解硬件就是說,理解這個硬件是怎么組織這么多資源的,這些資源又是怎么由cpu、由編程進行控制的。這期間產(chǎn)生的問題都是能對以后更深一步的學習將有很大的幫助,如果跳過這一步,我相信越往后學越會覺得迷茫,越覺得這寫東西深不可測。因為,你的根基沒打好。
基本的實驗建議采用linux系統(tǒng)
在進行硬件開發(fā)室我們往往會得到一些附贈的linux試驗例程,這些例程都是非常好的實踐機會。也是為進一步的學習積累感性認識,你能想象一個從沒有使用過linux系統(tǒng)的人能學好linux的編程嗎?好好按照手冊上的例程做一做里面的實驗,雖然有點娃娃學走路,但是我想很多高手都會經(jīng)歷這個過程。在這方面我們深藍科技目前沒有計劃提供相應(yīng)的例程,主要是開發(fā)板的提供商會提供很豐富的例程,我們不做重復(fù)工作,只提供他們沒有的、最有價值的東西給大家。
linux的運行過程是一件非常有意義的事情
一個完整的linux系統(tǒng)是如何構(gòu)成的呢?它們各自的功用又在什么地方?完整的linux系統(tǒng)應(yīng)該包括三個部分,包裹bootloader、linuxkernel(linux內(nèi)核)、rootfile(根文件系統(tǒng))。而剩下的問題就需要我們在研究中自己去探尋了。對于下一步制作這個linux系統(tǒng)就打下了另一個重要的根基。介紹這方面的資料網(wǎng)上可以挖掘到不少,自己好好研究吧。