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