设备驱动(十二)

设备模型
内核对设备进行分类,以层次结构组织管理成为设备结构
/sys/devices 下显示了所有的设备

/sys/bus 按照总线分类显示了所有设备 

/sys/class 按照功能类型分类显示了所有设备
设备驱动(十二)_第1张图片

驱动和设备都会在总线上注册
/sys/bus
不需要总线的设备将会注册到flatform总线上
为了达到驱动与平台的无关性使用设备模型规范编写代码

创建设备结构体
struct platform_device test_device = {
     .id = -1,
     .name = "test_device",
     .dev.release = device_release,
};
创建对应驱动结构体
struct platform_driver test_driver = {
     .probe = driver_probe,
     .remove = __devexit_p(driver_remove),
     .driver = {
          .name = "test_device",
     },
};
注册设备
platform_device_register(&test_device);
注册驱动
platform_driver_register(&test_driver);
当设备与驱动匹配时,将会执行probe函数。
probe函数入参有resource资源


你可能感兴趣的:(linux,设备驱动)