1 参考书籍
参考书籍 《嵌入式Linux驱动开发教程》 华清远见嵌入式学院
2 范例代码
#include
#include
#include
#include
static int vbus_match(struct device *dev, struct device_driver *drv)
{
return 1;
}
static struct bus_type vbus={
.name="vbus",
.match=vbus_match,
};
EXPORT_SYMBOL(vbus);
static int __init vbus_init()
{
return bus_register(&vbus);
}
static int __init vbus_exit()
{
bus_unregister(&vbus);
}
module_init(vbus_init);
module_exit(vbus_exit);
MODULE_LICENSE("GPL");
#include
#include
#include
#include
extern struct bus_type vbus;
static struct device_driver vdrv={
.name="vdrv",
.bus=&vbus,
};
static int __init vdrv_init()
{
return driver_register(&vdrv);
}
static int __init vdrv_exit()
{
driver_unregister(&vdrv);
}
module_init(vdrv_init);
module_exit(vdrv_exit);
MODULE_LICENSE("GPL");
#include
#include
#include
#include
extern struct bus_type vbus;
static void vdev_release(struct device *dev)
{
}
static struct device vdev={
.init_name="vdev",
.bus=&vbus,
.release=vdev_release,
};
static int __init vdev_init()
{
return device_register(&vdev);
}
static int __init vdev_exit()
{
device_unregister(&vdev);
}
module_init(vdev_init);
module_exit(vdev_exit);
MODULE_LICENSE("GPL");
3 运行结果