[Android]Linux kernel 開發基礎 (二)- platform device

首頁 >> google協作平臺 >> [Android]Linux kernel 開發基礎 (二)- platform device

Linux自2.6之後導入新的驅動管理與註冊機制,

在這樣的設計下,

bus , device , driver. 三者就是必須了解的基本元素.

CPU要執行某裝置的功能簡單的流程如下:

CPU->bus->device->driver

1. Bus 是CPU與各個裝置的連結通道,

CPU 透過bus找到device.

2. Device是接在bus上的實體裝置

3. Driver則詳細定義了裝置的各項功能

Platform bus 是一個虛擬通道,

現在大多數裝置都是建立在platform bus 上.

它可分為兩部份:

platform_device 與 platform_driver

今日主題

Linux kernel 開發基礎 (二)- platform device

 

基礎定義:

 

struct platform_device {
 const char *name;
 u32  id;
 struct device dev;
 u32  num_resources;
 struct resource *resource;
};

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 (*suspend_late)(struct platform_device *, pm_message_t state);
 int (*resume_early)(struct platform_device *);
 int (*resume)(struct platform_device *);
 struct device_driver driver;
};

 

要利用platform bus管理裝置可透過:
int platform_device_add(struct platform_device *pdev);
int platform_device_register(struct platform_device *);
來註冊裝置.

這些定義可以在
kernel/include/linux/platform_device.h找到.


================================
分享與讚美,是我們繼續打拼的原動力.
若文章對您有幫助,望請不吝按讚或分享.
或者對影片有興趣可以訂閱頻道接收通知
================================
YouTube 頻道
FB 粉絲專頁
================================

guangyaw

重點主題: 程式設計: Python , Django,Android 工具與軟體: Open edX,Linux工具,Blender教學 分享各地美景與產品使用心得,遊戲實況,甚至影視戲劇等, 您的訂閱就是頻道成長的原動力。 YouTube 頻道: https://youtube.com/xyawli

You may also like...

發佈留言