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目录建立成功。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/phlong999/article/details/6873443
文章标签: linux file
上一篇Wait 和 wake up (I/O 阻塞)
下一篇Linux 进程调度器学习笔记
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