mooc课程精选,成品人片观看入口众乐乐,久久久久人妻一区精品性色av,苍兰诀大结局是什么,白丝美女被狂躁免费视频网站

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

一、platform設(shè)備模型

從Linux 2.6起引入了一套新的驅(qū)動管理和注冊機制,platform_device和platform_driver,Linux中大部分的設(shè)備驅(qū)動都可以使用這套機制。platform是一條虛擬總線。設(shè)備用platform_device表示,驅(qū)動用platform_driver進行注冊,linux platform driver機制和傳統(tǒng)的device driver機制(通過driver_register進行注冊)相比,一個明顯的優(yōu)勢在于platform機制將設(shè)備本身的資源注冊進內(nèi)核,由內(nèi)核統(tǒng)一管理,在驅(qū)動中使用這些資源時通過platform device提供的標準結(jié)構(gòu)進行申請并使用。這樣提高了驅(qū)動和資源的獨立性,并且具有較好的可移植性和安全性(這些標準接口是安全的)。

Platform機制本身使用并不復(fù)雜,由兩部分組成:platform_device和platform_driver。通過platform機制開發(fā)底層驅(qū)動的大致流程為:

定義platform_deviece -->注冊platform_device -->定義platform_driver --> 注冊platform_driver。

二、platform的初始化

首先系統(tǒng)啟動的時候會調(diào)用platform_bus_init來初始化這個虛擬總線,然后向虛擬總線注冊即將掛載這條總線上的設(shè)備。Platform_bus_type部分是內(nèi)核為為我們實現(xiàn)好的,我們只關(guān)系platform_device與platform_driver就行了。

三、s3c2410中總線設(shè)備的注冊

總線也是一種設(shè)備,所以首先注冊總線設(shè)備,然后注冊總線。

把設(shè)備掛到總線上:

四、platform中幾個重要的結(jié)構(gòu)體

許多人一看到內(nèi)核中的結(jié)構(gòu)體就很暈,是的誰都暈,我們可以先關(guān)注自己想要知道的一部分,不知道的遇到了再去查。

五、platform_device與platform_driver匹配的過程

下面我們來看一下__driver_attach這個函數(shù),在這個函數(shù)里面分別調(diào)driver_match_device,driver_probe_device函數(shù)。如果匹配成功就調(diào)用probe函數(shù),否則返回。

匹配的過程中調(diào)用了bus的match函數(shù)

看一下platform_match函數(shù)

通過后一行我們可以知道,通過設(shè)備的名字和驅(qū)動的名字進行匹配,如果匹配成功后調(diào)用probe函數(shù)。

六、我們來看一個實例

platform_device.c

platform_driver.c

這個驅(qū)動只是個測試程序,我在platform_driver的probe函數(shù)里面點亮了fs2410板子上得LED燈,編譯好后,insmod模塊后就可以看到效果。

platform相關(guān)文章:

Linux下的platform機制

Linux驅(qū)動中的platform


發(fā)表評論

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

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

企業(yè)培訓(xùn)洽談專線:010-82600901,院校合作洽談專線:010-82600350,在線咨詢:QQ(248856300)

Copyright 2004-2018 華清遠見教育科技集團 版權(quán)所有 ,京ICP備16055225號,京公海網(wǎng)安備11010802025203號