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