arm7簡(jiǎn)介
ARM7系列處理器是英國(guó)ARM公司設(shè)計(jì)的主流嵌入式處理器ARM7內(nèi)核是0.9MIPS/MHz的三級(jí)流水線和馮·諾伊曼結(jié)構(gòu);ARM9內(nèi)核是5級(jí)流水線,提供1.1MIPS/MHz的哈佛結(jié)構(gòu)。ARM7沒(méi)有MMU。
ARM7系列包括ARM7TDMI、ARM7TDMI-S、帶有高速緩存處理器宏單元的ARM720T。該系列處理器提供Thumb16位壓縮指令集和EmbededICE軟件調(diào)試方式,適用于更大規(guī)模的SoC設(shè)計(jì)中。ARM7TDMI基于ARM體系結(jié)構(gòu)V4版本,是目前低端的ARM核。
ARM7TDMI處理器是ARM通用32位微處理器家族的成員之一。它具有優(yōu)異的性能,但功耗卻很低,使用門的數(shù)量也很少。它屬于精簡(jiǎn)指令集計(jì)算機(jī)(RISC),比復(fù)雜指令集計(jì)算機(jī)(CISC)要簡(jiǎn)單得多。這樣的簡(jiǎn)化實(shí)現(xiàn)了:高的指令吞吐量;出色的實(shí)時(shí)中斷響應(yīng);小的、高性價(jià)比的處理器宏單元。三級(jí)流水線:ARM7TDMI處理器使用流水線來(lái)增加處理器指令流的速度。這樣可使幾個(gè)操作同時(shí)進(jìn)行,并使處理和存儲(chǔ)器系統(tǒng)連續(xù)操作,能提供0.9MIPS/MHz的指令執(zhí)行速度。ARM7TDMI的流水線分3級(jí),分別為:取指、?譯碼、?執(zhí)行。正常操作過(guò)程中,在執(zhí)行一條指令的同時(shí)對(duì)下一條指令進(jìn)行譯碼,并將第三條指令從存儲(chǔ)器中取出。內(nèi)同時(shí)有5個(gè)指令在執(zhí)行。在同樣的加工工藝下,ARM9TDMI處理器的時(shí)鐘頻率是ARM7TDMI的1.8~2.2倍。
ARM9簡(jiǎn)介
ARM9系列處理器是英國(guó)ARM公司設(shè)計(jì)的主流嵌入式處理器,主要包括ARM9TDMI和ARM9E-S等系列。
ARM9采用哈佛體系結(jié)構(gòu),指令和數(shù)據(jù)分屬不同的總線,可以并行處理。在流水線上,ARM7是三級(jí)流水線,ARM9是五級(jí)流水線。由于結(jié)構(gòu)不同,ARM7的執(zhí)行效率低于ARM9。平時(shí)所說(shuō)的ARM7、ARM9實(shí)際上指的是ARM7TDMI、ARM9TDMI軟核,這種處理器軟核并不帶有MMU和cache,不能夠運(yùn)行諸如linux這樣的嵌入式操作系統(tǒng)。而ARM公司對(duì)這種架構(gòu)進(jìn)行了擴(kuò)展,所以有了ARM710T、ARM720T、ARM920T、ARM922T等帶有MMU和cache的處理器內(nèi)核。
ARM9處理能力
(1)時(shí)鐘頻率的提高
ARM7處理器采用3級(jí)流水線,而ARM9采用5級(jí)流水線。增加的流水線設(shè)計(jì)提高了時(shí)鐘頻率和并行處理能力。5級(jí)流水線能夠?qū)⒚恳粋€(gè)指令處理分配到5個(gè)時(shí)鐘周期內(nèi),在每一個(gè)時(shí)鐘周期內(nèi)同時(shí)有5個(gè)指令在執(zhí)行。在同樣的加工工藝下,ARM9TDMI處理器的時(shí)鐘頻率是ARM7TDMI的1.8~2.2倍。
(2)指令周期的改進(jìn)
指令周期的改進(jìn)對(duì)于處理器性能的提高有很大的幫助。性能提高的幅度依賴于代碼執(zhí)行時(shí)指令的重疊,這實(shí)際上是程序本身的問(wèn)題。對(duì)于采用最高級(jí)的語(yǔ)言,一般來(lái)說(shuō),性能的提高在30%左右。
UCOS簡(jiǎn)介
μC/OS II(Micro-Controller Operating System Two)是一個(gè)可以基于ROM運(yùn)行的、可裁剪的、搶占式、實(shí)時(shí)多任務(wù)內(nèi)核,具有高度可移植性,特別適合于微處理器和控制器,適合很多商業(yè)操作系統(tǒng)性能相當(dāng)?shù)膶?shí)時(shí)操作系統(tǒng)(RTOS)。為了提供最好的移植性能,μC/OS II最大程度上使用ANSI C語(yǔ)言進(jìn)行開(kāi)發(fā),并且已經(jīng)移植到近40多種處理器體系上,涵蓋了從8位到64位各種CPU(包括DSP)。 μC/OS II可以簡(jiǎn)單的視為一個(gè)多任務(wù)調(diào)度器,在這個(gè)任務(wù)調(diào)度器之上完善并添加了和多任務(wù)操作系統(tǒng)相關(guān)的系統(tǒng)服務(wù),如信號(hào)量、郵箱等。其主要特點(diǎn)有公開(kāi)源代碼,代碼結(jié)構(gòu)清晰、明了,注釋詳盡,組織有條理,可移植性好,可裁剪,可固化。內(nèi)核屬于搶占式,最多可以管理60個(gè)任務(wù)。從1992年開(kāi)始,由于高度可靠性、魯棒性和安全性,μC/OS II已經(jīng)廣泛使用在從照相機(jī)到航空電子產(chǎn)品的各種應(yīng)用中。
μC/OS-II實(shí)時(shí)多任務(wù)操作系統(tǒng)內(nèi)核。它被廣泛應(yīng)用于微處理器、微控制器和數(shù)字信號(hào)處理器。 μC/OS-II 的前身是μC/OS,最早出自于1992 年美國(guó)嵌入式系統(tǒng)專家Jean J.Labrosse 在《嵌入式系統(tǒng)編程》雜志的5 月和6 月刊上刊登的文章連載,并把μC/OS 的源碼發(fā)布在該雜志的B B S 上。
UCOS應(yīng)用情況
1) 高優(yōu)先級(jí)的任務(wù)因?yàn)樾枰撤N臨界資源,主動(dòng)請(qǐng)求掛起,讓出處理器,此時(shí)將調(diào)度就緒狀態(tài)的低優(yōu)先級(jí)任務(wù)獲得執(zhí)行,這種調(diào)度也稱為任務(wù)級(jí)的上下文切換。
2) 高優(yōu)先級(jí)的任務(wù)因?yàn)闀r(shí)鐘節(jié)拍到來(lái),在時(shí)鐘中斷的處理程序中,內(nèi)核發(fā)現(xiàn)高優(yōu)先級(jí)任務(wù)獲得了執(zhí)行條件(如休眠的時(shí)鐘到時(shí)),則在中斷態(tài)直接切換到高優(yōu)先級(jí)任務(wù)執(zhí)行。這種調(diào)度也稱為中斷級(jí)的上下文切換。 這兩種調(diào)度方式在μC/OS-II的執(zhí)行過(guò)程中非常普遍,一般來(lái)說(shuō)前者發(fā)生在系統(tǒng)服務(wù)中,后者發(fā)生在時(shí)鐘中斷的服務(wù)程序中。 調(diào)度工作的內(nèi)容可以分為兩部分:最高優(yōu)先級(jí)任務(wù)的尋找和任務(wù)切換。其最高優(yōu)先級(jí)任務(wù)的尋找是通過(guò)建立就緒任務(wù)表來(lái)實(shí)現(xiàn)的。μ C / O S 中的每一個(gè)任務(wù)都有獨(dú)立的堆棧空間,并有一個(gè)稱為任務(wù)控制塊TCB(Task Control Block)的數(shù)據(jù)結(jié)構(gòu),其中第一個(gè)成員變量就是保存的任務(wù)堆棧指針。任務(wù)調(diào)度模塊首先用變量OSTCBHighRdy 記錄當(dāng)前最高級(jí)就緒任務(wù)的TCB 地址,然后調(diào)用OS_TASK_SW()函數(shù)來(lái)進(jìn)行任務(wù)切換。
linux簡(jiǎn)介
Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),是一個(gè)基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運(yùn)行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,是一個(gè)性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。
linux特性
基本思想
Linux的基本思想有兩點(diǎn):第一,一切都是文件;第二,每個(gè)軟件都有確定的用途。其中第一條詳細(xì)來(lái)講就是系統(tǒng)中的所有都?xì)w結(jié)為一個(gè)文件,包括命令、硬件和軟件設(shè)備、操作系統(tǒng)、進(jìn)程等等對(duì)于操作系統(tǒng)內(nèi)核而言,都被視為擁有各自特性或類型的文件。至于說(shuō)Linux是基于Unix的,很大程度上也是因?yàn)檫@兩者的基本思想十分相近。
完全免費(fèi)
Linux是一款免費(fèi)的操作系統(tǒng),用戶可以通過(guò)網(wǎng)絡(luò)或其他途徑免費(fèi)獲得,并可以任意修改其源代碼。這是其他的操作系統(tǒng)所做不到的。正是由于這一點(diǎn),來(lái)自全世界的無(wú)數(shù)程序員參與了Linux的修改、編寫工作,程序員可以根據(jù)自己的興趣和靈感對(duì)其進(jìn)行改變,這讓Linux吸收了無(wú)數(shù)程序員的精華,不斷壯大。
完全兼容POSIX1.0標(biāo)準(zhǔn)
這使得可以在Linux下通過(guò)相應(yīng)的模擬器運(yùn)行常見(jiàn)的DOS、Windows的程序。這為用戶從Windows轉(zhuǎn)到Linux奠定了基礎(chǔ)。許多用戶在考慮使用Linux時(shí),就想到以前在Windows下常見(jiàn)的程序是否能正常運(yùn)行,這一點(diǎn)就消除了他們的疑慮。
多用戶、多任務(wù)
Linux支持多用戶,各個(gè)用戶對(duì)于自己的文件設(shè)備有自己特殊的權(quán)利,保證了各用戶之間互不影響。多任務(wù)則是現(xiàn)在電腦最主要的一個(gè)特點(diǎn),Linux可以使多個(gè)程序同時(shí)并獨(dú)立地運(yùn)行。
良好的界面
Linux同時(shí)具有字符界面和圖形界面。在字符界面用戶可以通過(guò)鍵盤輸入相應(yīng)的指令來(lái)進(jìn)行操作。它同時(shí)也提供了類似Windows圖形界面的X-Window系統(tǒng),用戶可以使用鼠標(biāo)對(duì)其進(jìn)行操作。在X-Window環(huán)境中就和在Windows中相似,可以說(shuō)是一個(gè)Linux版的Windows。
支持多種平臺(tái)
Linux可以運(yùn)行在多種硬件平臺(tái)上,如具有x86、680x0、SPARC、Alpha等處理器的平臺(tái)。此外Linux還是一種嵌入式操作系統(tǒng),可以運(yùn)行在掌上電腦、機(jī)頂盒或游戲機(jī)上。2001年1月份發(fā)布的Linux 2.4版內(nèi)核已經(jīng)能夠完全支持Intel 64位芯片架構(gòu)。同時(shí)Linux也支持多處理器技術(shù)。多個(gè)處理器同時(shí)工作,使系統(tǒng)性能大大提高。
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ǔ)也保持一致。
初學(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)用軟件編寫的。但是搞底層的就很少了。
二是電子類專業(yè)的:這類人的硬件基礎(chǔ)了相對(duì)較好,相反操作系統(tǒng),數(shù)據(jù)庫(kù)等軟件知識(shí)則差強(qiáng)人意。因此人多電子專業(yè)的人員都熟悉單片機(jī),用單片編寫點(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é)者買個(gè)開(kāi)發(fā)板確實(shí)很有必要,但也要選擇合適的,初學(xué)者合適的就是,資料齊全,有配套教程和學(xué)習(xí)指導(dǎo),再加上較及時(shí)的技術(shù)支持。
選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層板太貴。買開(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í)寫的LED閃爍程序呢。另外1周里其中還因?yàn)樽约哼^(guò)于菜,沒(méi)把OM設(shè)置好導(dǎo)致晶陣不陣。這個(gè)是必須做的,但一帶而過(guò)。目標(biāo)放的遠(yuǎn)一點(diǎn)。
評(píng)論