91在线一级黄片|91视频在线观看18|成人夜间呦呦网站|91资源欧美日韩超碰|久久最新免费精品视频一区二区三区|国产探花视频在线观看|黄片真人免费三级片毛片|国产人无码视频在线|精品成人影视无码三区|久久视频爱久久免费精品

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linux輸入設(shè)備多驅(qū)動處理 (linux輸入設(shè)備有多個驅(qū)動)

一、簡介

隨著計算機技術(shù)的不斷發(fā)展,人們在使用計算機處理各種任務(wù)時需要不斷地與計算機進行交互。輸入設(shè)備作為與計算機交互的重要方式之一,在計算機系統(tǒng)中擔(dān)任著重要的角色。Linux作為一款自由、開放源碼的操作系統(tǒng),存在著許多不同的輸入設(shè)備驅(qū)動程序,針對輸入設(shè)備的多樣性,Linux輸入設(shè)備的多驅(qū)動處理是非常重要的。

二、基礎(chǔ)知識

輸入設(shè)備是指人們通過鍵盤、鼠標(biāo)、觸摸屏等設(shè)備向計算機發(fā)送信息和指令的設(shè)備。輸入設(shè)備的使用需要有對應(yīng)的驅(qū)動程序來實現(xiàn)設(shè)備與計算機的交互。Linux輸入設(shè)備驅(qū)動可以簡單分為兩種類型:字符設(shè)備驅(qū)動和輸入設(shè)備驅(qū)動。

字符設(shè)備驅(qū)動是一種讀寫數(shù)據(jù)的設(shè)備驅(qū)動,字符設(shè)備驅(qū)動會將輸入設(shè)備上的按鍵值轉(zhuǎn)換為簡單的文本型字符,并通過與驅(qū)動程序通訊的接口將該字符傳遞給用戶空間。

輸入設(shè)備驅(qū)動則是一種特殊的字符設(shè)備驅(qū)動,專門用于與輸入設(shè)備進行交互。輸入設(shè)備驅(qū)動將輸入設(shè)備的數(shù)據(jù)轉(zhuǎn)換為具有特定格式的內(nèi)核事件,并通過內(nèi)核事件接口傳遞給用戶空間。

輸入設(shè)備驅(qū)動包含了下面的概念:

– 輸入設(shè)備的描述:輸入設(shè)備驅(qū)動程序需要對輸入設(shè)備進行描述,包括設(shè)備名稱、設(shè)備類型和設(shè)備的詳細(xì)信息。

– 輸入設(shè)備主動事件:輸入事件是輸入設(shè)備傳送給系統(tǒng)的事件。

– 中斷處理:當(dāng)輸入設(shè)備生成事件時,在系統(tǒng)中斷,中斷處理程序?qū)⑹录妮斎朐O(shè)備中讀出。

– 內(nèi)核事件接口:內(nèi)核事件接口用于將事件傳遞給用戶空間。

– 用戶態(tài)事件處理:用戶態(tài)應(yīng)用程序通過讀取內(nèi)核事件接口獲得內(nèi)核事件,并執(zhí)行需要的操作。

三、多驅(qū)動處理

在現(xiàn)代的Linux系統(tǒng)中,存在著越來越多不同類型的輸入設(shè)備,例如鼠標(biāo)、鍵盤、觸摸屏等。因此,對于各種輸入設(shè)備的多驅(qū)動處理顯得尤為重要。

多驅(qū)動處理的實現(xiàn)需要做到以下點:

– 驅(qū)動程序的自動加載:對于不同的輸入設(shè)備,我們需要不同的驅(qū)動程序來實現(xiàn)對它們的交互。因此,在使用輸入設(shè)備時,需要自動加載相應(yīng)的驅(qū)動程序。

– 輸入設(shè)備的統(tǒng)一管理:輸入設(shè)備可以有多種不同的驅(qū)動程序,它們可以同時對同一設(shè)備進行操作。因此,需要對輸入設(shè)備進行統(tǒng)一管理,使其能夠正確地與多個驅(qū)動程序進行交互。

