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

21.2Linux中的LCD驱动实验(驱动)_csdn

1、修改设备树

Pasted image 20250421125525.png

1.1、LCD 屏幕使用的 IO 配置

Pasted image 20250421125635.png
Pasted image 20250421125655.png
Pasted image 20250421125718.png
Pasted image 20250421125738.png
Pasted image 20250421131002.png
编译:

			make uImage LOADADDR=0XC2000040 -j8 //编译内核
复制给内核的镜像路径:

Pasted image 20250406102926.png
Pasted image 20250406103009.png

1.2、LDTC 接口节点修改

Pasted image 20250421132242.png
Pasted image 20250421132424.png
Pasted image 20250421133310.png

1.3、输出接口的编写

Pasted image 20250421132753.png
Pasted image 20250421133629.png

2、在 panel-simple.c 文件里面添加屏幕参数

Pasted image 20250421133907.png
Pasted image 20250421134316.png
显示波浪线是因为alientek_desc 保存参数,这个参数我们并没有写。所以现在要写参数。
Pasted image 20250421134506.png

static const struct drm_display_mode ATK7016_mode = {.clock = 51200, /* LCD 像素时钟,单位 KHz */.hdisplay = 1024, /* LCD X 轴像素个数 */.hsync_start = 1024 + 140, /* LCD X 轴+hbp 的像素个数 */.hsync_end = 1024 + 140 + 20, /* LCD X 轴+hbp+hspw 的像素个数*/.htotal = 1024 + 140 + 20 + 160,/* LCD X 轴+hbp+hspw+hfp */.vdisplay = 600, /* LCD Y 轴像素个数 */.vsync_start = 600 + 20, /* LCD Y 轴+vbp 的像素个数 */.vsync_end = 600 + 20 + 3, /* LCD Y 轴+vbp+vspw 的像素个数 */.vtotal = 600 + 20 + 3 + 12,/* LCD Y 轴+vbp+vspw+vfp */.vrefresh = 60, /* LCD 的刷新频率为 60HZ */
};static const struct panel_desc alientek_desc = {.modes = &ATK7016_mode,.num_modes = 1,.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
};

如下图所示:
Pasted image 20250421134759.png
使用编译设备树命令发现:

make dtbs

还有文件中没有定义 backlight 节点,需要添加该节点。后面加。
Pasted image 20250421135129.png

3、LCD 屏幕背光节点信息

3.1、背光 PWM 节点设置

Pasted image 20250421135426.png
Pasted image 20250421135441.png
Pasted image 20250421135545.png
Pasted image 20250421135607.png
Pasted image 20250421135914.png
Pasted image 20250421135959.png
Pasted image 20250421140041.png

3.2、backlight 节点设置

Pasted image 20250421140323.png
Pasted image 20250421140411.png
Pasted image 20250421140509.png
Pasted image 20250421140634.png
Pasted image 20250421140740.png
Pasted image 20250421140837.png
现在就可以编译了!
编译:

			make dtbs

复制给内核:
Pasted image 20250406103715.png
Pasted image 20250406103009.png

4、运行测试

4.1、LCD 屏幕的 DRM 基本测试

4.1.1、配置内核

ST 官方的默认配置已经使能了 DRM 驱动,还是要告诉各位如何配置内核,打开 Linux内核图形化配置界面,按下路径找到对应的配置项:
Pasted image 20250421141607.png
Pasted image 20250421141652.png
Pasted image 20250421141708.png

4.1.2、文件系统使能 libdrm 库

Pasted image 20250421142554.png
Pasted image 20250421144945.png
为了避免配置项被清除,要保存一下配置项。
Pasted image 20250421145041.png

4.1.2、测试

Pasted image 20250421145122.png
Pasted image 20250421145210.png
Pasted image 20250421145228.png
Pasted image 20250421145246.png
Pasted image 20250421145258.png
Pasted image 20250421145329.png
Pasted image 20250421145342.png

4.2、LCD 屏幕的 FB 基本测试

Pasted image 20250421150325.png

4.2.1、使能 DRM 驱动的 FB

Pasted image 20250421150409.png

4.2.2、使能 PL110

Pasted image 20250421150442.png

4.2.3、使能 Linux logo 显示

Pasted image 20250421150516.png
Pasted image 20250421150916.png
Pasted image 20250421150933.png

4.3、设置 LCD 作为终端控制台

Pasted image 20250421154510.png

4.3.1、设置 uboot 中的 bootargs

Pasted image 20250421154543.png
Pasted image 20250421154556.png
我的是这个:

setenv bootargs 'console=tty1 console=ttySTM0,115200 root=/dev/nfs nfsroot=192.168.136.249:/home/chensir/linux/nfs/rootfs,proto=tcp rw ip=192.168.136.250:192.168.136.249:192.168.136.1:255.255.255.0::eth0:off'

大家可以按照自己的配置来改!

4.3.2、修改/etc/inittab 文件

Pasted image 20250421155257.png
Pasted image 20250421155550.png
回车用第三个按键。当时我们配置了第三个黄色按键为回车的!

echo hello linux! > /dev/tty1

Pasted image 20250421155738.png

4.4、LCD 背光调节

Pasted image 20250421155919.png
Pasted image 20250421160134.png
Pasted image 20250421160223.png
Pasted image 20250421160316.png
Pasted image 20250421160349.png
这里我们可以发现,并没有详细讲LCD的驱动源代码怎么写,因为代码数量和联系的结构体太多了,所以我以后会单独讲LCD的驱动代码编写!

相关文章:

  • [操作系统] 线程互斥
  • 大模型 Function Call
  • Unity SpriteEditor(精灵图片编辑器)
  • 24.Linux中RTC的驱动实验_csdn
  • 1.67g 雨晨 22635.5305 Windows 11 企业版 23H2 极速增强版
  • 边缘计算革命:大模型轻量化部署全栈实战指南
  • 机器人--底盘
  • 链表系列一>合并 k 个升序链表
  • Sublime Text4 4192 安装和一键激活
  • 基于Redis实现-附近商铺查询
  • 在项目中如何对Map List等对象序列化及反序列化
  • 第二章 OpenCV篇-图像阈值的综合操作-Python
  • 【瑞萨RA4L1-SENSOR套件测评】LCD 实时显示 ADC 水位高度
  • vue中$set原理
  • AIO-1126-JD4蓝牙通讯(BLE)
  • Lucene并不是只有倒排索引一种数据结构,支持多种数据结构
  • Angular教程前言:历史、安装与用途
  • Webug4.0靶场通关笔记08- 第11关万能密码登录(SQL注入漏洞)
  • 数字智慧方案5968丨智慧农业产销一体化云平台建设方案(72页PPT)(文末有下载方式)
  • 【Docker】Dockerfile 使用
  • 孙一凡的东欧狂想音乐会:一场穿越东欧的听觉绮梦
  • 苏迪曼杯八强战,中国队横扫马来西亚队晋级四强
  • 缔造“水饺皇后”的香港,也是被移民塑造的香港
  • 澎湃读报丨央媒头版集中刊发社论,庆祝“五一”国际劳动节
  • 经营业绩持续稳中向好,国铁集团2024年度和2025年一季度财务决算公布
  • 北方旱情持续,水利部:大中型灌区春灌总体有保障