java platform是什么,让我们一起了解一下?
paltform是一种虚拟的总线,用于管理外设资源、内存资源、中断资源,在硬件上有USB-BUS总线,PCI-BUS总线,这是在物理设备上实际存在的总线。platform的一个优点就是将驱动和设备分开,提高驱动的移植性。
platform的灵魂是:device(设备)driver(驱动)platform_bus(platform总线),其特点是设备,驱动分层动态的管理和加载,其中platform_bus是一个虚拟的总线。
drvier和device匹配的方法有3种:
1、当一个设备注册的时候,他会在总线上寻找匹配的driver,platform device一般在系统启动很早的时候就注册了。
2、当一个驱动注册[platform_driver_register()]的时候,他会遍历所有总线上的设备来寻找匹配,在启动的过程驱动的注册一般比较晚,或者在模块载入的时候。
3、当一个驱动注册[platform_driver_probe()]的时候, 功能上和使用platform_driver_register()是一样的,唯一的区别是它不能被以后其他的device probe了,也就是说这个driver只能和 一个device绑定。
如何定义一个driver?
static struct platform_driver test_platform_driver = { .probe = dev_test_probe, .remove = dev_test_remove, .suspend = dev_test_suspend, .resume = dev_test_resume, .driver = { .owner = THIS_MODULE, .name = "cx2837_test", }, };
如何定义一个device(设备)?
static struct platform_device dev_fb0 = { .name = "cx2837_test", .id = 1, };
以上就是小编今天的分享了,希望可以帮助到大家。