您好,歡迎進(jìn)入深圳市穎特新科技有限公司官方網(wǎng)站!
驅(qū)動開發(fā)是嵌入式 Linux 產(chǎn)品開發(fā)的重要組成部分,驅(qū)動是將芯片底層與Linux應(yīng)用連接起來的橋梁。驅(qū)動程序的好壞直接影響和決定著產(chǎn)品的穩(wěn)定性,穩(wěn)定的驅(qū)動程序是產(chǎn)品可靠性的基石。
編寫 Linux 驅(qū)動,首先要具備相關(guān)的電路基礎(chǔ)知識,具有裸機(jī)開發(fā)和單片機(jī)開發(fā)能力,只有了解了硬件的基本工作原理才能編寫出可靠的驅(qū)動程序。同時(shí),必須對 Linux 驅(qū)動體系有清晰的認(rèn)識,才能將設(shè)備在 Linux下驅(qū)動起來。
驅(qū)動是 Linux 系統(tǒng)中設(shè)備和用戶之間的橋梁,Linux 系統(tǒng)中,訪問設(shè)備必須通過設(shè)備驅(qū)動進(jìn)行操作,用戶程序是不能直接操作設(shè)備的。Linux 系統(tǒng)中硬件、驅(qū)動和用戶程序的關(guān)系如下圖所示:
驅(qū)動程序運(yùn)行于內(nèi)核空間,用戶程序只能通過內(nèi)核提供的系統(tǒng)調(diào)用,由經(jīng) VFS 以及驅(qū)動程序才能訪問和操作硬件,硬件設(shè)備傳遞的數(shù)據(jù)也必須經(jīng)過驅(qū)動、VFS 和系統(tǒng)調(diào)用才能被用戶程序接收。所以說,設(shè)備驅(qū)動是應(yīng)用程序訪問系統(tǒng)設(shè)備以及進(jìn)行數(shù)據(jù)傳遞的橋梁和通道。
Linux 設(shè)備驅(qū)動是具有入口和出口的一組方法的集合,各方法之間相互獨(dú)立。驅(qū)動內(nèi)部邏輯結(jié)構(gòu)如下圖所示:
Linux 內(nèi)核具有很強(qiáng)的可裁剪性,很多功能或者外設(shè)驅(qū)動都可以編譯成模塊,在系統(tǒng)運(yùn)行中動態(tài)插入或者卸載,在此過程中無需重啟系統(tǒng)。模塊化設(shè)計(jì)使得 Linux 系統(tǒng)很靈活,可以將一些很少用到或者暫時(shí)不用的功能編譯為模塊,在需要的時(shí)候再動態(tài)加載進(jìn)內(nèi)核,可以減小內(nèi)核的體積,加快啟動速度,這對嵌入式應(yīng)用極為重要。
我們前期開發(fā)驅(qū)動時(shí),可以將驅(qū)動編譯成模塊,在開發(fā)板linux系統(tǒng)上動態(tài)加載,這樣每次修改調(diào)試驅(qū)動時(shí),只需要單獨(dú)編譯驅(qū)動模塊就可以,不用編譯整個(gè)內(nèi)核。
掃碼關(guān)注我們
傳真:0755-82591176
郵箱:vicky@yingtexin.net
地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08