Linux kernel Linux i2c设备驱动程序模块\u i2c\u驱动程序()

Linux kernel Linux i2c设备驱动程序模块\u i2c\u驱动程序(),linux-kernel,linux-device-driver,i2c,Linux Kernel,Linux Device Driver,I2c,我使用的是MCP3021芯片的文件。我的模块的init和exit函数被替换为module_i2c_驱动程序(mcp3021_驱动程序),但在运行代码时,我在内核日志中看不到打印的驱动程序寄存器。有人能帮我吗?首先要做的是你使用的是哪个内核版本?因为这个宏是在Linux内核3.3版之后引入的 因此,如果您使用的内核版本低于此版本,那么在编译内核时实际上应该会出现错误。您必须验证以下几点才能使其正常工作 确保I2C设备正确安装在硬件中 确认您的设备未处于重置状态 确保在设备树中使用适当的I2C总线,

我使用的是MCP3021芯片的文件。我的模块的
init
exit
函数被替换为
module_i2c_驱动程序(mcp3021_驱动程序)
,但在运行代码时,我在内核日志中看不到打印的驱动程序寄存器。有人能帮我吗?

首先要做的是你使用的是哪个内核版本?因为这个宏是在Linux内核3.3版之后引入的


因此,如果您使用的内核版本低于此版本,那么在编译内核时实际上应该会出现错误。

您必须验证以下几点才能使其正常工作

  • 确保I2C设备正确安装在硬件中
  • 确认您的设备未处于重置状态
  • 确保在设备树中使用适当的
    I2C总线
    ,并且正确配置了驱动程序id
  • 检查
    内核配置(.config)
    是否已启用驱动程序
  • 只有满足上述所有条件,才会调用I2C探针