当前位置: 首页 > article >正文

【屏幕驱动移植记录】

项目场景:

移植屏幕驱动到双系统上


问题描述

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


前提要求:

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,所以移植的时候也忽略了这个点。

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


http://www.kler.cn/a/379316.html

相关文章:

  • kubevirt cloud-init配置
  • Java环境下配置环境(jar包)并连接mysql数据库
  • leetcode71:简化路径
  • 代码随想录第十七天
  • 【基础】os模块
  • go 聊天系统项目-1
  • C#如何封装将函数封装为接口dll?
  • 集成学习(2)
  • 前端学习-盒子模型(十八)
  • TensorRT-LLM笔记
  • 数据结构:总览
  • 九,数据类型存储
  • Kubernetes——part9-2 kubernetes集群java项目上云部署
  • 大模型微调
  • ubuntu离线部署ollama
  • Java毕业设计-基于微信小程序的校园二手物品交易系统的实现(V2.0)
  • docker build cache 占用磁盘空间很高
  • SQL,力扣题目1747,应该被禁止的 Leetflex 账户
  • 近期学习前端的心得
  • (三千字心得笔记)零基础C语言入门第七课——二维数组
  • 【面试经典150】day 11
  • 双分解+一区极光优化+Transformer!CEEMDAN-Kmeans-VMD-PLO-Transformer多元时序预测
  • Python 作用域浅析
  • 【LeetCode】每日一题 2024_11_1 超级饮料的最大强化能量(DP)
  • 【实战篇】requests库 - 有道云翻译爬虫 【附:代理IP的使用】
  • brew 下载过慢, 切换使用国内源