国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Linux總線設備驅動模型

2019-11-08 18:24:08
字體:
來源:轉載
供稿:網友

Kobjec&Kset

Sysfs文件系統PRoc文件系統是提供一個接口給用戶,讓用戶能夠查看系統運行的狀態信息,讓用戶能夠修改內核的一些參數,比如說打印級別sysfs是基于ram的文件系統,它是把內核的一些數據結構,以及這些數據結構中的一些屬性,以及他們之間的關系展示給用戶,暴露給用戶。linux2.6內核引入了sysfs文件系統。sysfs被看成是與proc同類別的文件系統。sysfs把連接在系統上的設備和總線組織成分級的文件,使其從用戶控件可以訪問到。Sysfs被加載到/sys/目錄下,它的子目錄包括:(1)Block:在系統中發現的每個塊設備在該目錄下對應一個子目錄,每個子目錄中又包含一些屬性文件,它們描述了這個塊設備的各方面屬性,如,設備大小。(loop塊設備是使用文件來模擬的)(2)Bus:在內核中注冊的每條總線在該目錄下對應一個子目錄,如:ide,pci,scsi,usb,pcmia。其中每個總線目錄內又包含了在整個系統中發現的屬于該總線類型的設備,driver目錄包含了注冊到該總線的所有驅動。(3)Class:將設備按照功能進行的分類,如/sys/class/net目錄下包含了所有網絡接口。(4)Devices:包含系統所有的設備(5)Kernel:內核中的配置參數(6)Module:系統中所有模塊的信息(7)Firmware:系統中的固件(8)Fs:描述系統中的文件系統(9)Power:系統中的電源選項一個設備可能存在于3個目錄下,但是從物理上講可能是一個設備,就看怎么劃分。從功能上講是一個鼠標,從總線上講是一個USB設備KobjectKobject實現了基本的面向對象的管理機制,是構成Linux2.6設備模型的核心結構。她與sysfs文件系統緊密相連,在內核中注冊的每個kobject對象對應sysfs文件系統中的一個目錄。實例分析:Kobject.cksetkest是具有相同類型的kobject的集合,在sysfs中體現成一個目錄,在內核中用kset數據結構表示,定義為:熱插拔事件在Linux系統中,當系統配置發生變化時,如:添加kset到系統;移動kobject,一個通知會從內核空間發送到用戶空間,這就是熱插拔事件。熱插拔事件會導致用戶空間中相應的處理程序(如udev,mdev)被調用,這些處理程序會通過加載驅動程序,創建設備節點等來相應熱插拔事件。這三個函數什么時候被調用?當該kset所管理的kobject和kset狀態發生變化時(如被加入,移動),這三個函數將被調用。(例:kobject_uevent調用) 。實例分析:kset.c

設備模型

隨著技術的不斷進步,系統的拓補結構也越來越復雜,對智能電源管理、熱插拔的支持要求也越來越高,2.4內核已經難以滿足這些需求。為適應這種形式的需要,Linux2.6內核提供了全新的內核設備模型。設備模型元素:總線,驅動,設備總線:總線是處理器和設備之間的通道,在設備模型中,所有的設備都通過總線相連接,甚至是內部得虛擬platform總線。在Linux設備模型中,總線由bus_type結構表示,定義在<linux/device.h>總線的注冊和刪除:實例分析:Bus_basic.c設備:實例分析:Bus.c,Device.cdevice驅動:

Platform驅動程序

Platform總線:Platform總線是Linux2.6內核加入的一種虛擬總線。platform機制的本身使用并不復雜,由兩部分組成,platform_device和paltform_driver.Platform驅動與傳統的設備驅動模型相比,優勢在于platform機制將設備本身的資源注冊進內核,由內核同一管理,在驅動程序使用這些資源時使用同一接口,這樣提高了程序的可移植性。

中斷處理

中斷概念:為什么需要中斷?1.外設的處理速度一般慢于CPU2.CPU不能一直等待外部事件所以設備必須有一種方法來通知CPU它的工作進度,這種方法就是中斷。中斷實現:在Linux驅動程序中,為設備實現一個中斷包含兩個步驟:(1)向內核注冊中斷(2)實現中斷處理函數快速/慢速中斷:這兩種類型的中斷處理程序的主要區別在于,快速中斷保證中斷處理的原子性(不被打斷),而慢速中斷則不保證。換句話說,也就是“開啟中斷”標志位(處理器IF)在運行快速中斷處理程序時是關閉的,因此在服務該中斷時,不會被其他類型的中斷打斷;而調用慢速中斷處理程序時,其他類型的中斷仍可以得到服務。共享中斷:共享中斷是將不同設備掛到同一個中斷信號線上。Linux對共享的支持主要是PCI設備提供服務。中斷處理程序:什么是中斷處理程序?有何特別之處?中斷處理程序就是普通的C代碼。特別之處在于中斷處理程序是在中斷上下文中運行的,它的行為受到某些限制;(1)不能向用戶空間發送或者接收數據;(2)不能使用可能引起阻塞的函數;(3)不能使用可能引起調度的函數。 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 正定县| 九龙城区| 建水县| 广平县| 句容市| 镶黄旗| 静海县| 葫芦岛市| 镇巴县| 正镶白旗| 大余县| 孝昌县| 台山市| 城口县| 龙口市| 屏南县| 赣榆县| 安新县| 德昌县| 舒城县| 威海市| 中宁县| 庆元县| 阳春市| 竹北市| 长春市| 南涧| 中卫市| 惠安县| 广南县| 剑河县| 崇州市| 临沂市| 武山县| 定兴县| 苍梧县| 洛扎县| 青河县| 房产| 宿迁市| 柳河县|