7.4.3. 调试指南

7.4.3.1. I2C通信调试

在使能I2C的驱动后,可以通过i2c-tools中的i2cdetect工具,快速检测I2C通信功能是否正常。使能驱动后,会创建出相应的I2C适配器,但是I2C通信功能是否正常仍是不确定的,可通过如下命令进行测试:

i2cdetect -y -r 0

此命令用来测试I2C总线0上的地址分布情况。如果通信正常,即使总线上没有挂接任何I2C设备,那么也会立即返回结果。如果在该测试中返回transfer timeout,那么需要先检查I2C的SDA和SCL是否有上拉(该问题一般是由于没有上拉导致)。如果有上拉,那么需要进一步进行调试。

7.4.3.2. 调试开关

I2C的驱动由一些dev_dbg的调试信息,默认情况下是不会打印的,当需要进行跟踪调试时,可通过以下步骤打开这些调试信息。

7.4.3.2.1. 调整log等级

通过menuconfig调整内核的log等级

Kernel hacking--->
    printk and dmesg options--->
        (8) Default console loglevel (1-15)

7.4.3.2.2. 打开调试开关

Kernel hacking--->
    ZX Debug--->
        [*] I2C driver debug