<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式Linux設備驅動(dòng)開(kāi)發(fā)之:設備驅動(dòng)概述

嵌入式Linux設備驅動(dòng)開(kāi)發(fā)之:設備驅動(dòng)概述

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

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

通過(guò)文件屬性可以查看它們是哪種設備文件(字符設備文件或塊設備文件)。

$ls–l/dev

crw-rw----1rootuucp4,6408-3022:58ttyS0/*串口設備,c表示字符設備*/

brw-r-----1rootfloppy2,008-3022:58fd0/*軟盤(pán)設備,b表示塊設備*/

n 網(wǎng)絡(luò )設備通常是指通過(guò)網(wǎng)絡(luò )能夠與其他主機進(jìn)行數據通信的設備,如網(wǎng)卡等。

內核和網(wǎng)絡(luò )程序之間的通信調用一套數據包處理函數,它們完全不同于內核和字符以及塊程序之間的通信(read()、write()等函數)。Linux網(wǎng)絡(luò )設備不是面向流的設備,因此不會(huì )將網(wǎng)絡(luò )設備的名字(例如eth0)映射到文件系統中去。

對這3種設備文件編寫(xiě)驅動(dòng)程序時(shí)會(huì )有一定的區別,本書(shū)在后面會(huì )有相關(guān)內容的講解。

11.1.3設備號

設備號是一個(gè)數字,它是設備的標志。就如前面所述,一個(gè)設備文件(也就是設備節點(diǎn))可以通過(guò)mknod命令來(lái)創(chuàng )建,其中指定了主設備號和次設備號。主設備號表明設備的類(lèi)型(例如串口設備、SCSI硬盤(pán)),與一個(gè)確定的驅動(dòng)程序對應;次設備號通常是用于標明不同的屬性,例如不同的使用方法、不同的位置、不同的操作等,它標志著(zhù)某個(gè)具體的物理設備。高字節為主設備號,底字節為次設備號。

例如,在系統中的塊設備IDE硬盤(pán)的主設備號是3,而多個(gè)IDE硬盤(pán)及其各個(gè)分區分別賦予次設備號1、2、3…

$ls–l/dev

crw-rw----1rootuucp4,6408-3022:58ttyS0/*主設備號4,此設備號64*/

11.1.4驅動(dòng)層次結構

Linux下的程序是內核的一部分,運行在內核模式下,也就是說(shuō)設備驅動(dòng)程序為內核提供了一個(gè)I/O接口,用戶(hù)使用這個(gè)接口實(shí)現對設備的操作。圖11.1顯示了典型的Linux輸入/輸出系統中各層次結構和功能。

圖11.1Linux輸入/輸出系統


層次結構和功能

Linux設備驅動(dòng)程序包含中斷處理程序和設備服務(wù)子程序兩部分。

設備服務(wù)子程序包含了所有與設備操作相關(guān)的處理代碼。它從面向用戶(hù)進(jìn)程的設備文件系統中接受用戶(hù)命令,并對設備控制器執行操作。這樣,設備驅動(dòng)程序屏蔽了設備的特殊性,使用戶(hù)可以像對待文件一樣操作設備。

設備控制器獲得系統服務(wù)有兩種方式:查詢(xún)和中斷。因為L(cháng)inux的設備驅動(dòng)程序是內核的一部分,在設備查詢(xún)期間系統不能運行其他代碼,查詢(xún)方式的工作效率比較低,所以只有少數設備如軟盤(pán)驅動(dòng)程序采取這種方式,大多設備以中斷方式向設備驅動(dòng)程序發(fā)出輸入/輸出請求。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

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




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>