基于STM32MP157的GPU编程之DRM驱动调试

linux系统GPU编程之DRM编程

背景:

framebuffer大家都知道哈,打开/dev/fb0设备节点,然后开辟一段内存(即显存),再mmap,在吧图形数据填充到这段显存里面。怎么填,比如QT,有一套图形系统,他帮你填,或者ubuntu等系统。

现在安卓手机都有GPU,Linux也跟着进步,再加上人工智能,需要GPU做硬件加速。目前Linux的显示系统基本都是基于drm驱动,这点在linux 4.0 5.0以后都非常常见。

DRM驱动原理,看这篇就够了:

DRM (Direct Rendering Manager)

一 对驱动程序的几种操作方法

我们知道,Linux对驱动的操作有以下几种:
1 一种是/dev下的设备节点文件,
2 proc文件系统
3 sys文件系统。

这里讲第一种,dev下的设备节点。Linux显卡下的设备节点是:
/dev/dri/card0

二 modeset工具使用

2.1 对于DRM显卡的测试,目前比较流行的是modeset,这个源码在我的git。

https://gitee.com/caledonian_study/modeset.git

2.2 modeset其实调用了libdrm这个库,流程是这样的。
在这里插入图片描述

2.3 为了适配ST的交叉工具链,我对makefile做了修改,另外我对modeset.c做了修改,为的是显示4个矩形框。
docs是makefile进行编译的,
modeset-qmake是可以用qtcreak打开进行编译的。
modeset-cmake目前还没有搞定,留着以后有时间了再搞吧。
在这里插入图片描述

三 编译过程

https://gitee.com/caledonian_study/modeset/blob/master/README.md

四 最终效果

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小男孩和胖子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值