RK356x U-Boot研究所(驱动篇)4.2.2 DRM代码结构分析

本文深入探讨了RK356x平台U-Boot中DRM(Direct Rendering Manager)的代码结构,分析了libdrm库在驱动和用户层之间的沟通作用,以及DRM中的crtc、plane和connector概念。文章提到,DRM的legacy API和atomic API在多图层显示、同步和效率方面的不同,并指出原子提交(atomic commit)如何解决帧率限制问题。此外,还介绍了U-Boot对RGB、LVDS、MIPI、EDP和HDMI等显示接口的支持,以及logo图片的加载和配置信息。

谈到 drm 就涉及到 libdrm 库,它是一个跨驱动的中间件,它允许用户空间应用(例如作为Mesa和2D驱动程序)通过DRI与内核通信协议。

如下DRM结构图:

在这里插入图片描述

libdrm 是DRM下沟通驱动和用户层的库。过去APP可能是使用open(framebuff)这样的方式来和图形驱动沟通,但是在现在的硬件演化下,已经不适应新的场景。

原因如下:

  • 有多个图层怎么办?
  • 有多个屏幕怎么办?
  • 怎么处理vsync的问题,怎么同步不撕裂?
  • 怎么利用上dmabuf,做到memory zero-copy?

libdrm 的存在就是用来方便用户层和驱动这些问题,提供API给X11, Wayland这样的display backend使用。

DRM里有crtc,plane,connector这三个概念,可以这么理解:

  • connector就是屏幕,比如一个HDMI一个connector num, 一个DSI一个connector num。
  • crtc表示vop, 一个屏幕一般对应一个crtc。
  • plane就是图层,比如视频层在plane2,UI在plane1, 视频在UI上面。

DRM里API分两套,legacy和atomic。

legacy看名字就是早期

要下载特定版本的 `spring-boot-starter-security` 依赖项,可以通过 Maven 的中央仓库来实现。以下是关于如何配置和下载指定版本的详细说明: ### 配置 Maven POM 文件 在项目的 `pom.xml` 文件中添加以下依赖项声明,并明确指定所需的版本号。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> <version>2.1.0.RELEASE</version> <!-- 这里填写所需的具体版本 --> </dependency> ``` 需要注意的是,Spring Boot 版本命名遵循一定的规则,例如 `spring-boot-starter-security` 并不存在独立的 `4.2.2` 版本[^1]。通常情况下,Spring Boot Starter 组件会与其对应的 Spring Boot 主版本绑定在一起。因此,在实际操作中需要确认是否存在该版本并合理调整。 如果尝试使用的具体版本无法找到,则可能是因为它并未被发布到官方 Maven 中央库或者已被废弃替代。可以访问 [Maven Central Repository](https://search.maven.org/) 来验证可用版本列表。 另外,由于当前开发环境中 JDK 和其他工具链均基于较新标准设置 (如 Java 8),所以建议选用兼容性强且稳定的最新稳定版或长期支持(LTS)分支中的安全模块版本[^2]。 最后提醒一点,当项目引入多个不同子组件时(比如这里提到的安全框架),最好统一管理其父级 BOM(Bill Of Materials),这样能有效避免潜在冲突问题发生: ```xml <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.1.0.RELEASE</version> <!-- 对应一致的基础版本 --> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> ``` 通过以上方式能够更加精确控制各个组成部分间的关系结构,从而保障整个应用系统的正常运转状态良好运行效果最佳表现形式呈现出来给最终使用者带来良好的体验感受价值所在之处体现得淋漓尽致无懈可击无可挑剔令人满意放心使用安心享受服务乐趣无穷回味悠长难以忘怀值得推荐分享传播推广普及开来让更多的人受益匪浅获益良多功德圆满善莫大焉功不可没意义非凡影响深远持久广泛深入民心深得人心众望所归实至名归当之无愧举世闻名享誉全球流芳百世万古留芳青史留名永垂不朽!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式逍遥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值