gpt4 book ai didi

Linux 设备驱动程序

转载 作者:太空狗 更新时间:2023-10-29 11:45:45 25 4
gpt4 key购买 nike

我的模块有问题,它已正确安装/初始化,但驱动程序的其他部分未安装或未显示在输出中。

   static struct i2c_driver qt2120_dev {
.probe = qt2120_probe,
.remove = qt2120_remove,
.owner = {
.name = qt2120,
.module = THIS_MODULE,
}
....
}

static __init qt2120_init(){
prink("********init******");
.......
}
module_init(qt2120_init)

static int qt2120_probe(){
prink("********probe******");
.......
}

static __devinit qt2120_remove(){
prink("********probe******");
.......
}

只有“/**init*”出现在输出中。根据输出,该模块已安装到 i2c。

  "bus: i2c. qt2120 as qt2120/input" 

模块有问题,因为 printk 根本没有探测和删除。

我还在 MAKEFILE @CONFIG_AT2120 += qt2160.o 中更改了 qt2120.o 作为模块

我的配置有问题吗? qt2120.c与code aurora中的qt2160.c非常相似。

最佳答案

探测和删除函数未调用,因为您尚未向 i2c 子系统注册您的驱动程序。使用 i2c_add_driver() API 注册您的驱动程序。在你的情况下,

static int __init qt2120_init(void)
{
return i2c_add_driver(&qt2120_dev);
}

static void __exit qt2120_remove(void)
{
return i2c_del_driver(&qt2120_dev);
}

关于Linux 设备驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16965674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com