認識RTOS


RTOS

  1. 前后台系統:早期嵌入式開發沒有嵌入式操作系統的概念,直接操作裸機,在裸機上寫程序,比如用51單片機基本就沒有操作系統的概念。

    通常把程序分為兩部分:前台系統和后台系統。

    簡單的小系統通常是前后台系統,這樣的程序包括一個死循環和若干個中斷服務程序:應用程序是一個無限循環,循環中調用API函數完成所需的操作,這個大循環就叫做后台系統中斷服務程序用於處理系統的異步事件,也就是前台系統。前台是中斷級,后台是任務級。
    20180603155109773

  2. 實時操作系統(Real-Time Operating System,簡寫為RTOS):實時操作系統是指面向實時運行對象,並為其服務的操作系統。RTOS是一種系統軟件,可以為應用程序提供服務並管理微控制器硬件資源,這些硬件資源包括內存、外設和中斷等。

    實時指的是任務(Task)在給定的時間(Deadline)內完成。。一個實時操作系統能保障每個任務能在一個已知的最大運行時間(Maximum Response Time)內完成,包括

    • 高精度計時系統
    • 多級中斷機制
    • 實時任務調度機制

    rtos

  3. 實時操作系統又分為硬實時和軟實時。硬實時要求在規定的時間內必須完成操作,硬實時系統不允許超時,在軟實時里面處理過程超時的后果就沒有那么嚴格。

    RTOS的核心在於實時內核,是一個可剝奪型的內核。可剝奪型內核就是可以剝奪其他任務的CPU使用權,它總是運行就緒任務中優先級最高的任務,整個過程由任務調度器來完成,任務調度器是操作系統最核心的東西。

  4. 操作系統一般可分為:通用操作系統(OS)和實時操作系統(RTOS)兩大類。而實時操作系統(RTOS)根據其運行的處理器不同可以進一步分為:CPU RTOS和MCU RTOS兩類。面向MCU或微控制器的RTOS一般也稱為嵌入式實時操作系統(embedded real-time operating system)。

    • 通用操作系統(OS)(Windows、Linux、Mac OS…)

      CPU: x86、ARM…

    • 實時操作系統(RTOS)

      • CPU RTOS(THREADX、SylixOS、VxWorks…)

        PowerPC、MIPS、RISC-V、68K、ARM Cortex-A…

      • MCU RTOS(RT-Thread、FreeRTOS…)

        8051、PIC、Arm Cortex-M…

為什么學習RTOS?

隨着物聯網和人工智能技術快速發展,人們對身邊的各種設備要求也越來越高。家里的台燈不僅要能遠程開關,還能夠通過感知周圍環境和記錄用戶使用習慣自動進行調節;為了隨時掌握身體健康狀況,各種可穿戴智能手環推陳出新,能夠定位,測步,記錄心跳等等。

程序的復雜性也在指數級暴增。RTOS(嵌入式實時操作系統)就好比一座“大廈”的地基,只有構築在堅固可靠的基石上,我們的物聯網產品才能應對各種考驗。

在8位或16位嵌入式系統應用中,由於CPU能力有限,往往采用單片機開發模式。但是,當嵌入式系統比較復雜、采用32位CPU時,由於處理能力強大,單線程的編程方式不但代碼邏輯復雜、容易出錯,同時也很難發揮出32位CPU的處理能力。而引入操作系統后,最主要的變化就在於”多線程“,讓多任務並行,充分發揮系統資源的能力。

RTOS的好處

  • 降低開發難度,直接使用系統API,即可完成系統資源的申請、多任務的配合(基於優先級的實時搶占調度,同優先級的時間片調度),以及任務間的通信等(如鎖、事件等機制)。
  • 增加代碼可讀性,易於維護和管理。
  • 提升可移植性,對接不同芯片的工作由操作系統完成,應用開發者只需要關注 OS 層接口。

RTOS發展的4個主要階段

(1)無操作系統階段

嵌入技術的早期階段,,沒有操作系統的支持,只能通過匯編語言對系統進行直接控制,運行結束后再清除內存。這些裝置雖然已經初步具備了嵌入式的應用特點,但僅僅只是使用8位的CPU芯片來執行一些單線程的程序,因此嚴格地說還談不上“系統”的概念。 這一階段嵌入式系統的主要特點是:系統結構和功能相對單一,處理效率較低,存儲容量較小,幾乎沒有用戶接口。

(2)簡單操作系統階段

20世紀80年代,嵌入式系統的程序員也開始基於一些簡單的“操作系統”開發嵌入式應用軟件,大大縮短了開發周期、提高了開發效率。此時的嵌入式操作系統雖然還比較簡單,但已經初步具有了一定的兼容性和擴展性,內核精巧且效率高,主要用來控制系統負載以及監控應用程序的運行。

