ARM7還是ARM9?uCOS還是Linux?初學者必看
ARM7簡介
本文引用地址:http://www.104case.com/article/201805/380661.htmARM7系列處理器是英國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()函數來進行任務切換。

評論