中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

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

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

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

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

        11.1概述

        11.1.1簡介及驅(qū)動模塊

        是通過各種驅(qū)動程序來駕馭硬件設備的,它為用戶屏蔽了各種各樣的設備,驅(qū)動硬件是最基本的功能,并且提供統(tǒng)一的操作方式。程序是內(nèi)核的一部分,硬件驅(qū)動程序是最基本的組成部分,在Linux內(nèi)核源程序中也占有60%以上。因此,熟悉驅(qū)動的編寫是很重要的。

        在第2章中已經(jīng)提到過,Linux內(nèi)核中采用可加載的模塊化設計(LKMs,LoadableKernelModules),一般情況下編譯的Linux內(nèi)核是支持可插入式模塊的,也就是將最基本的核心代碼編譯在內(nèi)核中,其他的代碼可以編譯到內(nèi)核中,或者編譯為內(nèi)核的模塊文件(在需要時動態(tài)加載)。

        常見的驅(qū)動程序是作為內(nèi)核模塊動態(tài)加載的,比如聲卡驅(qū)動和網(wǎng)卡驅(qū)動等,而Linux最基礎的驅(qū)動,如CPU、PCI總線、TCP/IP協(xié)議、APM(高級電源管理)、VFS等驅(qū)動程序則直接編譯在內(nèi)核文件中。有時也把內(nèi)核模塊叫做驅(qū)動程序,只不過驅(qū)動的內(nèi)容不一定是硬件罷了,比如ext3文件系統(tǒng)的驅(qū)動。因此,加載驅(qū)動就是加載內(nèi)核模塊。

        這里,首先列舉一些模塊相關的命令。

        n lsmod列出當前系統(tǒng)中加載的模塊,其中左邊第一列是模塊名,第二列是該模塊大小,第三列則是使用該模塊的對象數(shù)目。如下所示:

        $lsmod

        ModuleSizeUsedby

        Autofs120680(autoclean)(unused)

        eepro100181281

        iptable_nat 192520(autoclean)(unused)

        ip_conntrack185401(autoclean)[iptable_nat]

        iptable_mangle22720(autoclean)(unused)

        iptable_filter22720(autoclean)(unused)

        ip_tables119365[iptable_natiptable_mangleiptable_filter]

        usb-ohci193280(unused)

        usbcore545281[usb-ohci]

        ext3677282

        jbd444802[ext3]

        aic7xxx1147043

        sd_mod115843

        scsi_mod985122[aic7xxxsd_mod]

        n rmmod是用于將當前模塊卸載。

        n insmod和modprobe是用于加載當前模塊,但insmod不會自動解決依存關系,即如果要加載的模塊引用了當前內(nèi)核符號表中不存在的符號,則無法加載,也不會去查在其他尚未加載的模塊中是否定義了該符號;modprobe可以根據(jù)模塊間依存關系以及/etc/modules.conf文件中的內(nèi)容自動加載其他有依賴關系的模塊。

        11.1.2設備分類

        本書在前面也提到過,Linux的一個重要特點就是將所有的設備都當做文件進行處理,這一類特殊文件就是設備文件,它們可以使用前面提到的文件、I/O相關函數(shù)進行操作,這樣就大大方便了對設備的處理。它通常在/dev下面存在一個對應的邏輯設備節(jié)點,這個節(jié)點以文件的形式存在。

        Linux系統(tǒng)的設備分為3類:字符設備、塊設備和網(wǎng)絡設備。

        n 字符設備通常指像普通文件或字節(jié)流一樣,以字節(jié)為單位順序讀寫的設備,如并口設備、虛擬控制臺等。字符設備可以通過設備文件節(jié)點訪問,它與普通文件之間的區(qū)別在于普通文件可以被隨機訪問(可以前后移動訪問指針),而大多數(shù)字符設備只能提供順序訪問,因為對它們的訪問不會被系統(tǒng)所緩存。但也有例外,例如幀緩存(framebuffer)是一個可以被隨機訪問的字符設備。

        n 塊設備通常指一些需要以塊為單位隨機讀寫的設備,如IDE硬盤、SCSI硬盤、光驅(qū)等。塊設備也是通過文件節(jié)點來訪問,它不僅可以提供隨機訪問,而且可以容納文件系統(tǒng)(例如硬盤、閃存等)。Linux可以使用戶態(tài)程序像訪問字符設備一樣每次進行任意字節(jié)的操作,只是在內(nèi)核態(tài)內(nèi)部中的管理方式和內(nèi)核提供的驅(qū)動接口上不同。

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

        linux相關文章:linux教程



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        推薦視頻

        更多>>

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

        關閉