【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核心可以實現零中斷延遲
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作業系統的學習。