Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    【FAQ】全志R329一些正常的I2C报错

    其它全志芯片讨论区
    r329 r328 r818 faq 技术支持
    1
    1
    230
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • q1215200171
      budbool LV 8 last edited by

      问题背景

      在使用I2C通信的时候,经常会出现一些I2C通信失败的报错,但是呢,有一些报错是正常的,并不会影响到系统或者模块正常工作的。下面就讲述一些常见的I2C正常报错。

      问题分析

      1、当在dts中配置了一些i2c设备,并且在kernel_menuconfig中也选上对应的驱动,但是实际硬件中并没有连接真实的硬件,这就会导致在系统启动时,会有不少的I2C报错打印出来。
      这里以一款触摸屏为例:

      2e6204efa5bd43a2bfb00f2fb46fec22.jfif

      系统启动时触摸屏驱动会多次地使用I2C向触摸屏模块进行通信,但是由于实际硬件没有连接触摸屏,通信是一定会失败的,因此就会打印一大堆通信失败的字眼。这些其实都是正常的,并不会影响到系统正常加载。

      解决办法:

      如果不想要看到这么多错误的打印的话,可以尝试以下几种办法:

      (1)可以修改系统启动时的打印等级,通过命令“cconfigs”跳转到方案的配置目录,然后找到文件env*.cfg(这里*指的是内核版本,若是4.9内核,则配置文件名为env-4.9.cfg,在4.9以前版本的内核中都是这样命名的。只有在5.4内核中,是直接命名为env.cfg)。然后修改参数loglevel,将其值改为0,那么就可以减少很多内核打印了。

      c47f124e26ab4d33b62294eeab79f26e.jfif

      (2)在触摸屏代码中,在probe函数中初始化一些资源后,尽快地调用I2C去读取触摸屏的一些ID号或者是版本号,若读取失败后,就立即退出驱动加载。没必要继续进行其他设置相关的I2C通信。

      2、使用i2c-detect工具检索某个I2C总线哪些地址存在设备时,出现很多错误通信的log信息,可能会令人误以为该I2C总线是有问题的。如下图所示:

      766a08a7151744c5b41eea37c323b396.jfif

      上图命令i2cdetect -y 2的作用是:检索I2C2总线上所有的I2C设备。这里的打印其实都是正常的,检索是通过cpu主动向全部I2C地址读写数据来检测的。可能硬件上一根I2C总线就连接了一个I2C设备,只会占用一个I2C设备地址,那么其他地址都是为空的。自然而然地,与这些空的设备地址通信肯定是失败的,因此也一定会有错误的打印打出来。

      解决办法:

      (1)减少系统内核打印等级,进入内核打印等级修改节点“printk”的目录:

      cd /proc/sys/kernel
      ls
      cat printk
      echo 2 > printk
      一般内核打印等级为4,当输入到printk的值小于4时,即可把大于等于4的打印等级全部关闭。

      (2)使用adb去调试:
      内核打印是通过串口打印出来的,若通过usb连接开发板,通过adb调试进入系统调试界面,adb是不能接收串口打印的,因此自然地看不到内核错误打印。

      1 Reply Last reply Reply Quote Share 0
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • 1 / 1
      • First post
        Last post

      Copyright © 2022 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策