– 驅(qū)動程序的共享:多個應(yīng)用程序可能需要同時使用同一個輸入設(shè)備的多個不同事件,因此,需要實現(xiàn)驅(qū)動程序之間的信息共享。

Linux內(nèi)核提供了一種多驅(qū)動處理機制來實現(xiàn)對輸入設(shè)備的統(tǒng)一管理和驅(qū)動程序的共享。這種機制基于輸入設(shè)備的總線,每個輸入設(shè)備都會被掛在相應(yīng)的總線上。

對于輸入設(shè)備的自動加載,Linux內(nèi)核提供了一個稱為”驅(qū)動模塊自動加載”(Automatic Module Loading)的機制。當(dāng)檢測到新設(shè)備時,內(nèi)核會自動檢查它所連接的總線和設(shè)備類型,并自動加載相應(yīng)的設(shè)備驅(qū)動。

對于輸入設(shè)備的統(tǒng)一管理和驅(qū)動程序的共享,Linux內(nèi)核提供了一種事件接口來實現(xiàn)。用戶空間應(yīng)用程序使用事件接口讀取輸入設(shè)備產(chǎn)生的事件,不同的輸入設(shè)備驅(qū)動程序通過事件接口注冊回調(diào)函數(shù),實現(xiàn)不同事件的處理。

四、

在現(xiàn)代計算機系統(tǒng)中,輸入設(shè)備作為一種重要的交互方式,在系統(tǒng)設(shè)計中占據(jù)著很重要的地位。Linux系統(tǒng)作為一款成熟的操作系統(tǒng),對于不同類型的輸入設(shè)備提供了多種驅(qū)動程序。對于多種不同類型的驅(qū)動程序,Linux內(nèi)核提供了一種多驅(qū)動處理機制來實現(xiàn)對輸入設(shè)備的統(tǒng)一管理和驅(qū)動程序的共享。這種機制的實現(xiàn),使得使用輸入設(shè)備的操作更加方便和高效。

相關(guān)問題拓展閱讀:

  • 如何在嵌入式LINUX中增加自己的設(shè)備驅(qū)動程序

如何在嵌入式LINUX中增加自己的設(shè)備驅(qū)動程序

您好,這樣的情況建議您下載最新版本的驅(qū)動精靈,或是直接在線升級一下驅(qū)動精靈。希望可以幫到您。

Linux驅(qū)動程序的使用可以按照兩種方式編譯,一種是靜態(tài)編譯進內(nèi)核,另李指一種是編譯成模塊以供動態(tài)加載。由于uClinux不支持模塊動態(tài)加載,而且嵌入式LINUX不能夠象桌面LINUX那樣靈活的使用inod/rmmod加載卸載設(shè)備驅(qū)動程序,因而這里只介紹將設(shè)備驅(qū)動程序靜態(tài)編譯進uClinux內(nèi)核的方法。

下面以UCLINUX為例,介紹在一個以模塊方式出現(xiàn)的驅(qū)動程序test.c基礎(chǔ)之上,將其編譯進內(nèi)核的一系列步驟:

(1)

改動test.c源帶代碼

之一步,將原來的:

#include

#include

char

kernel_version=UTS_RELEASE;

改動為:

#ifdef

MODULE

#include

#include

char

kernel_version=UTS_RELEASE;

#else

#define

MOD_INC_USE_COUNT

#define

MOD_DEC_USE_COUNT

#endif

第二步,新建函數(shù)int

init_test(void)

將設(shè)備注冊寫在此處:

result=register_chrdev(254,”test”,&test_fops);

(2)將test.c復(fù)制到/uclinux/linux/drivers/char目錄下,并且在/uclinux/linux/drivers/char目錄下mem.c中,int

chr_dev_init(

)函數(shù)中增加如下代碼:

#ifdef

CONFIG_TESTDRIVE

init_test();

#endif

(仔散3)在/uclinux/linux/drivers/char目錄下Makefile中增加如下代碼:

ifeq($(CONFIG_TESTDRIVE),y)

L_OB+=test.o

Endif

(4)在/uclinux/linux/arch/m68knommu目錄下config.in中字符設(shè)備段里增加如下代碼:

bool

‘support

for

testdrive’

CONFIG_TESTDRIVE

y

