驱动:11.2 总线驱动模型

为了统一芯片设备驱动框架
内核中设计了一套

1.总线

struct bus_type{   //描述总线
	const char  *name;
}
bus_register
void bus_unregister(struct bus_type *bus);
ls /sys/bus/

2.设备

struct device{   //device.h  描述设备
	struct bus_type *bus; //该设备挂在那条总线上
	...
}
int device_register(struct device *dev);
void device_unregister(struct device *dev);

3.设备驱动

struct device_driver{  //device.h  描述设备的逻辑驱动
	const char *name;
	struct bus_type *bus;
	...
}
int __must_check driver_register(struct device_driver *drv);
void driver_unregister(struct device_driver *drv);

问题:按键设备挂在了哪条总线上?没有挂在具体的总线上
那些没有挂在具体总线上的设备
就无法按照总线驱动模型框架完成驱动程序
linux为了该问题,虚拟出了一条总线:platform总线
让那些没有挂在具体总线上的设备,可以人为想象成挂在了platform总线上
从而使得该类型设备也可以按照总线驱动模型的框架完成驱动程序
统一了设备的驱动编程框架

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值