1概述 很多單片機的應(yīng)用中都需要同時執(zhí)行很多任務(wù)。對于這樣的應(yīng)用,我們可以利用實時操作系統(tǒng)來靈活地安排系統(tǒng)資源。RTX51是 Keil公司開發(fā)的一種應(yīng)用于MCS51系列單片機的實時多任務(wù)操作系統(tǒng),它可以工作在所有8051 單片機以及派生家族中,簡化了復(fù)雜的軟件設(shè)計,縮短了項目周期。 2 RTX51介紹
RTX51有2個模式:RTX51完全模式和最小模式。RTX51tiny最小模式版是RTX51完全版的一個子集,可以很容易地運行在8051系統(tǒng)上,而不需要外部RAM(XDATA)。RTX51完全模式有4個任務(wù)優(yōu)先級,可以和中斷函數(shù)并行處理,各個任務(wù)之間通過使用“郵箱”系統(tǒng)來進行信號和消息的傳遞,可以從內(nèi)存池中申請和釋放內(nèi)存;同時,可以強制一個任務(wù)停止執(zhí)行,等待一個中斷,或者是其它中斷傳來的信號量或者消息。
RTX51對系統(tǒng)硬件的要求如表1所列。
| 描述 | RTX51完全模式 | RTX51最小模式 |
| 任務(wù)數(shù) | 最大256,19個激活任務(wù),其中16個標(biāo)準(zhǔn)任務(wù),3個快速任務(wù) | 16 |
| RAM | 40~46字節(jié)RAM 20~200字節(jié)IDATA 最少450字節(jié)XDATA | 7字節(jié)DATA 3*任務(wù)數(shù)IDATA 不需要XDATA |
| ROM | 6KB~8KB | 900字節(jié) |
| 定時器 | 定時器0或1 | 定時器0 |
表1
2.1 RTX51任務(wù)
RTX51區(qū)分2類任務(wù):快速任務(wù)和標(biāo)準(zhǔn)任務(wù)。快速任務(wù)有很快的響應(yīng)速度,每個快速任務(wù)使用8051一個單獨的寄存器組,并且有自己的堆棧區(qū)域。RTX51支持最大同時有3個快速任務(wù)。標(biāo)準(zhǔn)任務(wù)需要多一點的時間來進行任務(wù)切換,因此使用的內(nèi)部RAM相對快速任務(wù)要少,所有的標(biāo)準(zhǔn)任務(wù)共用1個寄存器組和堆棧。當(dāng)任務(wù)切換的時候,當(dāng)前任務(wù)的寄存器狀態(tài)和堆棧內(nèi)容轉(zhuǎn)移到外部存儲器中。RTX51支持最大16個標(biāo)準(zhǔn)任務(wù)。
RTX51任務(wù)狀態(tài):
(1)運行(RUNNING)-當(dāng)前正在運行的任務(wù)處于RUNNING狀態(tài),同一時間只有1個任務(wù)可以運行。
(2)就緒(READY)-等待運行的任務(wù)處于READY狀態(tài),在當(dāng)前運行的任務(wù)退出運行狀態(tài)后,就緒隊列中優(yōu)先級最高的任務(wù)進入到運行狀態(tài)。
(3)阻塞(BLOCKED)-等待一個事件的任務(wù)處于BLOCKED狀態(tài),如果事件發(fā)生且優(yōu)先級比正在運行的任務(wù)高,此任務(wù)進入運行狀態(tài);如果優(yōu)先級比正在運行的任務(wù)低,此任務(wù)進入READY狀態(tài)。
(4)刪除(DELETED)-沒有開始的任務(wù)處于刪除狀態(tài)。
(5)任務(wù)切換-RTX51包含一個事件驅(qū)動的任務(wù)切換機制,它能夠按照任務(wù)的優(yōu)先級進行切換,也就是搶占式多任務(wù)系統(tǒng);另外還有一個可選的時間片輪轉(zhuǎn)切換任務(wù)模式,在時間片輪轉(zhuǎn)模式下,同級別的任務(wù)是按照時間片分別占用CPU 的。RTX51任務(wù)有4個優(yōu)先級:0、1、2 可以分配給標(biāo)準(zhǔn)任務(wù),優(yōu)先級3是為快速任務(wù)保留的。每個任務(wù)都可以等待事件的發(fā)生,而并不增加系統(tǒng)的負(fù)擔(dān);任務(wù)可以等待消息、信號、 中斷、超時事件或者它們的組合。任務(wù)切換是按照一定規(guī)則進行的,包括:進入到“就緒”狀態(tài)的優(yōu)先級高的任務(wù)先執(zhí)行;如果“就緒” 狀態(tài)的幾個任務(wù)是同一個優(yōu)先級,那么最先進入“就緒”狀態(tài)的先執(zhí)行。
2.2 RTX51事件
*超時(timeout):掛起運行的任務(wù)指定數(shù)量的時鐘周期。
*間隔(interval):類似于超時,但是軟件定時器沒有復(fù)位,典型應(yīng)用是產(chǎn)生時鐘。
*信號(signal):用于任務(wù)內(nèi)部同步協(xié)調(diào)。