早期的嵌入式系統中沒有作業系統的概念,程式設計師編寫嵌入式程式通常直接面對裸機及裸裝置。在這種情況下,通常把嵌入式程式分成兩部分,即前台程式和後台程式。
前台程式通過中段來處理事件,其結構一般為無限迴圈;後台程式則掌管整個嵌入式系統軟、硬體資源的分配、管理以及任務的排程,是乙個系統管理排程程式。這就是通常所說的前後臺系統。一般情況下,後台程式也叫任務級程式,前台程式也叫事件處理級程式。在程式執行時,後台程式檢查每個任務是否具備執行條件,通過一定的排程演算法來完成相應的操作。對於實時性要求特別嚴格的操作通常由中斷來完成,僅在中斷服務程式中標記事件的發生,不再做任何工作就退出中斷,經過後台程式的排程,轉由前台程式完成事件的處理,這樣就不會造成在中斷服務程式中處理費時的事件而影響後續和其他中斷。
實際上,前後臺系統的實時性比預計的要差。這是因為前後臺系統認為所有的任務具有相同的優先級別,即是平等的,而且任務的執行又是通過fifo佇列排隊,因而對那些實時性要求高的任務不可能立刻得到處理。另外,由於前台程式是乙個無限迴圈的結構,一旦在這個迴圈體中正在處理的任務崩潰,使得整個任務佇列中的其他任務得不到機會被處理,從而造成整個系統的崩潰。由於這類系統結構簡單,幾乎不需要ram/rom的額外開銷,因而在簡單的嵌入式應用被廣泛使用。
前後臺系統
早期的嵌入式系統中沒有作業系統的概念,程式設計師編寫嵌入式程式通常直接面對裸機及裸裝置。在這種情況下,通常把嵌入式程式分成兩部分,即前台程式和後台程式。應用程式是乙個無限的迴圈,迴圈中呼叫相應的函式完成相應的操作,這部分可以看成後台行為。前台程式通過中斷來處理事件 後台程式則掌管整個嵌入式系統軟 硬...
前後臺系統
簡單的小型系統設計一般是基於前後臺或無限迴圈的系統,包含乙個無限迴圈的模組實現需要的操作 後台 中斷處理程式實現非同步事件 前台 前台也叫做中斷級,後台也叫做任務級。臨界操作應該在任務級中被執行,如不可避免的要在中斷服務程式中執行,也要確保是在很短的時間內完成。因為這會導致中斷服務程式占用過長的時間...
關於前後臺系統
早期的嵌入式系統中沒有作業系統的概念,程式設計師編寫嵌入式程式通常直接面對裸機及裸裝置。在這種情況下,通常把嵌入式程式分成兩部分,即前台程式和後台程式。前台程式通過中段來處理事件,其結構一般為無限迴圈 後台程式則掌管整個嵌入式系統軟 硬體資源的分配 管理以及任務的排程,是乙個系統管理排程程式。這就是...