【E問(wèn)E答】ARM7還是ARM9?uCOS還是Linux?
一. 談?wù)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/ARM7">ARM7與ARM9的區(qū)別:
本文引用地址:http://www.ex-cimer.com/article/201607/293732.htm本文是寫(xiě)給準(zhǔn)備學(xué)習(xí)ARM技術(shù),而又沒(méi)想好要學(xué)ARM7還是ARM9或者對(duì)ARM7與ARM9的區(qū)別不是很了解的初學(xué)者。希望本文對(duì)你們有點(diǎn)用處。
由于職業(yè)的關(guān)系,經(jīng)常會(huì)回答一些ARM初學(xué)者的問(wèn)題,雖然問(wèn)題千奇百怪,但以下兩個(gè)問(wèn)題絕對(duì)很有代表性。
ARM7和ARM9都有些什么區(qū)別?
我準(zhǔn)備學(xué)ARM,但不知是選ARM7還是ARM9好?
也許這些問(wèn)題在大蝦們的眼里已不是問(wèn)題,但對(duì)于初學(xué)者確實(shí)很具必要弄清楚。先說(shuō)下:ARM7和ARM9的區(qū)別。
1. 時(shí)鐘頻率的提高
雖然ARM7和ARM9內(nèi)核架構(gòu)相同,但ARM7處理器采用3級(jí)流水線的馮·諾伊曼結(jié)構(gòu);,而ARM9采用5級(jí)流水線的哈佛結(jié)構(gòu)。增加的流水線設(shè)計(jì)提高了時(shí)鐘頻率和并行處理能力。5級(jí)流水線能夠?qū)⒚恳粋€(gè)指令處理分配到5個(gè)時(shí)鐘周期內(nèi),在每一個(gè)時(shí)鐘周期內(nèi)同時(shí)有5個(gè)指令在執(zhí)行。在常用的芯片生產(chǎn)工藝下,ARM7一般運(yùn)行在100MHz左右,而ARM9則至少在200MHz以上。
2 指令周期的改進(jìn)
指令周期的改進(jìn)對(duì)于處理器性能的提高有很大的幫助。性能提高的幅度依賴于代碼執(zhí)行時(shí)指令的重疊,這實(shí)際上是程序本身的問(wèn)題。對(duì)于采用最高級(jí)的語(yǔ)言,一般來(lái)說(shuō),性能的提高在30%左右。
3.MMU(內(nèi)存管理單元)
ARM7一般沒(méi)有MMU(內(nèi)存管理單元),(ARM720T有MMU)。
ARM9一般是有MMU的,ARM9940T只有MPU ,不是一個(gè)完整的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ú)此必要。
4. ARM7比ARM9提供了更好的性能-功耗比。它包含了THUMB指令集快速乘法指令和ICE調(diào)試技術(shù)的內(nèi)核。
5. 在從ARM7到ARM9的平臺(tái)轉(zhuǎn)變過(guò)程中,有一件事情是非常值得慶幸的,即ARM9E能夠完全地向后兼容ARM7上的軟件;并且開(kāi)發(fā)人員面對(duì)的編程模型和架構(gòu)基礎(chǔ)也保持一致。
二. 再來(lái)說(shuō)一下初學(xué)者是選ARM7還是ARM9?
1)明確目的
學(xué)習(xí)為應(yīng)用。你學(xué)ARM準(zhǔn)備用在什么地方,如果是一般性控制系統(tǒng)或僅僅用來(lái)替換8獲16位機(jī),ARM7顯然是首選;但如果用在網(wǎng)絡(luò)通信或大型的音視頻處理等,則ARM9較合適。
2)自身基礎(chǔ)
學(xué)習(xí)ARM的一般有三類人:
一是計(jì)算機(jī)專業(yè)的:這類人對(duì)操作系統(tǒng)等軟件知識(shí)了解較多,而對(duì)硬件知識(shí)知之甚少,顯然這類人學(xué)ARM的話還是做軟件好,可以基于LINUX;WINCE等操作系統(tǒng)的ARM9更能符合這類人的要求,當(dāng)然也有很多計(jì)算機(jī)專業(yè)的人從事ARM7系統(tǒng)的應(yīng)用軟件編寫(xiě)的。但是搞底層的就很少了。
二是電子類專業(yè)的:這類人的硬件基礎(chǔ)了相對(duì)較好,相反操作系統(tǒng),數(shù)據(jù)庫(kù)等軟件知識(shí)則差強(qiáng)人意。因此人多電子專業(yè)的人員都熟悉單片機(jī),用單片編寫(xiě)點(diǎn)小程序還不在話下,但要用ARM做較大型的軟件則有點(diǎn)力不從心,尤其是LINUX;WINCE這種操作系統(tǒng)不是三兩個(gè)月能輕松搞定的。建議這類人員如無(wú)特別需要還是從ARM7和小型操作系統(tǒng)學(xué)起。夠用就好,不要盲目追求高端。有一點(diǎn)要注意并不是從事ARM9的就比ARM7工資高,反而ARM7的就業(yè)機(jī)會(huì)比ARM9多,這很好理解,好比金字塔,越往頂肯越小。
三是軟硬件基礎(chǔ)都不太好的:這類人員有確實(shí)需要的,也有趕時(shí)髦的,如無(wú)大的學(xué)習(xí)決心還是參加培訓(xùn)的好。當(dāng)然也可曲線救國(guó),搞懂單片機(jī)后,ARM7就不難了。
最后說(shuō)一點(diǎn)關(guān)于開(kāi)發(fā)板的,初學(xué)者買(mǎi)個(gè)開(kāi)發(fā)板確實(shí)很有必要,但也要選擇合適的,初學(xué)者合適的就是,資料齊全,有配套教程和學(xué)習(xí)指導(dǎo),再加上較及時(shí)的技術(shù)支持。
http://www.cndzz.com/download/4094_0/102256.html
三、選UCOS?UCLINUX?LINUX?VXWORKS?還是當(dāng)單片機(jī)用?
1 搞開(kāi)發(fā),工程設(shè)計(jì),用UCOS,小巧,多進(jìn)程,簡(jiǎn)單,體現(xiàn)了ARM7的精髓。
2 LINUX 正根的嵌入式系統(tǒng),LINUX消費(fèi)與通信領(lǐng)域用的比較多,但缺點(diǎn)是必須ARM9才能跑,ARM9的板子自己做就不行了,6層板太貴。買(mǎi)開(kāi)發(fā)板1K達(dá)底吧。但是還是推薦選ARM9+LINUX
3 UCLINUX 算投機(jī)嵌入式系統(tǒng):ARM7上可以跑,由有LINUX近親,學(xué)好可以比較方便的轉(zhuǎn)向LINUX,像我一樣的窮鬼用吧,呵呵
4 VXWORKS:學(xué)好后可以找到高薪工作,但工作機(jī)會(huì)本身并不比LINUX好找。
5 當(dāng)單片機(jī)用:不推薦,因?yàn)閷?duì)于學(xué)習(xí)來(lái)說(shuō)多進(jìn)程的系統(tǒng)設(shè)計(jì)才是ARM7的玩頭,至少你也要整個(gè)UCOS啊;有朋友問(wèn)我先學(xué)這個(gè)當(dāng)基礎(chǔ)不行嗎?那當(dāng)然可以~~但我當(dāng)時(shí)就用了1周搞定,就是我先的ADS在RAM中調(diào)試的筆記。后來(lái)我清空FLASH用的小段程序還是當(dāng)時(shí)寫(xiě)的LED閃爍程序呢。另外1周里其中還因?yàn)樽约哼^(guò)于菜,沒(méi)把OM設(shè)置好導(dǎo)致晶陣不陣哈哈。這個(gè)是必須做的,但一帶而過(guò)。目標(biāo)放的遠(yuǎn)一點(diǎn)。
評(píng)論