很多人对platform device和Platform Driver认识不是很清楚,今天就给大家解释一下.
Platform_device和Platform_driver是从Linux 2.6起引入了一套新的驱动管理和注册机制,
Linux platform driver机制和传统的device driver 机制(即通过driver_register函数进行注册)相比,
一个非常明显的优势在于platform机制将设备本身的资源注册进内核,由内核统一管理. 内核统一管理这些资源后,
当驱动程序中需要使用这些资源时,可通过platform device提供的标准接口进行申请并使用。
这样,一方面在提高驱动独立性和资源管理独立性的同时,也使得驱动具有拥有较好的可移植性,
另外,由于这些标准接口是安全的,因此,这也使得驱动具有较好安全性。
从上面的分析,我们可以看出:对于那些与内核本身运行依赖性不大的外围设备,这些设备很多是那些不包含在最小系统之内的设备,如lcd,usb,uart等,都可以用platform_driver实现,原因是这些设备拥有各自相对比较独自的资源,如中断和地址,相对比较独立,这和Platform_device的意图想吻合,因此可以按platform_driver来实现,查看内核里面的源代码,我们可以看出,事实上,内核也是这么来做的. |