(5)

運行make

menuconfig(在menuconfig的字符設(shè)備選項里你可以看見我們剛剛添加的’support

for

testdrive’選項,并且已經(jīng)被選中念擾氏);make

dep;make

linux;make

linux.text;make

linux.data;cat

linux.text

linux.data

>

linux.bin。

(6)

/uclinux/romdisk/romdisk/dev/目錄下創(chuàng)建設(shè)備:

mknod

test

c

254

并且在/uclinux/appsrc/下運行make,生成新的Romdisk.s19文件。

到這里,在UCLINUX中增加設(shè)備驅(qū)動程序的工作可以說是完成了,只要將新的linux.bin與Romdisk

嵌入式linux技術(shù)

嵌入式Linux是按照嵌入式操作系統(tǒng)的要求而設(shè)計的一滾輪種小型操作系統(tǒng),它由一個Kernel(內(nèi)核)及一些根據(jù)需要進行定制的系統(tǒng)模塊組成。Kernel一般只有幾百kB左右,即使加上其它必須的模塊和應(yīng)用程序,所需的存儲空間也很小。它具有多任務(wù)、多進程的系統(tǒng)特征,有些還具有實時性。一個小型的嵌入式Linux系統(tǒng)只需要引導(dǎo)程序、Linux微內(nèi)核、初始化進程3個基本元素。運行嵌入式Linux的CPU可以是x86、Alpha、Sparc、MIPS、PPC等。與這些芯片搭配的主板都很小,通常只有一張PCI卡大小,有的甚至更小。嵌入式Linux所需的存儲器不是軟磁盤、硬盤、Zip盤、CD-ROM、DVD這些眾所周知的常規(guī)存儲器,它主要使用Rom、CompactFlash、M-Systems的DiskOnChip、Sony的MemoryStick、IBM的MicroDrive等體積極小(與主板上的BIOS大小相近),且存儲容量不太大的存儲器。它的內(nèi)存可以使用普通的內(nèi)存,也可以使用專用的RAM。

與其它嵌入式操作系統(tǒng)相比,Linux的源代碼是開放的,不存在黑箱技術(shù)。Linux作為一種可裁剪的軟件平臺系統(tǒng),很可能發(fā)展成為未來嵌入式設(shè)備產(chǎn)品的絕佳資源。Linux與生俱來的優(yōu)秀網(wǎng)絡(luò)血統(tǒng)更為今后的發(fā)悉坦展鋪平了一條寬廣平坦的大路。因此,在保持Linux內(nèi)核系統(tǒng)更小、更穩(wěn)定、更具價格競爭力等優(yōu)勢的同時,對系統(tǒng)內(nèi)核進行實時性優(yōu)化,更加使之能夠適應(yīng)對工業(yè)控制領(lǐng)域高實時性的要求。這也正是嵌入式linux操作系統(tǒng)在嵌入式工控系統(tǒng)中的發(fā)展所在。同時也使Linux成為嵌入式操作系統(tǒng)中的新貴。

標(biāo)準(zhǔn)的Linux內(nèi)核通常駐留在內(nèi)存中,每一個應(yīng)用程序都是從磁盤運到內(nèi)存上執(zhí)行。當(dāng)程序結(jié)束后,它所占用的內(nèi)存就被釋放,程序就被下載了。而在一個嵌入式系統(tǒng)里,可能沒有磁盤。有兩種途徑可以消除對磁盤的依賴,一是在一個簡單的系統(tǒng)里,當(dāng)系統(tǒng)啟動后,內(nèi)核和所有的應(yīng)用程序都存在內(nèi)存里。這是大多數(shù)傳統(tǒng)的嵌入式系統(tǒng)的工作模式,同樣Linux。第二種就是linux所特有的功能,因為Linux已經(jīng)大陸信有能力“加載”和“卸載”程序,因此,一個嵌入式系統(tǒng)就可以利用它來節(jié)省內(nèi)存。一個比較典型的系統(tǒng)有大約8MB到16MB的閃存和8MBRAM而閃存可以被用作文件系統(tǒng)。用閃存驅(qū)動程序作為從閃存到文件系統(tǒng)的界面就是一種選擇。當(dāng)然,也可以用一個閃存磁盤。用閃存來擺脫系統(tǒng)對一個磁盤的需求(依賴)具有DiskOnChip技術(shù)以及CmopactFlash卡等方式。

