STM32外設(shè)豐富,沒有mmu,可以上ucos等小型系統(tǒng)。arm9外設(shè)不夠豐富,有mmu,可以上linux。如果想上安卓,至少arm11以上才比較合適。
arm7是arm公司推出的以V4指令集設(shè)計出來的arm核,基于arm7可以生產(chǎn)出很多CPU芯片,其代表的芯片有s3c44b0等;
arm9是arm公司推出的以V5指令集設(shè)計出來的arm核,基于arm9其它公司推出了自己的CPU芯片,如三星推出了S3C2440。還有TI啊,ATMEL啊,高通啊都基于arm9推出了自己的CPU芯片。
STM32是就是基于Cortex-M3這個核生產(chǎn)的CPU。stm32是cm3構(gòu)架的,是arm取代arm7的。主要還是前后臺編程,也可以掛μcos系統(tǒng)。在學習arm9之前接觸stm32會有些幫助,但不是特別多。arm9主要是掛系統(tǒng)能力強一些,而且和以前的編程習慣完全不一樣
ARM9、ARM11是哈佛結(jié)構(gòu),所以性能要高一點。ARM9和ARM11大多帶內(nèi)存管理器,跑操作系統(tǒng)好一點,ARM7適合裸奔。不跑操作系統(tǒng),價格低一點的:ARM7、cortex-M3等等。性價比高,可跑也可不跑操作系統(tǒng)的:ARM9、cortex-Rx等等。性能高的,通常要跑操作系統(tǒng)的:ARM10、ARM11、Cortex-A8等等。成熟的:ARM7\ARM9\ARM11。發(fā)展趨勢:Cortex-A、Cortex-R、Cortex-M。
2410和2440都是三星公司生產(chǎn)的基于ARM9內(nèi)核的芯,資源上相差不大,2440多了camara接口,速度要更快一些。上邊講的版本是指內(nèi)核版本,而各個公司出的發(fā)行號又各有不同。比如三星的2440,atmel的9260.就好比linux的內(nèi)核版本號與紅帽子的發(fā)行號不一樣是一個道理。
ARM9一般是有MMU的,ARM9940T只有MPU,不是一個完整的MMU。
ARM11當然也有MMU的。
這一條很重要,MMU單元是大型操作系統(tǒng)必需的硬件支持,如LINUX;WINCE等。這就是說,ARM7一般只能運行小型的實時系統(tǒng)如UCOS-II,eCOS等,而ARM9無此限制,一般的操作系統(tǒng)都可以移植。其實即使ARM720T能支持LINUX;WINCE等系統(tǒng),也鮮有人用,因為以ARM7的運行速度跑這種大型操作系統(tǒng),實在有點吃力。再者兩者的應用領(lǐng)域明顯不同,也無此必要。
下面兩個圖:架構(gòu)一幕了然。
在從ARM7到ARM9,ARM11的平臺轉(zhuǎn)變過程中,有一件事情是非常值得慶幸的,即ARM9,ARM11能夠地向后兼容ARM7上的軟件;并且開發(fā)人員面對的編程模型和架構(gòu)基礎(chǔ)也保持一致。
下面圖是一些特征比較
對于ARM嵌入式的初學者,建議用ARM9開發(fā)板。
首先,從功能上來說,ARM11要比ARM9強一些,但是性能優(yōu)異并不代表適合初學者。對于初學者來說ARM11的有些功能是冗余。其次,學習ARM9或者ARM11就在所難免學習其所支持的操作系統(tǒng)Linux(ARM11可以支持Android)。
目前,市面上ARM9的開發(fā)版的價格要比ARM11低很多,而兩者都可以運行Linux操作系統(tǒng)。并且ARM9開發(fā)板的資料和教學視頻也更多一些。jz2440+韋東山系列教學視頻,mini2440+國嵌視頻都是不錯的選擇。
最后,學習ARM9,可以按Linux應用開發(fā)、驅(qū)動開發(fā)順序?qū)W習。如果想學習Android系統(tǒng)開發(fā),可以學完ARM9再學習ARM11開發(fā)板下的安卓系統(tǒng)開發(fā)。因為安卓系統(tǒng)就是Linux內(nèi)核+libc庫用Java封裝而成。
ARM9是比較成熟的系列,現(xiàn)在很多成熟的產(chǎn)品都是用arm9開發(fā)的。這個學好了,以后的系列自學都會容易一些,因為ARM系列架構(gòu)都是一樣的。所謂“師傅領(lǐng)進門,修行在自身”,學會用一種處理器,掌握學習方法,其他的也一樣。
如果有單片機基礎(chǔ),但是沒有玩過ARM,建議學習STM32,甚至說沒有玩過單片機想入門的也可以選擇STM32,因為STM32例程豐富,資源比較多,市面上成熟的開發(fā)板也比較多,而且基本價格都在300以內(nèi)。
評論
查看更多