一张图掌握 Linux platform 平台设备驱动框架!【建议收藏(1)

 bus_register      //注册一条总线
 bus_unregister    //注销总线

平台总线的注册如下:
在这里插入图片描述

2. 总线设备(硬件)

● struct device 结构:

在最底层,Linux 系统中每一个设备都用 device 结构的一个实例来表示:

 struct device //device.h
 {
    struct bus_type    \*bus;//代表该设备挂在哪条总线上
    void    (\*release)(struct device \*dev); //release 是必须实现的
    ...
 }

● 设备注册:

 device\_register(struct device \*dev)
 device\_unregister(struct device \*dev)

3. 设备驱动(软件)

设备模型跟踪所有系统所知道的设备,进行跟踪的主要原因是让驱动程序核心协调驱动程序与新设备之间的关系。

设备驱动程序可以导出信息和配置变量,这些是独立于任何特定设备的。

● device_driver 结构:

 struct device_driver //device.h
 {
 	//用于和硬件进行匹配
    const char  \*name;
    
    struct bus_type        \*bus;
    int (\*probe) (struct device \*dev);
    int (\*remove) (struct device \*dev);
    ...
 }

● 注册函数:

 driver\_register(struct device_driver \*drv)
 driver\_unregister(struct device_driver \*drv)

二、platform 平台总线

为了达到所有硬件都可以按照总线设备驱动模型来实现驱动,内核中建立一条虚拟的总线platform,它可以将那些没有真正挂在具体总线上的硬件, 虚拟的认为挂在了platform总线上,达到统一。

而其中用户最需要做的就是填充 platform_driver 驱动 和 platform_device设备。

1. platform_device

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值