a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式Linux設備驅動開發之:設備驅動概述

嵌入式Linux設備驅動開發之:設備驅動概述

作者: 時間:2013-09-13 來源:網絡 收藏

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

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

$ls–l/dev

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

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

n 網絡設備通常是指通過網絡能夠與其他主機進行數據通信的設備,如網卡等。

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

對這3種設備文件編寫驅動程序時會有一定的區別,本書在后面會有相關內容的講解。

11.1.3設備號

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

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

$ls–l/dev

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

11.1.4驅動層次結構

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

圖11.1Linux輸入/輸出系統


層次結構和功能

Linux設備驅動程序包含中斷處理程序和設備服務子程序兩部分。

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

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

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

linux相關文章:linux教程




評論


相關推薦

技術專區

關閉