Linux 设备驱动简易框图

最近读了一些网上对Linux 设备模块解释的文章,对linux 设备原理有了初步的了解。

现以下图作以学习成果记录。

 

一. 建立bus

任何一个Device 都是要利用bus 来进行通信的。所以在你要在建立一个Device之前要确定它属于哪个bus。在没有现成的bus可以利用的情况下就要自己来建立一个bus了。

建立最简单的bus (bus_init) 需要两个步骤:

1. 注册bus: bus_register() 和 bus_create_file() 。这两步的作用是在sys/下注册一个名为xxx_bus的bus。

2. 注册devide: 这个device并不是我们最终要建立的device,而是和bus对应的device集合,我们要建立的device应该是这个xxx_bus的child。注册完成后,我们可以在sys/devices/下发现新建了一个名为xxx_bus的目录。

 

二. 建立Device和Driver

有了bus后,就可以把想要建立的Device 或 Driver挂到bus上

1. 建立Device(devide_init()):使用device_register建立device, 其中.bus_type指向所属的bus、.parent指向所属的bus_device。注册完成后,我们可以在sys/devices/xxx_bus/下发现xxx_device目录建立成功。并且在sys/bus/xxx_bus/下也发现一个xxx_device目录,这个目录是前一个xxx_device的符号链接。

2.建立Driver(driver_init()):使用driver_register建立driver,其中.bus_type指向所属的bus。注册完成后,我们可以在sys/bus/xxx_bus/下发现xxx_driver目录建立成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值