a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于RTX51 的單片機軟件設計

基于RTX51 的單片機軟件設計

作者: 時間:2016-12-02 來源:網絡 收藏
1 概述

很多單片機的應用中都需要同時執行很多任務,對于這樣的應用,我們可以利用實時操作系統來靈活地安排系統資源。RTX51是美國Keil公司開發的一種小型的應用于MCS51系列單片機的實時多任務操作系統,它可以工作所有8051單片機以及派生家族中,簡化了復雜的軟件設計,縮短了項目周期。我們實踐中用RTX51來開發單片機軟件。設計單片機控制的GPS接收板軟件,取得了很好的效果。

2 RTX51介紹

RTX51有2個模式:RTX51完全模式和最小模式。RTX51最小模式版是RTX51完全版的一個子集,可以很容易地運行在8051系統上,而不需要外部RAM(DXATA)。RTX51完全模式有4個任務優先級,可以和中斷函數并行處理,各個任務之間通過使用“郵箱”系統來進行信號和消息的傳遞,可以從內存池中申請和釋放內存;同時,可以強制一個任務停止執行,等待一個中斷,或者是其它中斷傳來的信號量或者消息。RTX51對系統硬件的要求如表1所列。

2.1 RTX51任務

RTX51區分2類任務:快速任務和標準任務??焖偃蝿沼泻芸斓捻憫俣龋總€快速任務使用8051一個單獨的寄存器組,并且有自己的堆棧區域。RTX51支持最大同時有3個快速任務。標準任務需要多一點的時間來進行任務切換,因此使用的內部RAM相對快速任務要少,所有的標準任務共用1個寄存器組和堆棧。當任務切換的時候,當前任務的寄存器狀態和堆棧內容轉移到外部存儲器中。RTX51支持最大16個標準任務。

RTX51任務狀態:

①運行(RUNNIGN)——當前正在運行的任務處于RUNNING狀態,同一時間只有1個任務可以運行。

②就緒(READY)——等待運行的任務處于READY狀態,在當前運行的任務退出運行狀態后,就緒隊列中優先級最高的任務進入到運行狀態。

③阻塞(BLOCKED)——等待一個事件的任務處于BLOCKED狀態,如果事件發生且優先級比正在運行的任務高,此任務進入運行狀態;如果優先級比正在運行的任務低,此任務進入READY狀態。

④刪除(DELETED)——沒有開始的任務處于刪除狀態。

⑤任務切換——RTX51包含一個事件驅動的任務切換機制,它能夠按照任務的優先級進行切換,也就是搶占式多任務系統;另外還有一個可選的時間片輪轉切換任務模式,在時間片輪轉模式下,同級別的任務是按照時間片分別占用CPU的。RTX51任務有4個優先級:0、1、2可以分配給標準任務,優先級3是為快速任務保留的。每個任務都可以等待事件的發生,而并不增加系統的負擔;任務可以等待消息、信號、中斷、超時事件或者它們的組合。任務切換是按照一定規則進行的,包括:進入到“就緒”狀態的優先級高的任務先執行;如果“就緒”狀態的幾個任務是同一個優先級,那么最先進入“就緒”狀態的先執行。

RTX51任務切換圖如圖1所示。



2.2 RTX51事件

◇超時(timeout):掛起運行的任務指定數量的時間周期。

◇間隔(interval):類似于超時,但是軟件定時器沒有復位,典型應用是產生時鐘。

◇信號(signal):用于任務內部同步協調。

◇消息(message):適用于RTX51 Full,用于信息的交換。我們可以把一個消息交送到一個特定的郵箱。消息由2字節組成,可以是用戶按照自己的需求定主的數據,也可以是指向數據的指針。如果郵箱的消息列表滿,而且是中斷發送消息,這個消息將會丟失;如果是任務發送消息,那么任務將會進入到等待狀態,直到郵箱重新有了位置可以接收這一條消息。郵箱是按照FIFO的原則來管理消息的,如果幾個任務都在等待接收消息,那么最先進入等待接收隊列的將接收消息。一個郵箱最多可以存儲8條消息。當郵箱滿的時候,最多只能有16個等待任務。

◇中斷(interrup):適用于RTX51 Full,信號量用于管理共享的系統資源。通過使用“令牌”,允許在同一時刻只有一個任務使用某些資源。如果幾個任務申請訪問同一個資源,那么首先提出申請的將允許訪問,其它的任務進入等待隊列,直到第1個任務操作完畢,下一個任務才能繼續。

Os_wait()函數掛起一個任務來等待一個事件的發生。這樣可以同步2個或幾個任務。它的工作過程如下:當任務等待的事件沒有發生的時候,系統掛起這個任務;當事件發生時,系統根據任務切換規則切換任務。

上一頁 1 2 下一頁

評論


技術專區

關閉