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