linux驱动由浅入深系列:显示子系统之一(通过FrameBuffer在屏幕上画出图形)

本文介绍了Linux显示子系统中的Framebuffer接口,通过/dev/fb0设备节点进行操作。讲解了如何通过mmap进行内存映射,实现用户空间直接写入显存数据,展示在LCD屏幕上。并提供了一个简单的程序示例,演示如何用Framebuffer画出红色全屏。后续文章将探讨驱动层的详细内容。
摘要由CSDN通过智能技术生成

显示子系统对应用层提供的接口叫做framebuffer,一般位于/dev/fb0(下文示例运行于adroid的平台位于/dev/graphics/fb0,不过它们都是一样的),它为上层提供了统一的对显卡的描述。首先要明确的是lcd显示子系统虽然复杂,但其任然是基本的字符设备,fb0就是其设备节点,主设备号29。不同之处在于,可以通过mmap(mmap将一个文件或者其它对象映射进内存。)对其进行地址映射,将内核中的显存空间直接映射到用户空间,这样用户空间填入需要显示的数据就能直接显示在lcd上。其余的参数查询与设置通过ioctl都可以完成。

 

我们先从第一个应用层测试开始讲起:

1,  保持屏幕上有一帧画面,进入fb0对应的目录(/dev/ 或/dev/graphics/)执行:

cat fb0 > fb_test

这样就可以对framebuffer的一帧原始数据进行暂存

2,  切换一帧屏幕画面,执行


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

良非凉

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

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

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

打赏作者

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

抵扣说明:

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

余额充值