計算機系統分析應用論文
一、概述
一般說來,單片機的應用系統中都需要同時執行很多任務,我們可以利用實時操作系統來靈活地安排系統資源。rtx51是美國keil公司開發的一種小型的面向mcs51系列單片機的實時多任務操作系統,它可以工作于8051單片機以及派生家族中,簡化了復雜的軟件設計,縮短了項目周期。
二、rtx51介紹
rtx51有2個模式:rtx51完全模式和最小模式。rtx51最小模式版是rtx51完全版的一個子集,可以很容易地運行在8051系統上,而不需要外部ram(dxata)。rtx51完全模式有4個任務優先級,可以和中斷函數并行處理,各個任務之間通過使用“郵箱”系統來進行信號和消息的傳遞,可以動態地申請和釋放內存;同時,可以強制一個任務停止執行,等待一個中斷,或者是其它中斷傳來的信號量或者消息。
(一)rtx51任務
rtx51包括2類任務:快速任務和標準任務?焖偃蝿沼泻芸斓捻憫俣,每個快速任務使用8051一個單獨的寄存器組,并且有自己的堆棧區域。rtx51支持最大同時有3個快速任務。標準任務需要多一點的時間來進行任務切換,因此使用的內部ram相對快速任務要少,所有的標準任務共用1個寄存器組和堆棧。當任務切換的時候,當前任務的寄存器狀態和堆棧內容轉移到外部存儲器中。rtx51支持最大16個標準任務。
(二)rtx51任務狀態
。1)運行(runnign)當前正在運行的任務處于running狀態,同一時間只有1個任務可以運行。
(2)就緒(ready)等待運行的任務處于ready狀態,在當前運行的任務退出運行狀態后,就緒隊列中優先級最高的任務進入到運行狀態。
(3)阻塞(blocked)等待一個事件的任務處于blocked狀態,如果事件發生且優先級比正在運行的任務高,此任務進入運行狀態;如果優先級比正在運行的任務低,此任務進入ready狀態。
。4)刪除(d)沒有開始的任務處于刪除狀態。
(三)rtx51中斷處理
rtx51完全模式提供2種方法來處理中斷:一種是c51的中斷函數,另一種是rtx51的中斷。它又可以分為快速任務中斷和標準任務中斷。對于中斷函數這種方法,它同時也可以在不使用rtx51的情況下使用,當中斷發生的時候,程序就跳到了相應的中斷函數,它和正在運行的任務是互相獨立的,中斷的處理是在rtx51系統之外,和任務切換規則沒有關聯。對于任務中斷的方法,不管使用快速是標準任務來處理中斷,如果中斷發生,等待中斷的任務就從“等待”狀態進入到就緒狀態,并按照任務切換規則進行切換。
(四)任務調度rtx51
包含一個事件驅動的任務調度機制,它能夠按照任務的優先級進行切換,也就是搶占式多任務系統;另外還有一個可選的時間片輪轉切換任務模式,在這種模式下,rtx51使用8051內部定時器t0來產生定時節拍,各任務只在各自分配的定時節拍數(時間片)內執行。當時間片用完后,切換至下一任務運行,因此,各任務是并發執行的。同級別的任務是按照時間片分別占用cpu的。rtx51任務有4個優先級:0、1、2可以分配給標準任務,優先級3是為快速任務保留的。每個任務都可以等待事件的發生,而并不增加系統的負擔;任務可以等待消息、信號、中斷、超時事件或者它們的組合。
(五)任務控制
為了能描述和控制任務的運行,rtx51為每個任務定義了稱作任務控制塊的數據結構,主要包括四項內容:任務的代碼入口地址,位于code空間,2字節為一個單位。
任務所使用堆棧棧底位置,位于idata空間,1字節為一個單位。
任務的定時節拍計數器,在每一次定時節拍中斷后都自減一次。
任務狀態寄存器,用其各個位來表示任務所處的狀態。位于idata空間,以2字節為一單位。
(六)定時器t0中斷服務程序的任務
。1)rtx51使用定時器t0作為定時節拍發生器,是任務切換、時間片輪轉的依據。
。2)更新各個任務節拍數:將各任務節拍數寄存器減1,如果某任務超時,并且該任務正在等待超時事件,則將該任務置為“ready”狀態,使其返回任務隊列。
(3)檢查自由堆?臻g:若自由堆?臻g范圍小于freestack(默認為20字節)時,可以調用宏stack_error,進行堆棧出錯處理。
三、rtx51應用中應注意的問題
原則講rtx51可以應用到基于mcs51系列單片機組成的任何系統中。rtx51的`優點在于軟件開發周期短、效率高;由于rtx51在運行時需要占用cpu的部分硬件資源,如通常占用定時/計數器t0,且對堆棧深度要求較高,因此,在使用時應注意rtx51對硬件配置的要求。
(一)rtx51對硬件的要求
rtx51分為完全模式和最小模式,對于rtx51完全模式,要求系統要有外部ram,同時,還應合理分配cpu的硬件資源,留出定時/計數器t0作為系統多任務執行的時間片發生器;對于簡單的嵌入式系統,由于通常沒有外部ram,通常選擇rtx51最小模式。在最小模式下,定時/計數器t0用戶不能使用,而是留給系統作多任務切換的時間片發生器。
(二)合理分配任務的時間片數和任務優先級
在執行多任務時,由于各個任務處理時,需要的時間不同,任務對實時性要求不同,所以,應合理配置各個任務的時間片數,盡量使任務在規定的時間片內完成,減少任務間的消息傳遞,確保系統資源的使用效率。在rtx51完全模式下,應注意各個任務的優先級配置;在rtx51最小模式下,各個任務沒有優先級規定,各任務只能在時間片定時器的控制下并行執行。
四、結論
在can局域網節點設計過程中,我們成功地將rtx51最小模式應用到系統之中,簡化了系統的軟件設計,提高了開發效率,縮短了開發周期。
【計算機系統分析應用論文】相關文章: