久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      linux中platform是什么意思

      在linux中,platform是一個(gè)虛擬總線,與真實(shí)的“spi/sdio/usb/pcie”等總線對(duì)應(yīng);platform能夠把硬件和軟件分離出來(lái),platform所描述的資源有一個(gè)共同點(diǎn)是在CPU的總線上直接取址,平臺(tái)設(shè)備會(huì)分到一個(gè)名稱以及一系列諸如地址和中斷請(qǐng)求號(hào)之類(lèi)的資源。

      linux中platform是什么意思

      本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。

      linux中platform是什么意思

      platform為虛擬總線,與真實(shí)的spi/sdio/usb/pcie等總線對(duì)應(yīng)

      邏輯總線的的一個(gè)重要功能是發(fā)現(xiàn)設(shè)備并且找到合適的驅(qū)動(dòng)以操作這個(gè)設(shè)備。

      platform總線是一種虛擬的邏輯總線,滿足邏輯互聯(lián)功能。為了統(tǒng)一管理設(shè)備,platform可以把物理上不存在總線的一類(lèi)設(shè)備,用平臺(tái)總線統(tǒng)一把它們管理起來(lái)。

      常見(jiàn)的總線如USB,SPI,UART,PCI,I2S等總線,是在物理上實(shí)實(shí)在在存在的總線。Linux系統(tǒng)為這類(lèi)總線設(shè)計(jì)了一種統(tǒng)一管理它們的方法,即bus。同時(shí)也為在物理上沒(méi)有總線的設(shè)備也統(tǒng)一設(shè)計(jì)了platform總線,所以Linux內(nèi)核設(shè)計(jì)者就設(shè)計(jì)了platform總線,也就是說(shuō),plarform 總線就是為了SoC內(nèi)部設(shè)備在物理上沒(méi)有總線的設(shè)備設(shè)計(jì)的,它統(tǒng)一歸屬bus總線一類(lèi)。

      這樣做的好處是,設(shè)備(device)端代碼的編寫(xiě)者只關(guān)心具體的硬件部分,設(shè)備共性的部分(穩(wěn)定不變的部分)被內(nèi)核設(shè)計(jì)者完成了,這樣降低了驅(qū)動(dòng)編寫(xiě)的難度。

      通過(guò)platform總線,可以將設(shè)備屬性(也叫數(shù)據(jù))和驅(qū)動(dòng)分離,這樣可以使用相同的驅(qū)動(dòng)支持同一功能核心硬件的不同設(shè)備。這樣避免了一個(gè)設(shè)備就需要一個(gè)驅(qū)動(dòng)的現(xiàn)象,降低了重復(fù)性勞動(dòng)。

      擴(kuò)展知識(shí)

      platform平臺(tái)總線相關(guān)定義

      platform平臺(tái)總線相關(guān)的對(duì)象定義在文件 drivers/base/platform.c中。這個(gè)文件中實(shí)現(xiàn)了平臺(tái)總線對(duì)象和對(duì)象操作方法方面的內(nèi)容。

      兩個(gè)重要的數(shù)據(jù)結(jié)構(gòu)體

      1、platform_driver

      這是內(nèi)嵌一個(gè)device_driver 的結(jié)構(gòu)體對(duì)象,其中定義了操作對(duì)象的方法。

      2、platform_device

      它是一個(gè)內(nèi)嵌了device結(jié)構(gòu)體對(duì)象,其中定義了設(shè)備描述資源的屬性。

      具體對(duì)象定義如下:

      1、platform_driver 對(duì)象定義

      struct platform_driver  { int (*probe)(struct platform_device *);     //探測(cè)函數(shù),安裝設(shè)備,初始化設(shè)備,并且判斷是否能成功(初始化成功,通訊成功等等) int (*remove)(struct platform_device *);    //從內(nèi)核中刪除這個(gè)設(shè)備 void (*shutdown)(struct platform_device *); // 關(guān)閉設(shè)備 int (*suspend)(struct platform_device *, pm_message_t state);  //掛起 int (*resume)(struct platform_device *);    //喚醒 struct device_driver driver;          //驅(qū)動(dòng)的通用屬性 const struct platform_device_id *id_table; //設(shè)備ID表 };

      platform_device對(duì)象對(duì)定義:

      struct platform_device  { const char* name;      //平臺(tái)總線中設(shè)備的名字,在平臺(tái)總線下有多個(gè)設(shè)備,每個(gè)設(shè)備都有自己的名稱 intid;              //設(shè)備的排序 struct devicedev;     //所有設(shè)備通用的屬性 u32num_resources;    //設(shè)備資源,如IO等一些外設(shè)等的個(gè)數(shù) struct resource* resource; //設(shè)備資源的首地址,和上面的個(gè)數(shù)num_resources一起構(gòu)成一個(gè)數(shù)組來(lái)表示這個(gè)資源 const struct platform_device_id*id_entry;  //設(shè)備ID表,表示同一種類(lèi)型的幾個(gè)設(shè)備的ID號(hào),數(shù)組表示。 struct pdev_archdataarchdata; /* arch specific additions *///用戶自定義數(shù)據(jù),擴(kuò)展數(shù)據(jù) };

      注冊(cè)平臺(tái)總線驅(qū)動(dòng)的函數(shù):

      int platform_driver_register(struct platform_driver *drv)

      注冊(cè)平臺(tái)總線設(shè)備的函數(shù):

      int platform_device_register(struct platform_device *pdev)

      推薦學(xué)習(xí):Linux視頻教程

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)