論壇原始地址(持續更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=93149
第3章 RTX5操作系統介紹
本章節介紹一下RTX5操作系統,讓大家對RTX5有一個整體的了解,RTX5是開源免費的確定性實時操作系統,適用於 ARM 和 Cortex-M 設備。
3.1 RTX5系統特性
3.2 RTX5系統規格
3.3 RTX5系統性能
3.4 RTX5系統內存要求
3.5 RTX5系統優勢
3.6 使用RTX5 VS 裸機方式的優勢
3.8 總結
3.1 初學者重要提示
- 現在RTX4和RTX5屬於CMSIS軟件包的一部分,Apache2.0授權,幾乎隨意商用。Github開源地址:https://github.com/ARM-software/CMSIS_5
- RTX4/RTX5不僅提供了MDK的移植文件,也提供了IAR和GCC移植文件。
3.2 RTX5系統特色
- 開源免費的確定性RTOS。
- 支持時間片,搶占式和合作式調度。
- 以低的中斷延遲執行高速實時操作(對於M3/M4/M7內核可以實現零中斷延遲)。
- 小的空間占用適用於資源受限的系統。
- 不限制數量的信號量,互斥信號量,消息郵箱和軟定時器。
- 支持多線程和線程安全操作。
- 通過MDK的RTE開發環境可以一鍵添加。
- 使用MDK基於對話框的配置向導,可以很方便的完成MDK的配置。
- 零中斷延遲
這里的零中斷延遲是指ISR的中斷相應時間和沒有使用RTX5系統是一樣的,也就是說用於Cortex-M3/M4/M7的RTX5內核庫中沒有關閉中斷的操作,這點應該算是RTX5一個很大的優勢,像Ucos-II,Ucos-III和FreeRTOS內核的很多地方關中斷操作,關中斷操作對實時性有哪些危害呢?比如此時某個任務正在調用系統API函數,而且此時中斷正好關閉了,也就是進入到了臨界區中,這個時候如果有一個緊急的中斷事件被觸發,這個中斷就不能得到及時執行,必須等到中斷開啟才可以得到執行,如果關中斷時間超過了緊急中斷能夠容忍的限度,危害是可想而知的。
-
- 確定性
確定性是指在在定義的時間內處理事件和中斷,RTX5 提供完全確定性的行為,這意味着在預定義時間內(期限)處理事件和中斷,這個主要得益於RTX5的零中斷延遲特性。(注:另外根據CMSIS RTOS RTX的說明,RTX系統的任務切換時間也是確定的)
-
- 線程安全.
線程安全涉及到的問題較多,詳情請看: http://www.keil.com/rl-arm/rl_threadsafe.asp
3.3 RTX5安全認證
TX5的汽車級,工業級,醫療和鐵路安全認證已經通過:
- ISO 26262 (ASIL D) 汽車級最高安全認證
- IEC 61508 (SIL 3) 工業級認證
- IEC 62304 (Class C) 醫療認證
- EN 50128 (SIL 4) 運輸/鐵路安全認證
支持的內核:
- Cortex-M0/M0+
- Cortex-M3
- Cortex-M4
- Cortex-M7
除了RTX5,他們家的Event Recorder,CMSIS-Core,還有C Library也通過了安全認證。認證后的這些組件起了個新名字叫Functional Safety Run-Time System (Arm FuSa RTS),另外注意,這個安全認證是基於MDK的AC6測試通過的。
對應的安全認證證書
3.4 RTX5系統性能(實時性)
反映RTOS實時性的兩個重要指標:一個是中斷延遲時間,另一個是任務切換時間,其中中斷延遲時間方面,使用CM內核的話,RTX系統可以實現零中斷延時,也就是跟裸機情況是一樣的。
3.5 RTX5系統內存要求
RTX5的典型需求是5KB的ROM空間和500字節的RAM。
3.6 RTX5系統優勢
RTX5 實時操作系統提供許多高級功能,其他供應商的RTOS產品中並不總是提供這些功能。在選擇RTOS時,應考慮以下幾點:
- RTX5開源免費
在RTX4和RTX5屬於CMSIS軟件包的一部分,Apache2.0授權,幾乎隨意商用。
- 市場領先的 RTOS - RTX 一直是嵌入式應用程序中領先的RTOS之一(2013 – 2019年嵌入式市場調查報告)。您可以信心十足地在應用程序中使用 RTX。
- 靈活的調度 - RTX 提供三種不同的調度方式,您可以使用最適合您的調度方式:
搶占式- 每個任務都具有不同的優先級,只有在更高優先級的任務准備好運行后才會運行。此選項方式於交互式系統,在用戶輸入某些內容之前,設備可能處於待機或后台模式。
時間片 - 每個任務都將運行固定的CPU運行時間段。數據記錄器/系統顯示器通常使用時間片調度,所有傳感器或數據源都會依次進行采樣,不分優先級。
合作式 - 每個任務將一直運行,直到指示其將控制權傳遞給另一個任務或遇到阻塞式API函數。可以在要求固定執行順序的應用程序中使用這種調度方式。
- 確定性的行為 - 並非每個 RTOS 都具有確定性。RTX 提供完全確定性的行為,這意味着在預定義時間內(期限)處理事件和中斷。您的應用程序可以依賴於一致且已知的進程計時。
- 專為嵌入式系統而設計 – RTX5 是專門為基於 ARM 和 Cortex-M MCU 的嵌入式系統而編寫的。它並不是根據較大的操作系統或其他架構改寫的。它運行速度快,占用的 MCU 資源極少,Flash占用量為 5KB (ROM)。
- 易於使用 - 學習周期短,產品開發速度快。µVision IDE/調試器完全支持 RTX5,其中采用 RTX 任務識別工具以便於在您的應用程序中快速方便地配置和調試 RTX5。
- 支持 - 提供了廣泛的資源,包括示例、用戶指南以及快速入門指南。Keil 完全支持 RTX。不僅MDK,當前RTX5對GCC和IAR也進行了支持。
3.7 使用RTX5 VS 裸機方式的優勢
簡單的嵌入式系統通常使用超級循環概念,其中應用程序按固定順序執行每個函數。中斷服務例程 (ISR) 用於時間關鍵程序部分。這種方法非常適合小系統,但對較為復雜的應用程序會有限制。
3.7.1 超級循環的缺點
- 必須在中斷(ISR)內處理時間關鍵運算:
- ISR 函數變得非常復雜,並且需要很長執行時間。
- ISR 嵌套可能產生不可預測的執行時間和堆棧需求。
- 超級循環和ISR之間的數據交換是通過全局共享變量進行的:
- 應用程序的程序員必須確保數據一致性。
- 超級循環可以與系統計時器輕松同步,但:
- 如果系統需要多種不同的周期時間,則會很難實現。
- 超過超級循環周期的耗時函數需要做拆分。
- 增加軟件開銷,應用程序難以理解。
- 超級循環使得應用程序變得非常復雜,因此難以擴展:
- 一個簡單的更改就可能產生不可預測的副作用,對這種副作用進行分析非常耗時。
- 超級循環 概念的這些缺點可以通過使用實時操作系統 (RTOS) 來解決。
3.7.2 RTOS的優勢
RTOS將程序函數分成獨立的任務,並為其提供合理的調度方式。RTX提供以下重要優勢:
- 任務調度 - 任務在需要時進行調用,從而確保了更好的程序執行和事件響應。
- 多任務 - 任務調度會產生同時執行多個任務的效果。
- 確定性的行為 - 在定義的時間內處理事件和中斷。
- 更短的 ISR - 實現更加確定的中斷行為。
- 任務間通信 - 管理多個任務之間的數據、內存和硬件資源共享。
- 定義的堆棧使用 - 每個任務分配一個堆棧空間,從而實現可預測的內存使用。
- 系統管理 - 可以專注於應用程序開發而不是資源管理。
3.8 總結
本章節就為大家講解這么多,主要目的是想讓大家對RTX5操作系統有一個整體的認識,從下一章我們就開始正式的進入RTX5操作系統的學習。