一直想要寫些部落格,記錄學習的過程,算是自己的乙個複習,也是鍛鍊一下自己的總結能力,但是一直到今天才開始。
今天,學習的 platform匯流排。總的來說,platform匯流排是基於linux2.6核心的匯流排裝置驅動模型所自己定義出來的一條匯流排,具體為什麼要有這麼一條匯流排還沒有深入研究,目前覺得應該是為了發揮匯流排的熱插拔技術,也為了規範也方便使用者開發而給出來的一條匯流排。
之前一直以為,匯流排可以內部集合read,write,ioctl這些功能,由匯流排統一給出介面,後來經過將乙個簡單字元驅動與平台驅動結合,才發現不是這樣。
字元驅動與平台匯流排接合,這兩方面是分開的,匯流排的好處在於,將以前的字元驅動掛接到匯流排上是十分方面的,只在將之前的字元init部分放到匯流排的device_drive中的probe實現(此函式在匯流排上兩端的device與device_driver相匹配時,呼叫起來),當驅動與裝置匹配之時對字元裝置初始化,具體有裝置號的註冊,分配cdev,字元裝置的註冊,函式(檔案操作相關)的實現。接下來,便用mknod在/dev/下建立結點,便可以在應用程式中開啟進行字元驅動。
上面的實現似乎未實現匯流排的 作用,疑問在於devie_driver中未加入可以認為是驅動的函式(比如若有硬體,未有汾直接驅動硬體的操作),只不過是在probe函式中實現了一次完整的字元驅動。而且,未加入resource中的東西,未有對硬體的直接操作,這方面的運用還應進行測試。目前,**還在虛擬機器中,未找開,有機會再給補上。
今天的總結算是這樣了,原來也沒看多少東西,其實是看了,只不過沒有實際測試,不好意思寫出來。
接著加油吧。
that's all....
platform匯流排分析
推薦閱讀 講的很好 platform匯流排簡介 匯流排的產生的意義是讓裝置 硬體被抽象成乙個結構體來代表乙個裝置 和驅動分離 linux核心中常見的的匯流排有i2c匯流排,pci匯流排,串列埠匯流排,spi匯流排,pci匯流排,can匯流排,單匯流排等,所以有些裝置和驅動就可以掛在這些匯流排上,然後...
Platform匯流排註冊驅動
linux核心中常見的的匯流排有i2c匯流排,pci匯流排,串列埠匯流排,spi匯流排,pci匯流排,can匯流排,單匯流排等,所以有些裝置和驅動就可以掛在這些匯流排上,然後通過匯流排上的match進行裝置和驅動的匹配。但是有的裝置並不屬於這些常見匯流排,所以我們引入了一種虛擬匯流排,也就是plat...
linux驅動之platform匯流排
第一部分 裝置驅動模型 1 匯流排 bus type結構體,關鍵函式是match函式和uevent函式 匯流排將裝置和驅動繫結,在系統每註冊乙個裝置的時候,會尋找與之匹配的驅動,相反,在系統每註冊乙個驅動的時候,會尋找與之匹配的裝置,而匹配由匯流排完成。2 裝置 struct device結構體,硬...