計算機系統分析應用論文

學識都 人氣:1.81W

一、概述

計算機系統分析應用論文

一般說來,單片機的應用系統中都需要同時執行很多任務,我們可以利用實時操作系統來靈活地安排系統資源。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)檢查自由堆棧空間:若自由堆棧空間範圍小於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最小模式應用到系統之中,簡化了系統的軟件設計,提高了開發效率,縮短了開發週期。