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