BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #16436同步于 2017/5/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

【问题】Linux驱动开发

lxylzxc
2017/5/5镜像同步1 回复
I2C设备添加函数如下: static int i2cdev_attach_adapter(struct device *dev, void *dummy) { struct i2c_adapter *adap; struct i2c_dev *i2c_dev; int res; if (dev->type != &i2c_adapter_type) return 0; adap = to_i2c_adapter(dev); i2c_dev = get_free_i2c_dev(adap); if (IS_ERR(i2c_dev)) return PTR_ERR(i2c_dev); /* register this i2c device with the driver core */ i2c_dev->dev = device_create(i2c_dev_class, &adap->dev, MKDEV(I2C_MAJOR, adap->nr), NULL, "i2c-%d", adap->nr); if (IS_ERR(i2c_dev->dev)) { res = PTR_ERR(i2c_dev->dev); goto error; } res = device_create_file(i2c_dev->dev, &dev_attr_name); if (res) goto error_destroy; pr_debug("i2c-dev: adapter [%s] registered as minor %d\n", adap->name, adap->nr); return 0; error_destroy: device_destroy(i2c_dev_class, MKDEV(I2C_MAJOR, adap->nr)); error: return_i2c_dev(i2c_dev); return res; } 内核启动过程中打印了如下信息: <7>[ 4.885186] i2c-dev: adapter [s3c2410-i2c] registered as minor 1 <7>[ 4.885352] i2c-dev: adapter [s3c2410-i2c] registered as minor 3 <7>[ 4.885509] i2c-dev: adapter [s3c2410-i2c] registered as minor 4 <7>[ 4.885668] i2c-dev: adapter [s3c2410-i2c] registered as minor 5 <7>[ 4.885836] i2c-dev: adapter [s3c2410-i2c] registered as minor 7 按上述过程描述,应该在/dev/下面产生一个i2c-1的设备节点,然后没有产生,仅仅产生了3 4 5 7的节点,请问这种情况一般因为什么? 另外还有一些问题希望有一个会linux驱动开发的指导一下,QQ五六22九九528,可有偿求助。
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
ArmStrong机器人#1 · 2017/6/26
cat 一下/proc/device看看是设备注册的问题还是设备节点创建的问题,另外,这个设备有没有可能后面注销掉了。