完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
系统启动时触摸屏驱动会多次地使用I2C向触摸屏模块进行通信,但是由于实际硬件没有连接触摸屏,通信是一定会失败的,因此就会打印一大堆通信失败的字眼。这些其实都是正常的,并不会影响到系统正常加载。 常见的I2C通信正常报错有哪些呢?怎样去解决? |
|
相关推荐
2个回答
|
|
解决办法:
如果不想要看到这么多错误的打印的话,可以尝试以下几种办法: (1)可以修改系统启动时的打印等级,通过命令“cconfigs”跳转到方案的配置目录,然后找到文件env*.cfg(这里*指的是内核版本,若是4.9内核,则配置文件名为env-4.9.cfg,在4.9以前版本的内核中都是这样命名的。只有在5.4内核中,是直接命名为env.cfg)。然后修改参数loglevel,将其值改为0,那么就可以减少很多内核打印了。 (2)在触摸屏代码中,在probe函数中初始化一些资源后,尽快地调用I2C去读取触摸屏的一些ID号或者是版本号,若读取失败后,就立即退出驱动加载。没必要继续进行其他设置相关的I2C通信。 2、使用i2c-detect工具检索某个I2C总线哪些地址存在设备时,出现很多错误通信的log信息,可能会令人误以为该I2C总线是有问题的。如下图所示: 上图命令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去调试: 内核打印是通过串口打印出来的,若通过u***连接开发板,通过adb调试进入系统调试界面,adb是不能接收串口打印的,因此自然地看不到内核错误打印。 |
|
|
|
只有小组成员才能发言,加入小组>>
467 浏览 0 评论
590 浏览 0 评论
715 浏览 0 评论
全志T113双核异构处理器的使用基于Tina Linux5.0——RTOS系统定制开发
1381 浏览 0 评论
全志T113双核异构处理器的使用基于Tina Linux5.0——RTOS编译开发说明
747 浏览 0 评论
全志V85x硬件设计大赛作品精选第二期,快来Pick你心目中的最佳方案
91889浏览 3评论
2837浏览 1评论
5109浏览 1评论
Yuzuki Lizard 全志V851S开发板 –移植 QT5.12.9教程
16391浏览 1评论
关于全志T113开发板接7寸LCD屏幕显示异常问题的解决方案
1126浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 04:02 , Processed in 0.520224 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号