驅動(dòng)程序如何實(shí)現設備函數對外圍設備操作及控制解析方案
4結論
總的來(lái)說(shuō),設備函數的實(shí)現過(guò)程由下面幾個(gè)步驟來(lái)完成:
(1) 加載驅動(dòng)程序。驅動(dòng)程序中的初始化函數申請設備名和主設備號,這些可以在/proc/devieces目錄中查看到。 (2)從/proc /devices中獲得主設備號,驅動(dòng)程序加載成功后建立設備節點(diǎn)文件。通過(guò)主設備號將設備節點(diǎn)文件和設備驅動(dòng)程序聯(lián)系在一起。設備節點(diǎn)文件中的file 屬性中指明了驅動(dòng)程序中fops方法實(shí)現的函數指針。 (3)用戶(hù)程序使用open打開(kāi)設備節點(diǎn)文件,這時(shí)操作系統內核知道該驅動(dòng)程序工作了,就調用 fops方法中的open函數進(jìn)行相應的工作。 (4)當用戶(hù)使用write函數操作設備文件時(shí),操作系統調用內核中的sys_write函數,該函數首先通過(guò)文件描述符得到設備節點(diǎn)文件對應的inode指針和filp指針。 (5)然后sys_write才會(huì )調用驅動(dòng)程序中的write方法來(lái)對設備進(jìn)行寫(xiě)的操作。用戶(hù)的write函數和驅動(dòng)程序的write函數通過(guò)系統調用sys_write聯(lián)系到了一起。本文以設備文件操作控制函數write為例來(lái)闡述整個(gè)函數的調用過(guò)程,其它函數的過(guò)程基本相同,本文不再詳述。
本文的創(chuàng )新點(diǎn)在于闡述了嵌入式應用程序中對外部設備操作控制函數的實(shí)現機制及具體過(guò)程的分析,在目前的文獻中很少有具體的分析,是作者在具體開(kāi)發(fā)過(guò)程中的經(jīng)驗總結。
評論