platform將設備自己資源註冊進內核,方便內核統一管理,驅動程序使用這些資源時使用統一接口,提升了程序的可移植性。S3C6410處理器中,把內部集成的I2 C、RTC、SPI、LCD、看門狗等控制器都概括爲platform_device,而它們自己就是字符設備。函數
// 平臺設備 struct platform_device { const char * name;/* 設備名 */ u32 id; //設備編號 struct device dev; //設備 u32 num_resources;/* 設備所使用各種資源數量 */ struct resource * resource;/* 資源 中斷號 基地址等 */ };
例子spa
第一個資源記錄地址 屬於地址性的資源code
第二個資源記錄中斷號 屬於中斷性的資源orm
例如 platform_get_resource(pdev,IORESOURCE_IPQ,0) 獲取pdev的中斷號資源 第0個資源接口
probe函數:當platform設備與驅動匹配後會調用此函數,咱們對字符設備的註冊的工做能夠在這裏完成資源
remove函數:對字符設備的註銷工做在這裏完成
開發
driver:包含兩個字段rem
.name:須要與前面的platform_device中的name一致,才能完成匹配,匹 配成功就會調用 probe函數get
例子 建立平臺設備並註冊 會在 sys/bus/platform/devices/my_devit
添加設備驅動註冊 註冊成功了在 /sys/bus/platform/drivers/my_dev
驅動添加成功匹配成功,會調用my_probe。platform主負責設備匹配的做用,具體的驅動my_probe裏有。