首页
›
嵌入式与底层系统
›
013-Linux DRM_KMS显示驱动工程
›
《嵌入式Linux DRM驱动移植 从FBDEV到KMS切换》
VIP22
本课程属于:013-Linux DRM_KMS显示驱动工程
嵌入式与底层系统 · 共 22 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
嵌入式Linux DRM驱动移植:从FBDEV到KMS切换
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
课程导论与背景
为什么需要从FBDEV迁移到KMS?… · 无硬件合成 · 无VSync控制)与KMS的优势(多…
课程导论
背景
02
显示子系统基础概念
CRTC · Encoder · Connector
显示子系统基础概…
CRTC
03
FBDEV驱动架构回顾
Linux FBDEV框架(fbme… · fb_ops结构体) · 注册/注销流程
FBDEV
驱动架构回顾
04
KMS驱动核心数据结构
struct drm_driver · struct drm_device · struct drm_mode_co…
KMS
驱动核心数据结构
05
DRM设备初始化流程
platform_driver pr… · 设置DRIVER_MODESET标志 · 调用drm_dev_register
DRM
设备初始化流程
06
CRTC实现
struct drm_crtc与dr… · 实现mode_set · enable
CRTC
实现
07
Encoder与Connector实现
struct drm_encoder · struct drm_connect… · 实现get_modes
Encoder
Connector
08
Plane实现
struct drm_plane与d… · 支持主平面与覆盖平面 · 实现update_plane
Plane
实现
09
Framebuffer与GEM对象
drm_framebuffer创建 · drm_gem_cma_helper…
Framebuffer
GEM
10
Dumb Buffer分配
使用drm_gem_cma_dumb…
Dumb
Buffer
11
Page Flip与VBlank
实现atomic_flush中的pa… · 注册drm_vblank_init · 处理vblank中断
Page
Flip
12
Atomic Modeset框架
drm_atomic_state · drm_atomic_helper_… · 非阻塞提交与异步更新
Atomic
Modeset
13
设备树绑定与时钟配置
在设备树中描述display con… · 时钟 · reset
设备树绑定
时钟配置
14
中断处理与同步
注册IRQ handler · 处理VBlank与错误中断 · 使用drm_crtc_handle_…
断处理
同步
15
硬件寄存器操作封装
定义寄存器基址 · 读写函数(readl/writel) · bitfield操作宏
硬件寄存器操作封…
定义寄存器基址
16
显示时序配置
struct drm_display… · PLL计算 · 时钟分频
显示时序配置
struct
17
多图层合成
硬件叠加器支持 · Plane的zpos属性 · alpha blending配置
多图层合成
硬件叠加器支持
18
性能优化
使用DMA-BUF · ION或dmabuf实现零拷贝 · 减少cache flush
性能优化
DMA-BUF
19
调试与日志
使用DRM_DEBUG_KMS · drm_info · tracepoints
调试
日志
20
用户空间测试
使用modetest · kmscube · weston测试KMS驱动功能
用户空间测试
modetest
21
兼容FBDEV接口
通过drm_fbdev_generi…
FBDEV
兼容
22
电源管理
实现drm_driver.suspe… · 保存/恢复寄存器状态 · 处理DPMS
电源管理
drm
23
热插拔检测
Connector的detect回调 · HPD中断处理 · drm_kms_helper_hot…
热插拔检测
Connector
24
EDID解析与模式列表
使用drm_edid_to_conn…
EDID
模式列表
25
Writeback Connector
实现drm_writeback_co…
Writeback
Connector
26
私有对象与属性
定义drm_property · drm_object_attach_… · 对比度)
私有对象
属性
27
多显示器支持
多个CRTC/Encoder/Con… · 克隆模式与扩展模式配置
多显示器支持
CRTC/Encoder…
28
从FBDEV迁移实战步骤
移除旧fb_ops · 添加drm_mode_config · 实现atomic helper
FBDEV
迁移实战步骤
29
常见问题与调试技巧
屏幕闪烁 · 模式设置失败 · vblank超时
常见问题
调试技巧
30
课程总结与未来展望
KMS驱动维护 · 向上游提交补丁 · Vulkan/DRM集成
课程总结
未来展望
所属VIP或分类
同VIP:drm_crtc驱动中gamma校正与色彩管理配置工程
同VIP:DRM显示驱动开发-GPU渲染与多平面合成实践
同VIP:DRM显示驱动开发-硬件光标与VBlank同步