首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么cdev_add不执行驱动程序/base/core.c的device_add/kobject_add之类的操作

为什么cdev_add不执行驱动程序/base/core.c的device_add/kobject_add之类的操作
EN

Stack Overflow用户
提问于 2018-06-14 15:24:49
回答 1查看 97关注 0票数 0

字符设备注册与其他设备注册有什么不同??

这里是一个带有调节器核心的平台驱动程序注册设备,该调节器核心又具有驱动程序核心: /drivers/regulator/tps65086-regulator.c--->/drivers/regulator/core.c--->驱动程序/基础/核心。

调用流程: tps65086_regulator_probe-->regulator_register---> device_register->device_add-> kobject_add

其中,下面是将设备注册为字符设备的驱动程序

/drivers/scsi/3w-xxxx.c -->fs/char_dev.c -> /drivers/base/map.c

呼叫流程:

tw_probe --> register_chrdev --> cdev_add --> kobj_map

为什么不最终转到驱动核心并调用device_add呢?

EN

回答 1

Stack Overflow用户

发布于 2018-07-03 00:09:53

平台驱动程序和设备驱动程序之间的区别在于,平台设备直接连接到CPU,而设备驱动程序处理连接到系统总线的设备。所以注册机制也是不同的。

例如,平台设备将向平台总线注册,平台总线是伪总线。而实际设备将注册到该设备所连接到的相应总线。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50851834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档