久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

歡迎來到高端(duan)IT就業(ye)培(pei)訓(xun)專家——華清(qing)遠(yuan)見教育科技集團

400-611-6270

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 >
platform詳解
時間:2018-08-16作者:華清遠(yuan)見(jian)

一、platform設備模型

從Linux 2.6起引(yin)入了一(yi)套新(xin)的(de)(de)驅動(dong)管理和(he)(he)注(zhu)冊(ce)(ce)機(ji)制(zhi),platform_device和(he)(he)platform_driver,Linux中大部分的(de)(de)設(she)(she)備驅動(dong)都可以使(shi)(shi)用(yong)(yong)(yong)這(zhe)(zhe)套機(ji)制(zhi)。platform是一(yi)條虛擬總線。設(she)(she)備用(yong)(yong)(yong)platform_device表示(shi),驅動(dong)用(yong)(yong)(yong)platform_driver進行注(zhu)冊(ce)(ce),linux platform driver機(ji)制(zhi)和(he)(he)傳(chuan)統(tong)的(de)(de)device driver機(ji)制(zhi)(通過(guo)driver_register進行注(zhu)冊(ce)(ce))相比,一(yi)個明顯的(de)(de)優勢(shi)在于platform機(ji)制(zhi)將(jiang)設(she)(she)備本身的(de)(de)資(zi)源注(zhu)冊(ce)(ce)進內核,由內核統(tong)一(yi)管理,在驅動(dong)中使(shi)(shi)用(yong)(yong)(yong)這(zhe)(zhe)些資(zi)源時通過(guo)platform device提(ti)供的(de)(de)標(biao)準結構進行申請并使(shi)(shi)用(yong)(yong)(yong)。這(zhe)(zhe)樣提(ti)高了驅動(dong)和(he)(he)資(zi)源的(de)(de)獨(du)立性(xing),并且具有(you)較好的(de)(de)可移植性(xing)和(he)(he)安全(quan)性(xing)(這(zhe)(zhe)些標(biao)準接口是安全(quan)的(de)(de))。

Platform機制(zhi)本身使用(yong)并(bing)不復(fu)雜,由兩部分(fen)組成:platform_device和platform_driver。通過platform機制(zhi)開(kai)發(fa)底層驅動的(de)大(da)致流程為:

定義(yi)(yi)platform_deviece -->注冊(ce)(ce)platform_device -->定義(yi)(yi)platform_driver --> 注冊(ce)(ce)platform_driver。

二、platform的初始化

首先系統啟動的(de)(de)時候會(hui)調用platform_bus_init來(lai)初始(shi)化這(zhe)個虛擬(ni)總線,然后向虛擬(ni)總線注冊(ce)即將掛載這(zhe)條(tiao)總線上的(de)(de)設備(bei)。Platform_bus_type部分是(shi)內核為為我(wo)們(men)實現好的(de)(de),我(wo)們(men)只關系platform_device與platform_driver就行了(le)。

三、s3c2410中總線設備的注冊

總線(xian)也(ye)是一種(zhong)設備(bei),所以首先注(zhu)冊總線(xian)設備(bei),然后注(zhu)冊總線(xian)。

把設備掛(gua)到總(zong)線上:

四、platform中幾個重要的結構體

許多人一(yi)(yi)看到內核中的(de)(de)結構體就很暈,是的(de)(de)誰都暈,我們可以先關注自(zi)己想(xiang)要知(zhi)道的(de)(de)一(yi)(yi)部分,不知(zhi)道的(de)(de)遇到了再去查。

五、platform_device與platform_driver匹配的過程

下(xia)面(mian)我們來看一下(xia)__driver_attach這(zhe)個(ge)函數(shu)(shu),在這(zhe)個(ge)函數(shu)(shu)里面(mian)分(fen)別調driver_match_device,driver_probe_device函數(shu)(shu)。如果匹配成(cheng)功(gong)就調用probe函數(shu)(shu),否則返回。

匹配的過程中調用了bus的match函(han)數

看(kan)一下platform_match函數

通過后一行我們可以知道,通過設備的名字和驅動的名字進行匹配,如(ru)果匹配成功(gong)后調用(yong)probe函數。

六、我們來看一個實例

platform_device.c

platform_driver.c

這(zhe)個驅動只是個測試程序,我在platform_driver的probe函數(shu)里面點亮了fs2410板(ban)子(zi)上(shang)得(de)LED燈,編(bian)譯好后(hou),insmod模塊后(hou)就可以看到(dao)效果。

platform相關文章:

Linux下的platform機制

Linux驅動中的platform


發表評論

全國咨詢電話:400-611-6270,雙休日及節假(jia)日請(qing)致電值班手機:15010390966

在線咨(zi)詢(xun): 曹老(lao)師QQ(3337544669), 徐老(lao)師QQ(1462495461), 劉(liu)老(lao)師 QQ(3108687497)

企(qi)業培訓洽談專線:010-82600901,院校(xiao)合(he)作洽談專線:010-82600350,在線咨(zi)詢:QQ(248856300)

Copyright 2004-2018 華清遠(yuan)見教(jiao)育科(ke)技集(ji)團(tuan) 版權所有 ,京ICP備16055225號(hao),京公海網安備11010802025203號(hao)