(3)實時操作系統階段

20世紀90年代,隨着硬件實時性要求的提高,嵌入式系統的軟件規模也不斷擴大,逐漸形成了實時多任務操作系統(RTOS),並開始成為嵌入式系統的主流。此時的嵌入式操作系統已經具備了文件和目錄管理、設備管理、多任務、網絡、圖形用戶界面(GUI)等功能,並提供了大量的應用程序接口(API),從而使得應用軟件的開發變得更加簡單。

RTOS特點:實時性、可裁剪性、可靠性

RTOS市場

如下圖,如要查看最新的也可直接搜索Embedded Markets Study,或者查看國內整理的RTOS市場簡報

image-20200515012302017

RTOS舉例

  • FreeRTOS:FreeRTOS是專為小型嵌入式系統設計的可擴展的實時內核。 FreeRTOS操作系統是完全開源的操作系統,具有代碼公開、可移植、可裁剪、調度策略靈活的特點,可以方便地移植到各種單片機上運行。
  • μCOS(I/II/III):μC/ OS-II和μC/ OS-III是搶占式,高度便攜式和可擴展的實時內核。
  • RTX:Keil RTX是為ARM和Cortex-M設備設計的免版稅,確定性的實時操作系統。它允許您創建同時執行多個功能的程序,並幫助創建更好的結構和更容易維護的應用程序。
  • VxWorks:美國WindRiver公司於1983年設計開發的高性能、可擴展的實時操作系統,具有嵌入實時應用中最新一代的開發和執行環境,支持市場上幾乎所有的處理器,以其良好的可靠性和卓越的實時性被廣泛地應用在通信、軍事、航空、航天等高精尖技術及實時性要求極高的領域中。
  • **Windows CE **:美國Microsoft公司推出的嵌入式操作系統,支持眾多的硬件平台,其最主要特點是擁有與桌上型Windows家族一致的程序開發界面,因此,桌面操作系統Windows家族開發的程序可以直接在Windows CE上運行,主要應用於PDA(個人數字助理)、平板電腦、智能手機等消費類電子產品。但嵌入式操作系統追求高效、節省,Windows CE在這方便是笨拙的,它占用內存過大,應用程序龐大。
  • RT-Linux:美國墨西哥理工學院開發的基於linux的嵌入式實時操作系統,是一款提供源代碼、開放式自由軟件。RT-linux使用了精巧的內核,並把標准的linux核心作為實時核心的一個進程,同用戶的實時進程一起調度。這樣對linux內核的改動非常小,並且可以充分利用Linux 下現有的豐富的軟件資源。
  • QNX:加拿大QNX公司出品的一種商用的、遵從POSIX標准規范的類UNIX實時操作系統。
  • TI DSP/BIOS: DSP/BIOS是TI公司特別為其TMS320C6000TM,TMS320C5000TM和TMS320C28xTM系列DSP平台所設計開發的一個尺寸可裁剪的實時多任務操作系統內核,具有實時操作系統的諸多功能,如任務的調度管理、任務間的同步和通信、內存管理、實時時鍾管理、中斷服務管理、外設驅動程序管理等。

國產RTOS

  • RT-Thread:RT-Thread由國內一些專業開發人員從2006年開始開發、維護,除了類似FreeRTOS和μCOS的實時操作系統內核外,也包括一系列應用組件和驅動框架,如TCP/IP協議棧,虛擬文件系統,POSIX接口,圖形用戶界面,FreeModbus主從協議棧,CAN框架,動態模塊等,因為系統穩定,功能豐富的特性被廣泛用於新能源,電網,風機等高可靠性行業和設備上,已經被驗證是一款高可靠的實時操作系統。
  • Huawei LiteOS:Huawei LiteOS 是華為面向IoT領域,構建的輕量級物聯網操作系統,以輕量級低功耗、快速啟動、互聯互通、安全等關鍵能力,為開發者提供 “一站式” 完整軟件平台,有效降低開發門檻、縮短開發周期。
  • AliOS Things:AliOS Things 是 AliOS 家族旗下、面向 IoT 領域的、高可伸縮的物聯網操作系統。
  • TencentOS tiny:騰訊面向物聯網領域開發的實時操作系統,具有低功耗,低資源占用,模塊化,安全可靠等特點。
  • DJYOS:與傳統操作系統不同,DJYOS不是以線程而是以事件為調度核心,這種調度算法使程序員擺脫模擬計算機執行過程編寫程序的思維方式,而是按人類認知世界的方式編寫應用程序,就如同在嵌入式編程中引入了VC似的。
  • SylixOS:SylixOS 是一個開源的跨平台的大型實時操作系統,SylixOS誕生於2006年,經過十多年的持續開發,SylixOS 已成為功能最為全面的國產操作系統之一。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM