基于嵌入式操作系統(tǒng)的控制系統(tǒng)平臺設(shè)計
3.1.4基于RTAI-Linux的應(yīng)用程序開發(fā)
在編寫基于RTAI-Linux的應(yīng)用程序時,根據(jù)實時系統(tǒng)的具體要求,將應(yīng)用程序分為實時任務(wù)和非實時任務(wù)。實時任務(wù)是實時模塊,作為Linux核心可加載模塊運行在核心態(tài)。一般地,定義init_module()函數(shù),它在執(zhí)行insmod命令裝載模塊時被調(diào)用,在該函數(shù)中一般是作一些初試化工作,并且啟動實時任務(wù)。同樣的,還需要定義cleanup_module()函數(shù),它在執(zhí)行rmmod卸載模塊時被調(diào)用,在該函數(shù)中一般是做一些資源釋放工作。實時任務(wù)的設(shè)計應(yīng)該盡可能簡單,僅包含那些有強實時要求的處理模塊,如實時數(shù)據(jù)采集、外部設(shè)備控制等。
非實時任務(wù)是普通的Linux進程,它在用戶態(tài)運行,運行那些對實時要求不高的任務(wù),如數(shù)據(jù)處理、圖形顯示等。
實時任務(wù)(RTAI核心態(tài))并不能直接調(diào)用系統(tǒng)調(diào)用,它必須通過特定的方法和非實時任務(wù)(Linux進程)進行通信。它們可以通過共享內(nèi)存和FIFO等方法通信。
基于RTAI應(yīng)用程序的結(jié)構(gòu)圖如圖2所示。
圖2 RTAI應(yīng)用程序結(jié)構(gòu)圖
3.2實時數(shù)據(jù)庫管理與通信
本系統(tǒng)的實時數(shù)據(jù)庫管理著全局I/O數(shù)據(jù)。通過硬件驅(qū)動程序,將數(shù)據(jù)采集,并放入到實時數(shù)據(jù)庫中,同時,上層軟件從實時數(shù)據(jù)庫中獲得數(shù)據(jù)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論