目前,嵌入式處理器常見的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire,但ARM占據了絕對的主流。作為一家不生產芯片的芯片廠商,ARM卻在全球范圍內支撐起了各種嵌入式設備、智能手機、平板電腦、智能穿戴和物聯網設備的運行,同時,ARM很早就開始“入侵”傳統X86架構處理器堅守的高性能計算終端市場了。高性能、低功耗、低價格、豐富的可選擇芯片、廣泛的第三方支持與完整的產品線和發展規劃使得ARM大量涌現在人面前,那么作為初學者又該如何學習ARM呢?
ARM嵌入式和單片機學習有著密不可分的關系,可以拋開復雜的軟件結構,先掌握硬件操作。ARM與單片機是有著許多區別的,相比來說ARM要比單片機復雜的多。據某位知乎大神表示,往往單片機只需要對一個寄存器賦值即可初始化,而在ARM下就要調用庫函數,另外,每個引腳其功能都多了許多,相應的配置也會更為麻煩。但如果有了豐富的ARM的項目經驗就會發現,其實它的應用配置也是千篇一律,有章可循的。
著名專家韋東山也曾強調,不要再用老方法學習單片機和ARM。他表示,學習單片機是沒有前途的。一是因為單片機太簡單,工作十年與兩年技能差別不大所以企業更偏向選擇薪資較低的新人,二是因為單片機的價格優勢正在逐漸消失,目前智能保持微弱的優勢就是穩定性這一特點。如果單片機和Linux都想學,在單片機->bootloader->Linux系統/驅動->APP(QT)這條學習線路上可以使用同一套開發板。首選三星(SAMSUNG)S3C2440、S3C6410、S5PV210、Exynos4412;其次是德州儀器 (TI) AM437X、AM335X;然后是飛思卡爾(freescale),iMX6;還有其它國產芯片:全志、瑞芯微。
學習嵌入式難點不是在學,而是很多人就在入門這一關就卡死了。覺得學的沒頭緒,是因為你學習方法不對,首先,你應該要有目標,要學到什么程度,要從什么開始學起。
在學習初期第一先看關于ARM芯片的Mannual;第二找一本關于內核的不錯的書,比如,想學Cortex-M3的話,《The DefiniTIve Guide to the Cortex-M3》是很不錯的。看這書的時候不需要全部掌握,只需要當做一本參考手冊來讀就好,知道在開發過程中遇到什么問題來這里哪一章找解決方法即可;第三買一塊開發板,參考板子帶的全程進行調試;第四自己跟項目,或者自己搞點開發,例如開發一個小智能小車之類的,學習總得有點兒投入。
Linux作為重要工具,在不明白Linux的情況下,ARM的學習也將面臨瓶頸。目前嵌入式Linux領域稀缺的Linux移植到某個新型號的開發板上,能寫Linux驅動程序的人,熟悉Linux內核裁減和優化人。現在公認的Linux的入門書籍是“鳥哥的私房菜” ,講得很全面,鳥哥的私房菜一共分為兩部,一部是基礎篇,一部是服務器篇。