ARM7嵌入式系統(tǒng)在車輛調(diào)度中的應(yīng)用范疇
基于狀態(tài)機的程序執(zhí)行過程是這樣的:在任何時候都存在一個或者多個狀態(tài)機活動的狀態(tài)。如果一個狀態(tài)是活動的,那么離開這個狀態(tài)的轉(zhuǎn)換可能會激發(fā),引起一個事件的執(zhí)行,并使得另一個狀態(tài)或位于初始狀態(tài)位置的狀態(tài)激活(下一個狀態(tài)處于初始狀態(tài))。
本文引用地址:http://cafeforensic.com/article/272601.htm狀態(tài)機它是說明狀態(tài)機的對象在對象自己的生命期中事件的所經(jīng)歷的狀態(tài)序列以及它們對那些事件的響應(yīng)。可以這樣理解狀態(tài)機狀態(tài)機是對象的狀態(tài)在事件的作用下從一個狀態(tài)轉(zhuǎn)移到另一個狀態(tài)。
狀態(tài)機中的幾個基本概念:
1.狀態(tài)(state):是指在對象的生命期中的一個條件或狀況,在此期間對象將滿足某些條件、執(zhí)行某些活動或等待某些事件。
2.事件(event)是對一個在時間和空間上占有一定位置的有意義的事情的說明。在狀態(tài)機中一個事件的產(chǎn)生可以引起一次狀態(tài)轉(zhuǎn)換。
3.轉(zhuǎn)換(transition)是兩個狀態(tài)之間的一種關(guān)系,它指明對象在第一個狀態(tài)中執(zhí)行的一定的動作,并當(dāng)特定事件或特定條件滿足時進入第二個狀態(tài)。
在嵌入式系統(tǒng)的程序設(shè)計中,應(yīng)該注意的另一個問題是函數(shù)的可重入問題, 可重入函數(shù)可以被遞歸調(diào)用,可以同時被兩個或多個進程調(diào)用,這就要求在編譯的時候要為可重入函數(shù)提供一個模擬堆棧區(qū)。
圖二是設(shè)計中采用狀態(tài)機這種設(shè)計方法設(shè)計的系統(tǒng)程序中LCD顯示部份。下面是對圖二的解釋。
其中菜單1是顯示歡迎界面(就是上面提到的狀態(tài));菜單2是發(fā)送短消息;菜單3是記錄發(fā)送短消息內(nèi)容的;菜單4是用來讀取接收到的短消息。具體的狀態(tài)轉(zhuǎn)移過程是這樣的,當(dāng)顯示處于歡迎界面的時候,在這個狀態(tài)下,如向下的按鍵被按下(這就是一個事件)或發(fā)送短消息的鍵被按下,則系統(tǒng)狀態(tài)轉(zhuǎn)移到菜單2(發(fā)生了一次狀態(tài)轉(zhuǎn)移,下面和這是類似的,故相應(yīng)的分析省略了。);在這個狀態(tài)下,當(dāng)向下按鍵被按下或系統(tǒng)要輸入發(fā)送短消息的內(nèi)容時候,系統(tǒng)狀態(tài)從菜單2進入菜單3;在這個狀態(tài)下,當(dāng)向下的鍵盤被按下,系統(tǒng)的狀態(tài)轉(zhuǎn)移到菜單4;讀取短消息結(jié)束時,系統(tǒng)狀態(tài)返回到歡迎界面。實際的系統(tǒng)還有返回按鍵等,這里只是用這個圖簡單說明采用狀態(tài)機的程序設(shè)計方法。
評論