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