站長資訊網
最全最豐富的資訊網站

linux中platform是什么意思

在linux中,platform是一個虛擬總線,與真實的“spi/sdio/usb/pcie”等總線對應;platform能夠把硬件和軟件分離出來,platform所描述的資源有一個共同點是在CPU的總線上直接取址,平臺設備會分到一個名稱以及一系列諸如地址和中斷請求號之類的資源。

linux中platform是什么意思

本教程操作環境:linux7.3系統、Dell G3電腦。

linux中platform是什么意思

platform為虛擬總線,與真實的spi/sdio/usb/pcie等總線對應

邏輯總線的的一個重要功能是發現設備并且找到合適的驅動以操作這個設備。

platform總線是一種虛擬的邏輯總線,滿足邏輯互聯功能。為了統一管理設備,platform可以把物理上不存在總線的一類設備,用平臺總線統一把它們管理起來。

常見的總線如USB,SPI,UART,PCI,I2S等總線,是在物理上實實在在存在的總線。Linux系統為這類總線設計了一種統一管理它們的方法,即bus。同時也為在物理上沒有總線的設備也統一設計了platform總線,所以Linux內核設計者就設計了platform總線,也就是說,plarform 總線就是為了SoC內部設備在物理上沒有總線的設備設計的,它統一歸屬bus總線一類。

這樣做的好處是,設備(device)端代碼的編寫者只關心具體的硬件部分,設備共性的部分(穩定不變的部分)被內核設計者完成了,這樣降低了驅動編寫的難度。

通過platform總線,可以將設備屬性(也叫數據)和驅動分離,這樣可以使用相同的驅動支持同一功能核心硬件的不同設備。這樣避免了一個設備就需要一個驅動的現象,降低了重復性勞動。

擴展知識

platform平臺總線相關定義

platform平臺總線相關的對象定義在文件 drivers/base/platform.c中。這個文件中實現了平臺總線對象和對象操作方法方面的內容。

兩個重要的數據結構體

1、platform_driver

這是內嵌一個device_driver 的結構體對象,其中定義了操作對象的方法。

2、platform_device

它是一個內嵌了device結構體對象,其中定義了設備描述資源的屬性。

具體對象定義如下:

1、platform_driver 對象定義

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

platform_device對象對定義:

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

注冊平臺總線驅動的函數:

int platform_driver_register(struct platform_driver *drv)

注冊平臺總線設備的函數:

int platform_device_register(struct platform_device *pdev)

推薦學習:Linux視頻教程

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
亚洲日韩小电影在线观看| 亚洲精品国产高清在线观看| 久久久久国产精品嫩草影院| 欧日韩不卡在线视频| 国产亚洲精品精品精品| 精品亚洲成A人在线观看青青| 亚洲乱码一区二区三区国产精品 | 亚洲AV日韩精品久久久久久| 兽交精品99高清毛片| 久久亚洲中文字幕精品一区| 国产精品无码无卡无需播放器| 亚洲av无码成人精品区| www.午夜精品| 亚洲国产综合精品一区在线播放| 日本免费精品一区二区三区| 精品国内自产拍在线视频| 国产AV日韩A∨亚洲AV电影| 日韩一级在线视频| 日韩AV片无码一区二区不卡| 人妻少妇精品系列| 一区二区精品视频| 国产成人精品在线观看| 国产精品一区三区| AV无码精品一区二区三区宅噜噜| 国内精品久久久久久久涩爱| 熟女人妻少妇精品视频| 国产原创精品视频| 国产成人精品999在线观看| 久久亚洲AV无码精品色午夜麻| 无码国产69精品久久久久网站| 久久99精品一久久久久久| 99久久99久久久精品久久| 91麻豆精品国产自产在线| 久久6这里只有精品| 97视频热人人精品免费| 国产精品久久无码一区二区三区网 | 国产精品女主播自在线拍| 香港三级精品三级在线专区| 精品无码国产AV一区二区三区 | 51午夜精品免费视频| 久久精品无码av|