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