基于ARM設計的多生理參數嵌入式監護系統
在明確I/O方式,alarm設備對應的硬件資源之后,可以采用ioctl控制alarm設備。而編寫Linux設備驅動程序的主要工作就是編寫子函數填充file_operations的各個字段。下面就是填充之后的file_operations,
struct file_operations test_fops = {read: read_test,
write: write_test,
open: open_test,
release: release_test};
上述各個子函數的功能如下:
open_test函數實現請求I/O內存資源;映射寄存器地址并保存;讀取寄存器初始值并重新設置控制寄存器。release_test函數實現 I/O內存資源的釋放。read_test函數實現對寄存器當前狀態的讀取,并將讀到的數據傳遞給應用程序。write_test函數實現將應用程序傳來的數據輸出。
PC機上調試完畢后,將此驅動程序編譯進嵌入式Linux的內核前,需要進行一定的修改和設置。在交叉編譯內核時,alarm.c文件會被自動編譯并嵌入內核。然后將編譯好的內核制作成映像文件以備下載。最后編寫一個測試程序,交叉編譯測試程序并將其添加到文件系統中去。將新的內核映像以及文件系統下載到開發板上。新的內核運行之后,在目錄/dev下創建設備,然后執行測試程序即可。
3.2監護軟件的實現
在嵌入式Linux中,采用功能強大而全面的GUI開發工具能夠縮短開發周期和降低開發難度,本系統采用Qt/Embedded開發監護軟件[6]。
3.2.1程序設計及功能模塊結構
Qt編程的優點是Signal Slot機制,當一個組件發出Signal時,其他一個組件或多個組件可以通過Slot接收發來的Signal,組件本身也可以接收自己的Signal,這樣處理一個事件將變得非常容易[6]。在通用計算機系統開發中普遍使用的模塊化設計技術需要更好地應用于嵌入式系統[3]。從軟件層次角度而言,應用軟件的模塊化相對容易實現。圖3所示是應用軟件的功能模塊結構圖,圖4所示是主程序的流程圖。
評論