新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 十分鐘了解RTOS!

        十分鐘了解RTOS!

        作者: 時間:2022-10-17 來源:網絡 收藏

          實時操作()是管理微處理器或微控制器時間的軟件。實時指如果的邏輯和時序正確性無法滿足,可能會導致嚴重后果的系統。實時多任務應用是一個必須同時處理多個時間關鍵活動的系統。實時多任務內核(也稱為實時操作系統)是確保盡可能高效地處理時間關鍵事件的軟件。的使用,通過將應用程序劃分為多個獨立的任務,簡化了系統設計過程。

        本文引用地址:http://www.104case.com/article/202210/439158.htm

        1.前/后臺系統

          不使用的系統通常設計如圖1所示,這類系統稱為前/后臺系統。應用程序由一個無限循環組成,該循環調用不同的應用模塊來執行所需的操作。模塊按順序執行(后臺),由中斷服務程序(ISR)處理異步事件(前臺)。關鍵操作必須由ISR執行,以確保及時處理。由ISR提供的數據信息在相應的后臺模塊執行之前不會被處理,其延遲時間取決于后臺循環執行所需的時間。

        2.實時內核

          1、多任務處理

          多任務處理是在多個任務之間調度和切換CPU的過程,單個CPU在多個順序任務之間切換使用。多任務處理提供了將應用程序分解為一組共享處理器的小型專用任務的能力。實時內核使應用程序更易于設計和維護。任務是一個簡單的程序,認為自己擁有整個CPU。實時應用程序的設計過程涉及將要完成的工作拆分為負責部分問題的任務。

          2、內核

          內核負責任務管理和任務之間的通信。當內核決定運行另一個任務時,它將當前任務的上下文(CPU寄存器)保存到當前任務的獨立堆棧區域。新任務的上下文將從其堆棧區域恢復,恢復新任務的代碼執行。這個過程稱為上下文切換或任務切換。每個任務的堆頂地址等信息被存儲在任務控制塊(TCB)數據結構中。TCB在創建任務時分配,并由RTOS管理。

          3、中斷

          實時系統中的一個重要問題是從中斷響應到實際開始執行用戶中斷處理代碼需要時間。在處理臨界代碼時,RTOS都會禁用中斷。禁用中斷的時間越長,中斷延遲就越大。RTOS通常在短于50 uS的時間內禁用中斷,越短越好。

          4、調度

          調度是內核的主要職責,負責確認運行哪個任務以及何時運行。大多數實時內核采用優先級策略,每個任務根據其重要性分配一個優先級。任務的優先級由應用指定。在基于優先級調度的內核中,CPU的控制權將始終交給就緒的最高優先級任務。然而,最高優先級任務何時獲得CPU取決于所使用的調度類型。有兩種類型調度:非搶占式調度和搶占式調度。

          非搶占式調度

          非搶占式調度要求每個任務主動放棄對CPU的控制。為了保持任務并發,這個過程必須經常進行。非搶占式調度也稱為協作式多任務處理。當一個任務放棄CPU時,內核會執行下一個就緒的最重要的任務代碼。異步事件由ISR處理。ISR可以使更高優先級任務就緒,但ISR完成后將返回到被中斷的任務。只有當前任務自愿放棄CPU時,新的更高優先級任務才會獲得CPU的控制權。如圖2所示。非搶占式調度的延遲遠低于前后臺系統;延遲由最長任務的時間確定。

          搶占式調度

          在搶占式內核中,當一個事件使高優先級的任務就緒時,當前任務立即掛起,較高優先級的任務獲得CPU控制權。如果ISR使更高優先級的任務就緒,則被中斷的任務掛起,恢復執行新的更高優先級的任務。大多數實時系統采用搶占式調度,其響應速度更快。搶占式調度如圖3所示。

          5、重入

          可重入函數是可以由多個任務使用而不必擔心數據損壞的函數。相反,不可重入函數不能被多個任務共享,但可以通過使用信號量或在臨界段中代碼中禁用中斷來互斥使用不可重入函數。可重入函數可以被隨時中斷并恢復,不會丟失數據。可重入函數使用局部變量(CPU寄存器或堆棧變量),如果使用全局變量需保護其數據。專門為軟件設計的編譯器通常會提供可重入的運行時庫。非搶占式調度不需要可重入函數,除非函數在任務和ISR之間共享。如果函數由多個任務共享,則搶占式調度需要函數可重入。

          6、內核服務

          實時內核為應用程序提供各種服務。內核提供的最常見的服務之一是信號量管理。信號量是一種協議機制,用于控制對共享資源的訪問(互斥)、發布事件的發生或允許兩個任務同步它們的活動。信號量通常是代碼能否繼續執行的開關。如果信號量已在使用中,則請求任務將被掛起,直到信號量被其當前所有者釋放。掛起的任務通常不消耗CPU時間。

          內核還提供與時間相關的服務,允許任務自身延遲整數個系統時鐘。時鐘節拍通常每10到200毫秒發生一次,具體取決于應用要求。

          任務或ISR將信息傳遞給另一個任務,這稱為任務間通信,用于發送和接收消息的服務通常由內核提供。用于發送消息的兩個最常見的內核服務是消息郵箱和消息隊列。消息郵箱也稱為消息交換,通常是一個指針變量。通過內核提供的服務,任務或ISR將消息(指針)發送到郵箱。發送任務和接收任務約定指針指向的消息內容。消息隊列用于向一個任務發送多個消息。消息隊列本質上是一個郵箱數組。

        3.商業RTOS

          目前大約有100家RTOS供應商。產品可用于8、16和32位微處理器。其中一些是完整的操作系統,包括實時內核、輸入/輸出管理器、窗口系統、文件系統、網絡協議棧、語言接口庫、調試器和跨平臺編譯器等。RTOS的成本從100美元到超過10,000美元不等。如此多的供應商,困難在于選擇合適的RTOS。

        4.小型系統

          許多小型系統,如引擎控制、智能儀器、機器人、計算機外圍設備和電信設備都可以從使用RTOS中受益。此類系統通常基于8位微處理器設計。對于64 KB地址空間,大多數8位微處理器無法承受需要大量存儲器的RTOS。商業內核只需要大約1到3 KB的ROM。一些內核甚至允許用戶在逐個任務的基礎上指定堆棧大小。此功能有助于減少應用所需的RAM的空間。對RTOS的一個常見誤解是它大量增加了CPU開銷。事實上,一個RTOS只需要1%到4%的CPU時間來換取有價值的服務。小型RTOS的特性包括:

          ·低成本

          ·具有最小的中斷延遲

          ·內核服務的執行時間確定

          ·能夠管理至少20個任務

          ·允許動態創建和刪除任務

          ·提供信號量管理服務

          ·基于內核服務提供時間延遲和超時

        5.總結

          RTOS允許輕松設計和擴展實時應用程序,無需對軟件進行重大更改即可添加新的功能。大量應用程序可以從使用RTOS中受益。RTOS可以確保時間關鍵事件被快速有效地處理。一旦你將RTOS用于應用程序,你將離不開它!



        關鍵詞: 嵌入式 RTOS 系統

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 百色市| 华宁县| 石渠县| 兰西县| 怀宁县| 通许县| 乳源| 大城县| 建始县| 巫溪县| 礼泉县| 古蔺县| 三台县| 汕尾市| 阳朔县| 高唐县| 嵊州市| 吴桥县| 神木县| 蒙山县| 南阳市| 四子王旗| 时尚| 黑水县| 应城市| 大宁县| 宁夏| 康定县| 泉州市| 德钦县| 亳州市| 邛崃市| 兴安盟| 武冈市| 平安县| 喀什市| 保德县| 方山县| 五原县| 庆安县| 虹口区|