• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式Linux設(shè)備驅(qū)動開發(fā)之:設(shè)備驅(qū)動概述

    嵌入式Linux設(shè)備驅(qū)動開發(fā)之:設(shè)備驅(qū)動概述

    作者: 時間:2013-09-13 來源:網(wǎng)絡(luò) 收藏

    本文引用地址:http://www.czjhyjcfj.com/article/257112.htm

    11.1.5程序與外界的接口

    每種類型的驅(qū)動程序,不管是字符設(shè)備還是塊設(shè)備都為內(nèi)核提供相同的調(diào)用接口,因此內(nèi)核能以相同的方式處理不同的設(shè)備。Linux為每種不同類型的程序維護相應(yīng)的數(shù)據(jù)結(jié)構(gòu),以便定義統(tǒng)一的接口并實現(xiàn)驅(qū)動程序的可裝載性和動態(tài)性。Linux程序與外界的接口可以分為如下3個部分。

    n 驅(qū)動程序與內(nèi)核的接口:這是通過數(shù)據(jù)結(jié)構(gòu)file_operations(在本書后面會有詳細介紹)來完成的。

    n 驅(qū)動程序與系統(tǒng)引導(dǎo)的接口:這部分利用驅(qū)動程序?qū)υO(shè)備進行初始化。

    n 驅(qū)動程序與設(shè)備的接口:這部分描述了驅(qū)動程序如何與設(shè)備進行交互,這與具體設(shè)備密切相關(guān)。

    它們之間的相互關(guān)系如圖11.2所示。

    圖11.2設(shè)備驅(qū)動程序與外界的接口

    11.1.6設(shè)備驅(qū)動程序的特點

    綜上所述,Linux中的設(shè)備驅(qū)動程序有如下特點。

    (1)內(nèi)核代碼:設(shè)備驅(qū)動程序是內(nèi)核的一部分,如果驅(qū)動程序出錯,則可能導(dǎo)致系統(tǒng)崩潰。

    (2)內(nèi)核接口:設(shè)備驅(qū)動程序必須為內(nèi)核或者其子系統(tǒng)提供一個標(biāo)準(zhǔn)接口。比如,一個終端驅(qū)動程序必須為內(nèi)核提供一個文件I/O接口;一個SCSI設(shè)備驅(qū)動程序應(yīng)該為SCSI子系統(tǒng)提供一個SCSI設(shè)備接口,同時SCSI子系統(tǒng)也必須為內(nèi)核提供文件的I/O接口及緩沖區(qū)。

    (3)內(nèi)核機制和服務(wù):設(shè)備驅(qū)動程序使用一些標(biāo)準(zhǔn)的內(nèi)核服務(wù),如內(nèi)存分配等。

    (4)可裝載:大多數(shù)的Linux設(shè)備驅(qū)動程序都可以在需要時裝載進內(nèi)核,在不需要時從內(nèi)核中卸載。

    (5)可設(shè)置:Linux設(shè)備驅(qū)動程序可以集成為內(nèi)核的一部分,并可以根據(jù)需要把其中的某一部分集成到內(nèi)核中,這只需要在系統(tǒng)編譯時進行相應(yīng)的設(shè)置即可。

    (6)動態(tài)性:在系統(tǒng)啟動且各個設(shè)備驅(qū)動程序初始化后,驅(qū)動程序?qū)⒕S護其控制的設(shè)備。如果該設(shè)備驅(qū)動程序控制的設(shè)備不存在也不影響系統(tǒng)的運行,那么此時的設(shè)備驅(qū)動程序只是多占用了一點系統(tǒng)內(nèi)存罷了。

    linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

    linux相關(guān)文章:linux教程



    上一頁 1 2 3 下一頁

    評論


    相關(guān)推薦

    推薦視頻

    更多>>

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 高碑店市| 五寨县| 淳安县| 应用必备| 都安| 江达县| 宜春市| 延长县| 同心县| 河池市| 郧西县| 澄江县| 吴川市| 无棣县| 双鸭山市| 崇义县| 合川市| 建昌县| 怀远县| 礼泉县| 临澧县| 开封县| 郓城县| 岑巩县| 昭苏县| 洛南县| 东莞市| 高淳县| 芮城县| 察隅县| 商洛市| 长垣县| 嘉善县| 花莲市| 密山市| 潮安县| 翼城县| 公主岭市| 吉首市| 华容县| 渝北区|