用來連接FlashMemory和文件系統(tǒng)的程序都以文件形式存儲在Flash文件中,需要時可以裝入內(nèi)存,這種動態(tài)的、根據(jù)需要加載的能力是支持其它一系列功能的重要特征。它能使初始化代碼在系統(tǒng)引導(dǎo)后被釋放。實際上,Linux同樣還有很多內(nèi)核外運行的公用程序,這些程序通常在初始化時運行一次,以后就不再運行。而且,這些公用程序可以用它們相互共有的方式一個接一個地按順序運行。這樣,相同內(nèi)存空間可以被反復(fù)使用以“召入”每一個程序,就象系統(tǒng)引導(dǎo)一樣。這樣可以節(jié)省內(nèi)存,特別是那些配置一次以后就不再更改的網(wǎng)絡(luò)堆棧。如果將Linux可加載模塊的功能包括在內(nèi)核里,驅(qū)動程序和應(yīng)用程序就都可以被加載。由于它可以檢查硬件環(huán)境并且為硬件裝上相應(yīng)的軟件,從而消除了用一個程序占用許多FlashMemory來處理多種硬件的復(fù)雜性。另外,軟件的升級更加模塊化,可以在系統(tǒng)運行時在Flash上升級應(yīng)用程序和加載驅(qū)動程序,其配置信息和運行時間參數(shù)可以作為數(shù)據(jù)文件儲存在Flash中。

嵌入式工業(yè)控制網(wǎng)絡(luò)的實現(xiàn)方案

基于嵌入式linux的工控系統(tǒng)以嵌入式微處理器為核心來運行嵌入式Linux操作系統(tǒng)。應(yīng)用程序可通過網(wǎng)絡(luò)進行更新,并可通過鍵盤進行人機對話,數(shù)據(jù)可通過LCD現(xiàn)場顯示,重要數(shù)據(jù)可用文件形式保存在Flash等閃存存儲器中;數(shù)據(jù)和報警信息可通過串口向上位機傳輸,也可以通過以太網(wǎng)向工業(yè)以太網(wǎng)或Inernet發(fā)布,用戶還可通過網(wǎng)絡(luò)實現(xiàn)遠(yuǎn)程監(jiān)控和遠(yuǎn)程維護。更為關(guān)鍵的是,可充分利用Internet上已有的軟件和協(xié)議(如:ftp,http以及ApachePHPMySQL等應(yīng)用程序)迅速搭建前臺數(shù)據(jù)采集系統(tǒng),以實現(xiàn)測控系統(tǒng)和后臺管理系統(tǒng)的通訊。圖1所示是這種實現(xiàn)方案的系統(tǒng)框圖。這種方式的優(yōu)點有:

(1)不需專用的通信線路即可用現(xiàn)成的INTER-NET網(wǎng)絡(luò)將數(shù)據(jù)傳送到任何地方。

(2)不僅能夠傳遞數(shù)據(jù)信號,也可以傳遞音頻和圖像信號。

(3) 由于目前的INTERNET協(xié)議是現(xiàn)成和公開的,因此,利用大到幾十兆的 Microsoft IE瀏覽器,或小到只有600kB的Mosaic瀏覽器都可以對網(wǎng)絡(luò)數(shù)據(jù)進行讀取。

11 根文件渣含系統(tǒng)并添或梁察加自己的程序衫茄

關(guān)于linux輸入設(shè)備有多個驅(qū)動的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

成都網(wǎng)站營銷推廣找創(chuàng)新互聯(lián),全國分站站群網(wǎng)站搭建更好做SEO營銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價格厚道。提供成都服務(wù)器托管租用、綿陽服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽服務(wù)器機房服務(wù)器托管租用。


當(dāng)前文章:Linux輸入設(shè)備多驅(qū)動處理 (linux輸入設(shè)備有多個驅(qū)動)
標(biāo)題路徑:http://m.jiaoqi3.com/article/cojoidc.html