作為一個新手來說,選擇一款適合自己學習的開發板,至關重要。對于ARM嵌入式的初學者,建議用ARM9開發板。ARM11并不適合新手學習。
首先,從功能上來說,ARM11要比ARM9強一些,但是性能優異并不代表適合初學者。對于初學者來說ARM11的有些功能是冗余。
其次,學習ARM9或者ARM11就在所難免學習其所支持的操作系統Linux(ARM11可以支持Android)。目前,市面上ARM9的開發版的價格要比ARM11低很多,而兩者都可以運行Linux操作系統。并且ARM9開發板的資料和教學視頻也更多一些。
后,ARM9現在相對來說比較簡單,ARM11能實現的功能,ARM9基本都能實現。
ARM9是比較成熟的系列,現在很多成熟的產品都是用arm9開發的。這個學好了,以后的系列自學都會容易一些,因為ARM系列架構都是一樣的。所謂“師傅領進門,修行在自身”,學會用一種處理器,掌握學習方法,其他的也一樣。
寫驅動中不涉及CPU,只涉及CPU之外的設備
嵌入式芯片被稱為SoC(System on Chip),它上面既有CPU還有其他模塊,比如內存控制器、USB、UART等。
對軟件工程師來說, 無論是ARM9、ARM11、A8還是A9,是沒有差別的;
差別不在于CPU核, 差別在于CPU之外的模塊的寄存器操作不一樣。
因為寫驅動并不涉及CPU核,只是操作CPU之外的設備,只是讀寫這些設備的寄存器。
2. 一理通,百理明:掌握了原理,通吃所有芯片
從2005年開始,在ARM架構方面經歷了ARM9,ARM11,CORTEX A8/A9,現在又到了多核;
期間用過MIPS,Blackfin等架構的芯片,但是所用到的知識跟fs4412上所學的知識,完全沒變過!根本沒變過!
變化的就是調試驅動的經驗累積,就是學習的能力,快速掌握新知識的能力!
“要學fs4412干嘛?工作中又不用fs4412!”,
此話大錯特錯,用fs4412來學習知識,不是學習fs4412這個芯片本身;
即使現在選擇很牛的芯片來學習,再過1年它也過時了;追芯片,怎么追得上!?
就比如公司即使現在用的 ARM Cortex-A17 , 用這個來學習到頭來只是學到皮毛,越是高端的處理器,公司的產品越是依賴于原廠或者方案公司,
接觸到的很多都是沒有手冊,沒有說明,甚至封裝打包成LIB庫的東西,真正核心的接觸不到。
“fs4412快停產了,還學它干嘛”, 大錯特錯,理由同上。
從2008年起三星就想停產fs4412,2013年也確實停過一會,但是馬上又恢復生產了:需求量太大了。
學習的是知識,不是學習芯片,萬一停產了又有什么關系?工作中幾乎可以肯定不用fs4412!
那么,怎么選擇開發板呢?
1.對于初學者: 我建議用市面多,常用的開發板來入門,比如華清遠見的fs4412。
2.學完后再換另一種開發板重寫代碼
為什么要換開發板?
這是對你所學知識的檢驗與煅煉,把fs4412上所有的代碼,都在新板子上自己重新寫出來:很多你沒有領會到的、
沒有在意過的知識點,在這個過程中都會卡得你痛苦萬分,解決了它們你自然就學得更深了。只有這樣,前面在
3.要是需要一款開發方便的板子?
就選qs-pte9這是他與其他板子的不同: 平常我們接觸的嵌入式的開發往往和PC上的開發不一樣,而我們開發的qs-pte9卻剛好相反打造的是開發和pc上一樣。
下載到開發板編譯不需要用仿真器編譯器,我們提供了完整的ARM-Linux、PC-Linux虛擬機系統,不用自己完成繁瑣的搭建和移植,節約您數周的時間。
板子支持C,C++,opencv,當然我們也有自己函數庫供大家使用,也可以把你寫的程序直接移植到開發板上運行。
另外:
ARM9和后面的Cortex-A系列(如A5、A8、A9)架構或者指令集,確實有差別。
但是對于初學者或者初級的應用工程師,我想這些是不重要的,至少只能說了解就可以了。
并不是需要熟悉或者精通。因為畢竟做初級開發的,涉及到這方面的很少。
打個比方,前段時間我調試一個語音類的產品,只需要評估下,可能需要使用支持NEON指令集的CPU。
所以選了這樣一款ARM芯片,然后軟件打開NEON指令的編譯選項即可。經過測試,加入NEON指令后,多媒體的編解碼會更高效。
但是作為快速開發產品,沒有必要去了解NEON是如何去提高效率的。