当前位置: 代码迷 >> 驱动开发 >> 设备驱动在开机时是什么时候以什么方式被加载的?该怎么解决
  详细解决方案

设备驱动在开机时是什么时候以什么方式被加载的?该怎么解决

热度:48   发布时间:2016-04-28 10:55:51.0
设备驱动在开机时是什么时候以什么方式被加载的?
设备驱动在开机时是什么时候以什么方式被加载的?
还有比如触摸设备,在/dev/x下生成设备号,
上层是怎么知道/dev/x下的x就是触摸设备而不是其它设备呢?
感觉驱动设备流程上还很模糊,大家帮忙回答一下啊。。。。

------解决方案--------------------
你说的是linux 下的驱动吧.


Windows CE中, 流驱动由 设备管理器Device.exe加载. 本地驱动由 GWES 管理加载.
------解决方案--------------------
1. linux下驱动有静态和动态的,加载情况不一样,
静态的话是编译进内核了,所以和内核一起加载,其各自加载顺序又和init函数及platform_device中 位置有关。
动态的话是在系统启动后在加载module那一步加载的,其顺序与module的配置文件有关。

2. /dev/x是设备节点,具体名称是在其设备驱动中创建节点时指定的(至于设备号的话有规范见devices.txt),所以会和驱动对应起来。
------解决方案--------------------
探讨
xg1410,非常感谢你的回复,
1:静态编译进内核是否是指不需要通过mkmod之类的手动加载? 那么开机时系统根据又是根据什么来判断当前有哪些驱动设备需要加载进来呢?如果说是根据platform_device的probe之类的,但这时候platform还没启运,系统又是怎么知道呢?
2:创建节点是指class_device_create创建后在/dev/目录下就生成相应设备文件了吗?你所说的……
  相关解决方案