1. 程式人生 > >【RTX作業系統教程】第4章 RTX作業系統介紹

【RTX作業系統教程】第4章 RTX作業系統介紹

第4章      RTX作業系統介紹

    本章節介紹一下RTX作業系統,讓大家對RTX有一個整體的瞭解,Keil RTX 是免版稅的確定性實時作業系統,適用於 ARM 和 Cortex-M 裝置。     4.1 RTX系統特性     4.2 RTX系統規格     4.3 RTX系統性能     4.4 RTX系統記憶體要求     4.5 RTX系統優勢     4.6 使用RTXVS 裸機方式的優勢     4.7 RTX和其它5款RTOS的實時性PK     4.8    總結4.1  RTX系統特色

圖4.1RTX核心

u 帶有原始碼的免版稅,確定性RTOS。 u 支援時間片,搶佔式和合作式排程。 u 以低的中斷延遲執行高速實時操作(對於M3/M4核心可以實現零中斷延遲

)。 u 小的空間佔用適用於資源受限的系統。 u 不限制數量的任務,每個任務都具有254的優先順序。 u 不限制數量的訊號量,互斥訊號量,訊息郵箱和軟定時器。 u 支援多執行緒和執行緒安全操作。 u 使用MDK基於對話方塊的配置嚮導,可以很方便的完成MDK的配置。 l 免版稅       RTX的免版稅是建立在購買了正版MDK-ProfessionalEdition基礎之上,詳情請看:http://www.keil.com/rl-arm/rl_license.asp l 零中斷延遲       這裡的零中斷延遲是指ISR的中斷相應時間和沒有使用RTX系統是一樣的,也就是說用於Cortex-M3/M4的RTX核心庫中沒有關閉中斷的操作,這點應該算是RTX一個很大的優勢,像uCOS-II,uCOS-III和FreeRTOS核心的很多地方關中斷操作,關中斷操作對實時性有哪些危害呢?比如此時某個任務正在呼叫系統API函式,而且此時中斷正好關閉了,也就是進入到了臨界區中,這個時候如果有一個緊急的中斷事件被觸發,這個中斷就不能得到及時執行,必須等到中斷開啟才可以得到執行,如果關中斷時間超過了緊急中斷能夠容忍的限度,危害是可想而知的。 l 確定性       確定性是指在在定義的時間內處理事件和中斷,RTX 提供完全確定性的行為,這意味著在預定義時間內(期限)處理事件和中斷,這個主要得益於RTX的零中斷延遲特性。(注:另外根據CMSIS RTOS RTX的說明,RTX系統的任務切換時間也是確定的
) l 執行緒安全       執行緒安全涉及到的問題較多,詳情請看: http://www.keil.com/rl-arm/rl_threadsafe.asp 4.2   RTX系統規格  

1.     不限意味著RTX核心對數量沒有限制,但是,可用的系統記憶體資源限制可以建立的專案數量。 2.     用於Cortex-M3/M4核心的RTX庫不禁用中斷,中斷延遲與無RTX核心時相同,Cortex-M1/M0的中斷延遲小於20個時鐘週期。4.3   RTX系統性能  

1.     用於Cortex-M3/M4核心的RTX庫不禁用中斷,中斷延遲與無RTX核心時相同,Cortex-M1/M0的中斷延遲小於20個時鐘週期。4.4  RTX系統記憶體要求

 

