【屏幕驱动移植记录】

项目场景:

移植屏幕驱动到双系统上


问题描述

代码移植完成之后没有背光、没有显示


前提要求:

1.屏幕的显示依赖于FPGA固件,先检查固件是否有被烧录进去

2.烧录完固件以后单系统显示正常------硬件正常、mcu正常


解决方案:

  • 查看是否识别到屏幕外设------挂载在I2C总线上就用I2C-tools扫一下是否识别到设备

没有扫到

1、检查驱动是否注册成功

2、i2c总线速率是否正确

  • 如果有设备节点就看设备节点是否注册成功,没有就在驱动probe函数中添加打印确保probe走完

  • 最重要的一步:抓取gpio状态,在设备树上明确所有涉及显示的gpio,然后比对gpio状态

    一般主要看gpio的mode 、dir 、dout三个状态一定要和正常显示的相一致

如果不一致,看两个地方:

一个是预设gpio状态的文件dws文件,检查是否正确一致

二个是看设备树中的pinctrl配置是否一致


场景还原

完成前提要求情况下双系统无背光、无显示

操作步骤:

1、在启动probe中添加打印,发现仪表驱动正常注册

2、检查I2C总线速率,调整为和单系统一致

3、显示驱动正常而且一直没有背光,怀疑是背光没有点亮导致的出图失败

4、检查pwm相关驱动,发现也是正常注册走完了的

5、对比单双系统的pwm相关log,发现有双系统缺少部分打印

6、排查打印,发现由于宏控原因导致pwm驱动部分enable函数并没有被执行到,修改宏控后背光点亮

7、背光虽然被点亮但是点亮时间很晚,在启动日志都打印完了才开始点亮。而单系统背光点亮在4秒左右

8、检查pinctrl配置是相同的,检查gpio状态发现仪表pwr引脚状态不对------检查dws文件,发现果然存在差异。由于厂商的dws文件最开始就和我们存在差异,他们做提交的时候就没有更改显示相关的所有gpio,所以移植的时候也忽略了这个点。

至此,显示和单系统完全一致

相关推荐
liujing102329293 小时前
stm32大项目阶段20251015
linux
嵌入式郑工4 小时前
LINUX驱动开发: 设备和驱动是怎么匹配的?
linux·运维·服务器
郭式云源生法则5 小时前
归档及压缩、重定向与管道操作和综合使用,find精确查找、find处理查找结果、vim高级使用、vimdiff多文件使用
linux·运维·服务器
一张假钞5 小时前
Ubuntu 24.04 安装 Jenkins
linux·ci/cd·jenkins
tuokuac6 小时前
查看你电脑上某个端口正在被哪个进程占用
linux
MANONGMN6 小时前
Linux 通配符与正则表达式(含实战案例+避坑指南)
linux·运维·正则表达式
带土16 小时前
18 .shell编程-正则表达式
linux·正则表达式
爱吃甜品的糯米团子7 小时前
Linux 学习笔记之进程管理、网络基础与常用软件安装
linux·网络·学习
Micro麦可乐7 小时前
Centos Stream 9 中Docker安装出现 download.docker.com:443 的问题解决
linux·docker·centos·podman
poemyang7 小时前
你的程序为何卡顿?从LINUX I/O三大模式寻找答案
linux·rpc