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