日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux设备驱动模型2——总线式设备驱动组织方式

發布時間:2023/12/20 linux 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux设备驱动模型2——总线式设备驱动组织方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以下內容源于朱有鵬嵌入式課程的學習,如有侵權,請告知刪除。

更深入理解資料:http://blog.csdn.net/oqqhutu12345678/article/details/78933386


1、總線

(1)物理上的真實總線及其作用(英文bus);

(2)驅動框架中的總線式設計;

  • 相當于中間的管理者,管理設備和驅動,包括兩者的匹配等內容。

(3)bus_type結構體

  • 關鍵是match函數(負責設備和驅動的匹配)和uevent函數。


(4)總線管理設備(有一個設備鏈表)、驅動(有一個驅動鏈表)

  • 它們之間通過名字來匹配。


2、設備

(1)struct device是硬件設備在內核驅動框架中的抽象;

(2)device_register,由內核開發者提供的框架提供,用于向內核驅動框架注冊一個設備;

(3)通常device不會單獨使用,而是被包含在一個具體設備結構體中,如struct usb_device。

3、驅動

(1)struct device_driver是驅動程序在內核驅動框架中的抽象;

(2)關鍵元素1:name

  • 驅動程序的名字,很重要,經常被用來作為驅動和設備的匹配依據

(3)關鍵元素2:probe

  • 驅動程序的探測函數,用來檢測一個設備是否可以被該驅動所管理(該設備是否正常、以及一些初始化,見頂頭的博文描述);

4、類

(1)相關結構體:struct class(類) 和 struct class_device(類下面的某個設備)

(2)udev的使用離不開class;

(3)class的真正意義在于作為同屬于一個class的多個設備的容器。

  • 也就是說,class是一種人造概念,目的就是為了對各種設備進行分類管理。
  • 當然,class在分類的同時還對每個類貼上了一些“標簽”,這也是設備驅動模型為我們寫驅動提供的基礎設施。

5、總結

(1)模型思想很重要,其實就是面向對象的思想

(2)全是結構體套結構體,對基本功(語言功底和大腦復雜度)要求很高

總結

以上是生活随笔為你收集整理的Linux设备驱动模型2——总线式设备驱动组织方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。