1.     本測試的RTX核心是針對 10 個任務、10 個使用者計時器並禁用堆疊檢查。 2.     RAM要求取決於同時執行的任務數量。 3.     程式碼和RAM大小使用 MicoLib 執行庫進行計算。4.5  RTX系統優勢 Keil RTX 實時作業系統提供許多高階功能,其他供應商的RTOS產品中並不總是提供這些功能。在選擇RTOS時,應考慮以下幾點: u RTX 包含在 MDK-ARM 中 - 全功能、商業級RTX(包括原始碼)作為 Keil MDK-ARM 開發工具的一部分提供。這不是評估版。它可完全配置,沒有任何限制。因此,如果您計劃使用 MDK 進行開發,RTX 是免費的。 u RTX 免版稅 - RTX 是免版稅提供的。獲得了使用許可後,您可以裝備使用RTX建立的產品,而無需支付其他費用或產生後續成本。 u 市場領先的 RTOS -RTX 一直是嵌入式應用程式中領先的RTOS之一(2013,2014,2015年嵌入式市場調查報告)。您可以信心十足地在應用程式中使用 RTX。 u 靈活的排程 - RTX 提供三種不同的排程方式,您可以使用最適合您的排程方式:         搶佔式- 每個任務都具有不同的優先順序,只有在更高優先順序的任務準備好執行後才會執行。此選項方式於互動式系統,在使用者輸入某些內容之前,裝置可能處於待機或後臺模式。         時間片 -每個任務都將執行固定的CPU執行時間段。資料記錄器/系統顯示器通常使用時間片排程,所有感測器或資料來源都會依次進行取樣,不分優先順序。         合作式 -每個任務將一直執行,直到指示其將控制權傳遞給另一個任務或遇到阻塞式API函式。可以在要求固定執行順序的應用程式中使用這種排程方式。 u 確定性的行為 - 並非每個RTOS 都具有確定性。RTX 提供完全確定性的行為,這意味著在預定義時間內(期限)處理事件和中斷。您的應用程式可以依賴於一致且已知的程序計時。 u 專為嵌入式系統而設計 - RTX 是專門為基於 ARM 和 Cortex-M MCU 的嵌入式系統而編寫的。它並不是根據較大的作業系統或其他架構改寫的。它執行速度快,佔用的 MCU 資源極少,記憶體佔用量僅為 5KB (ROM)。 u 易於使用 - 學習週期短,產品開發速度快。μVision IDE/偵錯程式完全支援 RTX,其中採用 RTX 任務識別工具以便於在您的應用程式中快速方便地配置和除錯 RTX。 u 原始碼 - 在所有MDK-ARM 版本中都包含 RTX 原始碼。這對於需要原始碼進行產品認證的情況會很有用。 u 支援 - 提供了廣泛的資源,包括示例、使用者指南以及快速入門指南。Keil完全支援 RTX。4.6  使用RTX VS 裸機方式的優勢     簡單的嵌入式系統通常使用超級迴圈概念,其中應用程式按固定順序執行每個函式。中斷服務例程 (ISR) 用於時間關鍵程式部分。這種方法非常適合小系統,但對較為複雜的應用程式會有限制。4.6.1     超級迴圈的缺點 u  必須在中斷(ISR)內處理時間關鍵運算: l  ISR 函式變得非常複雜,並且需要很長執行時間。 l  ISR 巢狀可能產生不可預測的執行時間和堆疊需求。 u  超級迴圈和ISR之間的資料交換是通過全域性共享變數進行的: l  應用程式的程式設計師必須確保資料一致性。 u  超級迴圈可以與系統計時器輕鬆同步,但: l  如果系統需要多種不同的週期時間,則會很難實現。 l  超過超級迴圈週期的耗時函式需要做拆分。 l  增加軟體開銷,應用程式難以理解。 u  超級迴圈使得應用程式變得非常複雜,因此難以擴充套件: l  一個簡單的更改就可能產生不可預測的副作用,對這種副作用進行分析非常耗時。 l  超級迴圈 概念的這些缺點可以通過使用實時作業系統 (RTOS) 來解決。4.6.2     RTOS的優勢     RTOS將程式函式分成獨立的任務,併為其提供合理的排程方式。RTX提供以下重要優勢: u  任務排程 - 任務在需要時進行呼叫,從而確保了更好的程式執行和事件響應。 u  多工 - 任務排程會產生同時執行多個任務的效果。 u  確定性的行為 - 在定義的時間內處理事件和中斷。 u  更短的 ISR - 實現更加確定的中斷行為。 u  任務間通訊 - 管理多個任務之間的資料、記憶體和硬體資源共享。 u  定義的堆疊使用 - 每個任務分配一個堆疊空間,從而實現可預測的記憶體使用。 u  系統管理 - 可以專注於應用程式開發而不是資源管理。

圖4.2RTX中任務通訊

圖4.2中任務1和任務2是應用程式中的函式,RTX提供了記憶體池,訊息郵箱和任務之間的通訊機制

圖4.3 RTX為直接訪問RTOS所有資源提供了一種簡單語法

4.7  RTX和其它5款RTOS的實時性PK     RTOS實時性的兩個重要指標,一個是中斷延遲時間,另一個就是任務切換時間,因為使用CM3或者CM4核心,RTX系統可以實現零中斷延時,也就是跟裸機情況是一樣的。其它4款RTOS都無法實現達到這個效能指標。中斷延時時間方面,RTX完勝。     下面就是任務切換時間的比較:    測試條件 :STM32F103VET6,Cortex-M3核心,72MHz,              軟體用的MDK4.54,  1級優化。              測試10000次,2ms測試一次,然後求平均。

從上面的測試可以看出,RTX的優勢很明顯,其實除了任務切換時間外,訊號量,事件標誌,訊息郵箱的實時性都比其它4款RTOS的強勁。4.8  總結

    本章節就為大家講解這麼多,主要目的是想讓大家對RTX作業系統有一個整體的認識,從下一章我們就開始正式的進入RTX作業系統的學習。