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