摘要: 1. 显示状态不能逐项直接写入的原因 显示配置通常不是一个寄存器的事,而是一组对象状态一起变化: plane 换了 framebuffer; plane 的显示位置变了; crtc 可能开了或关了; connector 可能切了一个新模式; bridge 链路也可能要跟着重配。 如果驱动见到一项就写 阅读全文
posted @ 2026-07-24 11:22 G777 阅读(0) 评论(0) 推荐(0)
摘要: 1. framebuffer 前面已经说过,framebuffer 更像“显示视图”。真正存像素的,通常是 GEM buffer 或其他底层内存对象。 所以一块图像从“创建”到“显示”,通常会经过这样几层关系: 先分配一块可显示使用的底层缓冲区; 再基于它创建 framebuffer; 最后把 fr 阅读全文
posted @ 2026-07-22 18:41 G777 阅读(2) 评论(0) 推荐(0)
摘要: 对象拆清楚之后,下一步就是:这些对象是怎么连成一条真实显示链路的? 1. 从输入到输出,不是一根线,而是一串对象关系 一条完整链路通常会长这样: flowchart LR PL0[Plane 0] PL1[Plane 1] CRTC[CRTC] ENC[Encoder] BR0[Bridge 0] 阅读全文
posted @ 2026-07-21 11:32 G777 阅读(3) 评论(0) 推荐(0)
摘要: 1. 为什么 DRM 要分成两层函数表 在 DRM 子系统中,对象旁边总挂着好几套函数表:funcs、helper_funcs、helper_private,有时还会有 atomic_* 回调分散在不同层里。 其中: funcs 更偏对象本身的基础能力和生命周期; helper funcs 更偏 D 阅读全文
posted @ 2026-07-20 18:49 G777 阅读(2) 评论(0) 推荐(0)
摘要: DRM 显示子系统看起来对象很多,本质上是在按职责拆链路。拆得越清楚,驱动越容易复用,状态也越容易验证。 1. drm_device 所有对象最后都挂在 drm_device 下面。它可以理解成这套 DRM 设备在内核里的总入口,既承接用户态 ioctl,也管理对象生命周期、模式配置和事件系统。 真 阅读全文
posted @ 2026-07-19 17:17 G777 阅读(3) 评论(0) 推荐(0)
摘要: 一套像样的显示系统,做的事情绝不只是“把一块内存里的像素送到屏幕上”。它至少要同时处理下面几件事: 屏幕该跑什么分辨率、刷新率和时序; 一帧画面里的多个图层怎么裁剪、缩放、叠加; 像素流该走哪条物理输出链路; 内容切换时怎么避免撕裂、闪烁和半帧更新; 显存、DMA、中断、热插拔、事件这些资源怎么统一 阅读全文
posted @ 2026-07-17 11:28 G777 阅读(3) 评论(0) 推荐(0)
摘要: 为什么需要智能指针 C++ 作为系统级编程语言,手动内存管理是其核心特性之一,但同时也带来一些问题,比如内存泄漏、野指针等等。 举个例子,函数内 new 对象后,若后续代码抛出异常,执行流无法到达 delete 语句,会直接导致内存泄漏: #include <stdexcept> void unsa 阅读全文
posted @ 2026-03-02 19:58 G777 阅读(16) 评论(0) 推荐(0)
摘要: 参考书籍:《PCI Express Technology 3.0》 INTx#中断机制 INTx#是PCI总线遗留的传统中断机制,其采用的是 INTA#~INTD# 四条物理中断引脚(虚拟中断线),多数设备仅使用 INTA#,INTB#~INTD# 用于多功能设备或多设备共享场景。 通过设备配置空间 阅读全文
posted @ 2026-02-05 20:25 G777 阅读(164) 评论(0) 推荐(0)
摘要: 参考书籍:《PCI Express Technology 3.0》、《PCI Express Base Specification, Rev. 4.0 Version 1.0》 TLP 格式 PCIe 的配置请求与响应通过 事务层包(TLP) 实现,这是与 PCI 并行配置机制的本质区别。它的核心特 阅读全文
posted @ 2026-02-01 16:46 G777 阅读(126) 评论(0) 推荐(0)
摘要: 参考书籍:《PCI Express Base Specification, Rev. 4.0 Version 1.0》 相较于PCI的优势 传统 PCI 采用 32 位并行共享总线设计,所有设备共用带宽,新增设备就会进一步拖慢整体速度;更关键的是,并行传输在高频下会遭遇严重的信号串扰、时钟偏移问题, 阅读全文
posted @ 2026-01-28 21:09 G777 阅读(52) 评论(0) 推荐(0)