
1. 从一块不亮的屏幕说起MIPI-DSI 到底在系统里扮演什么角色如果你手里正拿着一块 T113i 的开发板屏幕排线插好了、背光也亮了但屏幕上就是一片白或者一片黑那你大概率正卡在 MIPI-DSI 这条链路的某个环节上。我见过太多人第一次点屏时的状态电源量了、复位拉了、背光给了然后盯着屏幕发呆不知道下一步该查什么。问题就在于很多人把点屏当成一个开关式的操作以为接上线就该亮但实际上 MIPI-DSI 是一条从 SoC 内部显示控制器一路延伸到玻璃面板的完整数据通路中间任何一个环节配置错了屏幕都不会给你任何反馈。MIPI-DSI全称 Mobile Industry Processor Interface Display Serial Interface是移动产业处理器接口联盟定义的一套显示串行接口标准。它解决的核心问题是在手机、平板、嵌入式设备这种空间紧张、功耗敏感的场景下如何用尽量少的引脚把高分辨率、高刷新率的图像数据从主控芯片送到显示面板。传统的 RGB 并口屏分辨率一上去数据线数量就爆炸24 位色深加时钟加同步信号动辄三四十根线PCB 布线难度和电磁干扰都是噩梦。DSI 用差分信号对做串行传输一条 Clock Lane 加若干条 Data Lane就能把同样的数据量送出去线数直接砍到个位数。对于 T113i 这类嵌入式平台来说MIPI-DSI 通常是屏幕点亮的首选接口。T113i 是全志的一款双核 A7 处理器主打工业控制和嵌入式显示场景它的显示子系统支持 MIPI-DSI 输出配合 DEDisplay Engine和 TCONTiming Controller完成从 framebuffer 到面板的完整链路。你要点亮一块 MIPI 屏本质上要做的事情是让 SoC 的 DSI 控制器按照面板能听懂的语言和节奏把像素数据发出去同时让面板处于正确的工作状态。这里面的语言就是 DSI 的协议层包括指令模式和视频模式两种基本工作方式节奏就是时序参数包括像素时钟、前后肩、同步脉冲宽度这些而面板处于正确的工作状态则涉及电源上电顺序、复位时序、初始化指令序列的写入。这三件事任何一件没做对屏幕都不会亮。而且更麻烦的是不同厂商、不同型号的面板这三件事的具体内容都不一样没有一套万能配置能通吃。所以这篇内容我想做的事情很明确把 MIPI-DSI 点屏这件事从玄学变成工程。我会从 DSI 的物理层和协议层讲起把 T113i 平台上点屏的完整链路拆开然后重点讲实际操作中最容易出问题的几个环节——设备树配置、初始化序列、时序参数计算、以及点不亮时的排查思路。适合正在用 T113i 或者类似平台做屏幕调试的嵌入式工程师也适合想搞清楚 MIPI-DSI 底层原理的读者。不管你用的是 Linux 还是 RTOS这套分析思路都是通用的。2. 拆开 MIPI-DSI 的四层结构从差分信号到像素数据2.1 物理层几条差分线如何扛起整个屏幕的数据量MIPI-DSI 的物理层叫 D-PHY这是整个接口的根基。你去看一块 MIPI 屏的排线会发现上面有 Clock 差分对和一到四组 Data 差分对每组差分对由 P 和 N 两根线组成。这就是 D-PHY 的全部物理连接。以常见的 4-lane 配置为例加上时钟线总共也就 10 根信号线却能驱动 1080p 甚至更高分辨率的屏幕这就是差分串行的威力。D-PHY 的工作模式分两种高速模式和低功耗模式。高速模式下差分对的共模电压很低摆幅小速度快用来传输实际的像素数据和高速指令低功耗模式下两条线各自独立工作摆幅大速度慢用来传输控制指令和进入/退出高速模式的切换信号。这个设计很巧妙——屏幕大部分时间在传数据用高速模式保证带宽但在初始化、休眠、唤醒这些时刻需要传一些低速的控制信号就用低功耗模式省电。每条 Data Lane 在高速模式下的理论速率取决于 D-PHY 版本和 SoC 的支持能力。T113i 的 DSI 控制器通常支持每 lane 最高 1Gbps 左右的速率四条 lane 加起来就是 4Gbps。你可以自己算一下1920x1080 分辨率24 位色深60Hz 刷新率需要的带宽是 1920 × 1080 × 24 × 60 ≈ 2.99Gbps。所以 4-lane 跑 1080p 60Hz 是绰绰有余的甚至 2-lane 在稍微降低刷新率的情况下也能跑。这个计算在你选屏和配置 lane 数量的时候非常有用后面讲时序参数时还会用到。实际布线的时候差分对的等长和阻抗控制是硬件工程师的事但作为软件调试人员你需要知道一点如果硬件上差分对走线不等长或者阻抗不匹配表现出来就是屏幕能识别但画面有噪点、闪烁或者干脆链路训练失败。遇到这种情况先别怀疑软件配置拿示波器或者专门的 MIPI 分析仪看一下信号质量往往能省下大量瞎调参数的时间。2.2 协议层指令模式和视频模式的本质区别DSI 协议层定义了两种工作模式这是点屏时第一个要搞清楚的概念因为它直接决定了你的配置方式和初始化流程。视频模式英文叫 Video Mode也叫高速模式。这种模式下SoC 持续不断地把像素数据流发给面板就像传统的 RGB 接口一样面板收到数据就直接显示不需要额外的帧缓存。这种模式的好处是简单直接延迟低坏处是只要数据流一停屏幕就没画面了而且 SoC 的显示控制器必须一直工作功耗相对高。视频模式适合需要高刷新率、低延迟的场景比如游戏机、视频播放设备。指令模式英文叫 Command Mode也叫低速模式。这种模式下SoC 不是持续发数据而是把一帧图像先写进面板自带的 GRAM图像内存里然后面板自己从 GRAM 里读数据刷新显示。SoC 只在需要更新画面的时候才发数据其他时间可以休眠。这种模式省电适合静态显示或者低刷新率场景比如电子书、仪表盘。但面板需要自带 GRAM成本会高一些。对于 T113i 点屏来说你拿到的面板规格书里会明确写它是视频模式还是指令模式。大部分中小尺寸的 MIPI 屏尤其是手机和平板用的都是视频模式。工业屏里指令模式的会多一些。这两种模式在设备树里的配置方式不同初始化序列的写法也不同。视频模式下初始化序列通常在面板上电后通过低速模式写入然后切换到高速模式开始传数据指令模式下初始化序列写完后还需要配置面板的刷新方向和 GRAM 窗口。我个人的经验是第一次点一块新屏先确认它的工作模式然后找厂商要初始化序列。如果厂商只给了寄存器配置表没给序列那你就得自己根据规格书里的上电时序和寄存器说明来写这是最耗时的情况。好在现在大部分屏厂都会提供一份参考初始化代码哪怕它是给别的平台写的你也能从中提取出关键的寄存器配置。2.3 通道分配与数据打包像素是怎么被塞进差分对的DSI 协议在传输像素数据时并不是简单地把每个像素的 RGB 值直接丢到 lane 上而是有一套打包规则。理解这套规则对你在调试画面颜色异常、花屏等问题时非常有帮助。首先是 lane 的分配。假设你用 4 条 data lane那么像素数据会按照一定的规则轮流分配到四条 lane 上。具体怎么分取决于像素格式。以最常见的 RGB888 为例每个像素 24 位DSI 会把它们打包成字节流然后按字节轮流分配给各条 lane。如果 lane 数量不能整除像素字节数还会有一些填充规则。这些细节通常由 SoC 的 DSI 控制器硬件自动处理你在软件层面只需要配置好像素格式和 lane 数量即可。但有一个坑需要注意像素格式的配置必须和面板实际支持的格式一致。比如面板规格书说它接受 RGB888你在设备树里配了 RGB565那画面颜色就会不对——红色可能变成蓝色或者整体偏色。更隐蔽的情况是面板支持多种格式但默认上电后处于某种格式你的初始化序列里没有切换格式的指令那也会出问题。所以初始化序列里通常会有专门设置像素格式的寄存器写入。另外DSI 协议还支持压缩传输比如 DSCDisplay Stream Compression。这个在高端屏幕上用得多T113i 这个级别的平台一般用不上但如果你拿到的屏规格书里提到了 DSC那就要确认 SoC 是否支持不支持的话就得换屏或者降分辨率。这一点在选型阶段就要确认清楚不要等到调试阶段才发现。2.4 T113i 显示子系统DE、TCON、DSI 控制器如何接力T113i 内部的显示通路不是只有 DSI 控制器一个模块而是一条流水线。理解这条流水线对定位问题出在哪一环至关重要。图像数据从内存里的 framebuffer 出发首先经过 DEDisplay Engine。DE 负责图层混合、缩放、色彩空间转换这些处理。比如你有多个图层要叠加显示或者要把 YUV 格式的视频帧转成 RGB 送给面板这些都是 DE 干的活。DE 处理完之后把最终的像素流送给 TCON。TCON 是 Timing Controller负责生成显示时序。它根据你配置的分辨率、前后肩、同步脉冲宽度这些参数产生对应的时序信号。在 MIPI-DSI 场景下TCON 的时序信号不是直接输出到引脚上而是送给 DSI 控制器由 DSI 控制器打包成 DSI 协议的数据包发出去。DSI 控制器是最后一道关卡它把 TCON 送来的像素数据和时序信息按照 DSI 协议的要求打包通过 D-PHY 发送到面板。同时它也负责处理面板发回来的反馈信息如果有的话以及执行初始化序列的写入。这条链路里任何一环配置错了屏幕都不会亮。DE 配置错了可能画面花屏或者颜色不对TCON 配置错了可能分辨率不对或者刷新率不对DSI 控制器配置错了可能链路根本建立不起来。所以点屏的时候我习惯按照这条链路的顺序逐段排查而不是一上来就乱改参数。3. T113i 点屏实战从设备树到初始化序列的完整配置3.1 设备树里到底要配哪些东西在 Linux 系统下点 T113i 的 MIPI 屏设备树是你主要打交道的地方。很多人第一次看 MIPI 屏的设备树节点会被一堆属性搞晕不知道哪些是必须的哪些是可选的。我按重要性给你捋一遍。首先是 DSI 控制器节点通常叫dsi或者mipi_dsi。这里面最关键的属性是status要设成okay、#address-cells和#size-cells通常是 1 和 0以及ports或者port子节点用来描述 DSI 输出连接到哪个面板。T113i 的 DSI 控制器节点里还会有vcc-dsi-supply这样的电源属性指向 DSI 模块的供电 regulator。然后是面板节点通常作为 DSI 控制器的子节点或者通过remote-endpoint关联。面板节点里要配的东西就多了compatible字符串用来匹配驱动、regDSI 虚拟通道号一般是 0、reset-gpios复位引脚、power-supply面板供电、backlight背光、dsi-laneslane 数量、video-mode视频模式还是指令模式以及最关键的panel-init-sequence或者init-sequence初始化序列。初始化序列在设备树里通常是一长串十六进制数格式是[类型 延时 长度 数据...]。类型字节表示这条指令是普通写入、延时还是其他操作延时字节表示执行完这条指令后等多少个毫秒长度字节表示后面跟多少个数据字节。这个格式是 Linux DRM 面板框架约定的不同内核版本可能略有差异但大体一致。我见过很多人卡在初始化序列上原因是直接从厂商那里拿到的序列是给别的平台用的格式不对。比如厂商给的是0xXX 0xXX 0xXX这样的纯寄存器地址和数据你需要自己把它转换成设备树里的格式。转换的时候要注意每条指令之间的延时不能省尤其是上电后的第一条指令通常需要等 100ms 以上让电源稳定。3.2 初始化序列的编写逻辑与常见错误初始化序列是点屏过程中最核心也最容易出错的部分。它的本质是一组通过 DSI 低速模式发送给面板的寄存器写入指令用来把面板从默认状态配置成你想要的工作状态。写初始化序列之前你必须拿到面板的规格书和初始化代码。规格书里会有一个上电时序章节告诉你电源、复位、指令写入的先后顺序和时间要求。初始化代码则是一组具体的寄存器配置。如果厂商只给了初始化代码没给时序那你就得从代码里的延时推断时序。一个典型的初始化序列结构是这样的先等待电源稳定比如 10ms然后拉高复位引脚并等待比如 10ms然后开始写寄存器。寄存器写入通常分几组第一组是基础配置比如像素格式、lane 数量、时序参数第二组是面板特性配置比如伽马校正、色彩增强第三组是显示区域配置比如分辨率、刷新方向最后一组是退出休眠、开启显示。常见的错误有这么几个。第一个是延时不够。有些面板对上电时序要求很严格电源稳定后必须等够时间才能拉复位复位拉高后必须等够时间才能写指令。你少等了几毫秒面板可能就处于不确定状态后面怎么写都不对。第二个是寄存器地址或数据写错。这个没什么好说的仔细核对规格书。第三个是遗漏了某些必要的配置。比如有些面板需要配置 VCOM 电压不配的话屏幕能亮但显示异常。第四个是序列顺序不对。比如先开了显示再配分辨率那显示出来的画面尺寸就不对。我的建议是拿到初始化序列后先不要急着全部写进去而是分段调试。先写最基础的几组让屏幕能亮起来哪怕画面不对然后再逐步加上其他配置观察每一步的效果。这样出问题的时候你能快速定位是哪一组配置导致的。3.3 时序参数的计算像素时钟不是随便填的时序参数是另一个容易出问题的地方。很多人从厂商那里拿到一组时序参数直接填进设备树能亮就完事也不管这些参数是怎么来的。但一旦换一块屏或者想调整刷新率就抓瞎了。所以搞清楚时序参数的计算方法是很有必要的。MIPI-DSI 视频模式下的时序参数和传统 RGB 接口类似包括水平方向的有效像素数hactive、水平前肩hfront-porch、水平后肩hback-porch、水平同步脉冲宽度hsync-len以及垂直方向的对应参数vactive、vfront-porch、vback-porch、vsync-len。这些参数决定了像素时钟的频率。像素时钟的计算公式是像素时钟 (hactive hfront-porch hback-porch hsync-len) × (vactive vfront-porch vback-porch vsync-len) × 刷新率。举个例子一块 1024x600 的屏水平总周期是 1024 40 40 20 1124垂直总周期是 600 10 10 5 625刷新率 60Hz那么像素时钟就是 1124 × 625 × 60 ≈ 42.15MHz。这个值要填到设备树的clock-frequency属性里。但这里有个坑DSI 的时钟和像素时钟之间还有一个换算关系。DSI 的 bit clock 等于像素时钟乘以每个像素的位数再除以 lane 数量。比如 RGB888 是 24 位4 lane像素时钟 42.15MHz那么 bit clock 就是 42.15 × 24 / 4 ≈ 252.9MHz。这个 bit clock 要填到 DSI 控制器的clock-frequency属性里而不是像素时钟。很多人把这两个搞混结果屏幕要么不亮要么刷新率不对。还有一个容易忽略的点前后肩和同步脉冲宽度的值不同面板要求不一样。有些面板对前后肩有最小值要求你填小了它就不工作。规格书里通常会给出推荐值优先用推荐值。如果规格书没给可以参考同类面板的常见值然后微调。3.4 背光与电源屏幕亮了但没画面先查这里有时候你确认 DSI 链路配置没问题但屏幕就是不亮或者亮了但没画面。这时候要检查背光和电源。背光是最容易被忽略的。MIPI 屏的背光通常是独立的 LED 驱动电路由 PWM 信号控制亮度。如果背光没开屏幕看起来就是黑的你会误以为 DSI 没工作。检查方法很简单用万用表量一下背光 LED 两端的电压或者直接用外部电源给背光供电看屏幕有没有亮。如果背光能亮但没画面那问题就在 DSI 链路上如果背光都不亮先解决背光问题。电源方面MIPI 屏通常需要几路供电逻辑电源比如 1.8V 或 3.3V、模拟电源比如 2.8V 或 5V、以及背光电源比如 12V 或 24V。这些电源的上电顺序有要求一般是先逻辑后模拟最后开背光。如果顺序错了面板可能进入锁定状态。设备树里通过 regulator 节点来描述这些电源驱动会按照power-supply属性的顺序来上电。如果你发现上电顺序不对可以调整 regulator 的regulator-boot-on和regulator-always-on属性或者在驱动里手动控制。还有一个隐蔽的问题复位引脚的电平。有些面板复位是高电平有效有些是低电平有效。设备树里的reset-gpios属性要配对极性。如果配反了面板一直处于复位状态当然不会亮。这个用示波器量一下复位引脚的波形就能确认。4. 点不亮时的排查链路从电源到链路的逐段定位4.1 先确认硬件电源、复位、背光三件套屏幕点不亮第一步永远是确认硬件基本条件。我见过太多人一上来就怀疑软件配置结果查了半天发现是排线没插紧或者电源没供上。先量电源。用万用表逐个测量面板的每一路供电引脚确认电压值符合规格书要求。注意有些电源是受 GPIO 控制的要确认控制信号有没有拉高。如果电源不对检查 regulator 配置和 GPIO 控制逻辑。再查复位。用示波器或者逻辑分析仪看复位引脚的波形确认上电后复位信号有没有按照规格书要求的时序拉高或拉低。如果复位信号一直不变检查 GPIO 配置和驱动里的复位控制代码。最后看背光。前面说过背光不亮屏幕就是黑的。确认背光驱动电路工作正常PWM 信号有没有输出。有些平台的背光是由专门的背光芯片控制的通过 I2C 或者 PWM 调节亮度要确认这些控制接口配置正确。这三件套确认完如果都没问题再往 DSI 链路查。如果其中任何一项有问题先解决它不要跳过。4.2 用内核日志定位问题出在哪一环Linux 内核在启动和驱动加载过程中会打印大量日志这些日志是排查问题的金矿。点屏的时候我习惯先看dmesg里和显示相关的输出。如果 DSI 控制器驱动加载失败日志里会有 probe 失败的信息通常会告诉你失败原因比如时钟获取失败、regulator 获取失败、GPIO 申请失败等。这些信息直接指向设备树配置的问题。如果 DSI 控制器 probe 成功但面板驱动 probe 失败日志里会有面板相关的错误。常见的是初始化序列写入失败或者面板 ID 读取失败有些面板支持读 ID有些不支持。如果两个驱动都 probe 成功但屏幕还是不亮那就要看 DRM 框架的日志了。打开 DRM 的 debug 输出可以看到模式设置、原子提交、页面翻转这些操作的详细过程。如果模式设置失败日志里会告诉你哪个参数不合法。还有一个技巧在 DSI 控制器驱动里打开调试输出可以看到实际发送的 DSI 数据包。对比一下发送的数据和初始化序列就能确认序列有没有被正确发送出去。如果序列发送了但屏幕没反应那问题可能在面板端或者硬件连接上。4.3 链路训练失败与信号完整性问题的判断DSI 链路建立不起来有一种情况是链路训练失败。虽然 DSI 不像 PCIe 那样有复杂的链路训练过程但 D-PHY 在进入高速模式之前也需要一个切换过程。如果这个过程失败数据就传不过去。链路训练失败的典型表现是内核日志里能看到 DSI 控制器初始化成功但发送数据时出错或者面板没有任何响应。用示波器看差分信号会发现信号根本没有进入高速模式或者高速模式下的信号质量很差。信号完整性问题通常和硬件设计有关。差分对走线不等长、阻抗不匹配、参考层不完整、过孔太多都会导致信号质量下降。这种情况下软件层面能做的事情有限主要是降低速率试试。比如把 lane 速率从 1Gbps 降到 800Mbps如果降速后能工作那基本可以确认是信号完整性问题需要硬件改板。还有一种情况是电磁干扰。如果设备附近有强干扰源比如开关电源、电机可能会影响 DSI 信号。这种情况下可以尝试调整差分对的预加重和均衡参数如果 SoC 支持的话或者改善屏蔽和接地。4.4 画面异常类问题的分类与对策屏幕亮了但画面不对这类问题比完全不亮更让人头疼因为至少链路是通的问题出在数据或配置上。我按常见表现分类说一下。花屏或者噪点通常是信号完整性问题或者 lane 数量配置错误。检查 lane 数量是否和硬件一致检查差分信号质量。颜色不对像素格式配置错误。确认设备树里的format属性和面板实际支持的格式一致。如果面板支持多种格式确认初始化序列里有没有切换格式的指令。画面偏移或者尺寸不对时序参数配置错误。检查 hactive、vactive、前后肩这些参数是否和面板规格书一致。刷新率不对像素时钟计算错误。按照前面讲的公式重新算一遍确认clock-frequency填的是 bit clock 而不是像素时钟。画面闪烁或者撕裂可能是刷新率和面板不匹配或者 framebuffer 的同步机制有问题。检查 DRM 的 vsync 配置和页面翻转逻辑。这些问题看起来五花八门但只要你理解了 DSI 链路的每一环负责什么就能快速定位到对应的配置项。我的经验是遇到画面异常先别急着改参数而是把当前配置和规格书逐项对照往往能发现明显的错误。5. 几个让我印象深刻的踩坑经历5.1 一块屏换了三版设备树才亮有一次我拿到一块 7 寸 1024x600 的 MIPI 屏厂商给了一份初始化代码看起来挺完整。我照着写进设备树结果屏幕完全不亮。查了电源、复位、背光都没问题。内核日志显示 DSI 控制器和面板驱动都 probe 成功了但屏幕就是没反应。我先怀疑初始化序列有问题把序列里的每一条指令都对照规格书检查了一遍没发现明显错误。然后我用逻辑分析仪抓了 DSI 的差分信号发现控制器确实在发送数据但数据发完之后就停了没有持续的视频流。这说明面板可能没有正确进入视频模式。回去看初始化序列发现最后一条指令是退出休眠但后面没有开启显示的指令。我加上开启显示的指令后屏幕亮了但画面是花的。继续查发现像素格式配错了面板实际是 RGB666我配成了 RGB888。改成 RGB666 后画面正常了。但故事还没完。用了几天后发现屏幕在低温环境下会闪屏。查了半天发现是初始化序列里的某个延时太短低温下面板响应变慢导致配置没写进去。把延时加长后问题解决。这块屏前后改了三版设备树才完全稳定让我深刻体会到初始化序列的每一个字节和每一个延时都不能马虎。5.2 被忽略的 lane 数量配置还有一次我用一块 2-lane 的屏但在设备树里配了 4-lane。屏幕能亮但画面有规律的斜纹噪点。我一开始以为是信号完整性问题查了硬件没发现异常。后来仔细看设备树发现 lane 数量配错了。改成 2-lane 后噪点消失。这个问题的原理是DSI 控制器按照 4-lane 的方式分配数据但面板只接收 2-lane导致数据错位。虽然链路能建立但数据解析错误表现出来就是画面异常。所以 lane 数量一定要和硬件严格一致不能想当然。5.3 电源上电顺序导致的偶发不亮最让我头疼的一次是偶发不亮。同一块板子有时候开机屏幕亮有时候不亮没有任何规律。查了软件配置没问题查了硬件连接也没问题。后来用示波器同时抓几路电源和复位的波形发现有时候模拟电源比逻辑电源先上电导致面板进入锁定状态。这个问题在规格书里其实有提到上电顺序必须是逻辑电源先于模拟电源但我当时没注意。解决办法是在设备树里调整 regulator 的上电顺序或者在驱动里手动控制上电时序。改完之后偶发不亮的问题再也没出现过。这件事给我的教训是规格书里的每一句话都要认真看尤其是上电时序这种看起来不起眼但实际很关键的部分。很多偶发问题根源都在时序上。6. 点屏之外MIPI-DSI 调试的一些通用思路6.1 建立自己的调试检查清单点屏这件事经验很重要但比经验更重要的是方法论。我现在的习惯是每点一块新屏都按照一个固定的检查清单来操作避免遗漏。清单大概是这样确认硬件连接和电源确认设备树里的 DSI 控制器和面板节点配置确认初始化序列的格式和内容确认时序参数的计算确认背光和复位控制上电测试观察内核日志如果失败按照电源、复位、背光、DSI 链路、面板配置的顺序逐段排查。这个清单看起来简单但能帮你避免大部分低级错误。尤其是当你同时调试多块屏的时候有一个清单能让你保持清醒。6.2 善用工具示波器、逻辑分析仪和内核调试调试 MIPI-DSI光靠看代码是不够的。示波器和逻辑分析仪能帮你看清信号的实际状态这是软件日志给不了的信息。示波器主要用来看电源、复位、背光这些低速信号确认时序和电平正确。逻辑分析仪可以用来看 DSI 的低速模式指令虽然高速模式下的数据很难抓但低速模式下的初始化序列是可以抓到的。对比抓到的数据和设备树里的序列就能确认序列有没有被正确发送。内核调试方面打开 DRM 的 debug 输出和 DSI 控制器的调试输出能看到很多有用的信息。另外sysfs 里也有一些显示相关的节点可以读取当前的状态和配置。6.3 从点屏延伸到显示性能优化屏幕点亮只是第一步后面还有显示性能优化的事情。比如调整 DE 的图层混合策略、优化 framebuffer 的格式和布局、调整 DSI 的传输效率等。这些优化能提升画面流畅度和降低功耗。但我的建议是先把屏幕稳定点亮再考虑优化。点屏阶段不要引入太多变量保持配置简洁这样出问题的时候容易定位。等屏幕稳定工作了再逐步加入优化配置每加一项就测试一次确保不会引入新的问题。显示性能优化是一个很大的话题涉及 DE、TCON、DSI 多个模块的协同。如果你对这部分感兴趣可以研究一下 T113i 的显示子系统文档里面有很多可以挖掘的东西。但那是点屏成功之后的事情了现在先把屏幕点亮再说。