• <code id="zjelh"></code>

          <source id="zjelh"><form id="zjelh"></form></source><acronym id="zjelh"><form id="zjelh"><blockquote id="zjelh"></blockquote></form></acronym>

          1. <acronym id="zjelh"><form id="zjelh"></form></acronym>

            <input id="zjelh"><rt id="zjelh"></rt></input>
            <var id="zjelh"><rt id="zjelh"></rt></var>
            <source id="zjelh"><form id="zjelh"><del id="zjelh"></del></form></source>
            當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 >
            platform詳解
            時間:2018-08-16作者:華清遠見

            一、platform設備模型

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

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

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

            二、platform的初始化

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

            三、s3c2410中總線設備的注冊

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

            把設備掛到總線上:

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

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

            五、platform_device與platform_driver匹配的過程

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

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

            看一下platform_match函數

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

            六、我們來看一個實例

            platform_device.c

            platform_driver.c

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

            platform相關文章:

            Linux下的platform機制

            Linux驅動中的platform


            發表評論

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

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

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

            Copyright 2004-2018 華清遠見教育集團 版權所有 ,京ICP備16055225號,京公海網安備11010802025203號

            yy4480影院