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