ARM嵌入式和單片機學習有著密不可分的關系,可以拋開復雜的軟件結構,先掌握硬件操作。ARM與單片機是有著許多區(qū)別的,相比來說ARM要比單片機復雜的多。據(jù)某位知乎大神表示,往往單片機只需要對一個寄存器賦值即可初始化,而在ARM下就要調用庫函數(shù),另外,每個引腳其功能都多了許多,相應的配置也會更為麻煩。但如果有了豐富的ARM的項目經(jīng)驗就會發(fā)現(xiàn),其實它的應用配置也是千篇一律,有章可循的。作為初學者首先要把ARM和單機片的區(qū)別了解清楚,在這里小編主要是從軟件和硬件方面來解說的。
軟件方面:這應該是最大的區(qū)別了。引入了操作系統(tǒng)。為什么引入操作系統(tǒng)?有什么好處嘛?1)方便。主要體現(xiàn)在后期的開發(fā),即在操作系統(tǒng)上直接開發(fā)應用程序。不像單片機一樣一切都要重新寫。前期的操作系統(tǒng)移植工作,還是要專業(yè)人士來做。2)安全。這是LINUX的一個特點。LINUX的內核與用戶空間的內存管理分開,不會因為用戶的單個程序錯誤而引起系統(tǒng)死掉。這在單片機的軟件開發(fā)中沒見到過。3)高效。引入進程的管理調度系統(tǒng),使系統(tǒng)運行更加高效。在傳統(tǒng)的單片機開發(fā)中大多是基于中斷的前后臺技術,對多任務的管理有局限性。
硬件方面:現(xiàn)在的8位單片機技術硬件發(fā)展的也非常得快,也出現(xiàn)了許多功能非常強大的單片機。但是與32arm相比還是有些差距吧。arm芯片大多把SDRAM,LCD等控制器集成到片子當中。在8位機,大多要進行外擴??偟膩碚f,單片機是個微控制器,arm顯然已經(jīng)是個微處理器了。引入嵌入式操作系統(tǒng)之后,可以實現(xiàn)許多單片機系統(tǒng)不能完成的功能。比如:嵌入式web服務器,java虛擬機等。也就是說,有很多免費的資源可以利用,上述兩種服務就是例子。如果在單片機上開發(fā)這些功能可以想象其中的難度。
如果你想學習嵌入式一定要買塊學習板,現(xiàn)在的開發(fā)板很便宜了,給我們初學者減輕了很多經(jīng)濟負擔??丛俣? 的視頻,看再多的書,也不如自己動手試一下,看著很簡單的東西,做起來就可能遇到很多的問題,遇到問題 找到原因,解決問題,只有這樣才能學到東西,記得我第一次寫led的驅動,想自己試一下,網(wǎng)上也有人寫過 相關的代碼,可是自己一試,就出了好多的問題,那個led弄了我一天才把led燈點亮。所以不要眼高手低。還有關于培訓,現(xiàn)在的培訓機構很多,講的也不錯,老師也很好,但是有一個問題,太集中了,而且學生 動手的機會也不太多,記得我們公司還招了一個在北京某個培訓機構培訓半年的員工呢,花了一萬多,來了之 后也沒感覺有多高,問他都學了什么,也就是我前邊說的那些基礎知識,很多的東西還是不知道的,照著書弄 個helloworld模塊驅動兩天沒搞定。不是培訓不好,但我個人見解效果并不是很好。記?。褐挥凶约簞邮肿? 過的東西才是自己的?,F(xiàn)在買一塊開發(fā)板很便宜,很多友善提供的代碼中很多的都是封裝好的,只提供給客戶一個庫,初學者想要找代碼的時候就不知 道怎么辦了.
arm嵌入式學習方法:1,挑選適合于自己的開發(fā)板——借用或租用市場上現(xiàn)在開發(fā)板種類太多,購買之前是借朋友的板子先試試,多體驗幾款,否則買了不光是浪費銀子,也可能耽誤學習進度。沒有這些資源就到淘寶網(wǎng)上去租幾塊板子來體驗,這對你以后學習會有很大的幫助。2,反復推敲。學習搭建開發(fā)環(huán)境,建立交叉編譯環(huán)境及硬件環(huán)境。3,不斷嘗試。從簡單hello world開始,逐步深入,不斷驗證操作系統(tǒng)及硬件功能。4,詳細記錄。嵌入式開發(fā)過程中會碰到各種各樣奇怪的問題,做筆記和寫心得變得非常重要,每一次小小的成功都要記錄,并反復驗證這個方法是否正確。
在應用中學習,在應用中提高。一個對嵌入式普遍認同的定義是:嵌入式是以應用為中心,以計算機技術為基礎,軟件和硬件可裁剪,以適應應用系統(tǒng)對功能、可靠性、成本、速度、體積、功耗嚴格要求的專用計算機系統(tǒng)。從定義中可以看出,嵌入式是以應用為中心的,在具體應用的前提下有針對性的進行軟硬件裁剪,從而達到某些技術指標的嚴格要求。所以說,嵌入式是一門較高層次的應用科學。需要我們在應用中學習。