博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
frame buffer属性打印
阅读量:6082 次
发布时间:2019-06-20

本文共 1628 字,大约阅读时间需要 5 分钟。

(一):写在前面

在这里我们主要实现了打印frame buffer的一些信息,其中包括分辨率,所占内存地址的开始地址,偏移量,BPP以及所占内存的宽度和高度等信息.主要是通过对这些参数的打印操作来实现对frame buffer的进一步深入的了解.

(二):如何编译以及运行

首先,我们看到,在我们的目录中有三个文件,fbtool.h,fbtool.c以及test.c,其中main函数位于test.c文件中.下面是我们的编译命令.

gcc fbtool.h fbtool.c test.c -o test

编译完成之后,就会生成test的可执行文件.

一般情况下,我们只要使用

./test

便能够运行该程序文件,但是由于在运行过程中,需要打开/dev/fb0文件,所以需要使用特权用户运行该程序,我们使用下面的命令来运行我们的程序文件.

sudo ./test

这样程序就能够顺利执行了.

(三):执行结果展示

下面我们来看一下我们的执行结果:

frame buffer所占内存的开始地址为:-1341710336frame buffer 的类型为:0frame buffer的可见清晰度为:    x = 1366    y = 768frame buffer的虚拟清晰度为:    x = 1366    y = 768frame buffer的虚拟分辨率到可见分辨率的偏移量为:    x = 0    y = 0frame buffer的BPP为:32这个后面再说!!frame buffer在内存中所占的高度和宽度分别是:    宽度 = -1    高度 = -1

这样就能明显的看出frame buffer的一些属性了.

(四):该程序的构成

在这里我们说一下我们如果构建的该程序.

1:首先我们需要定义一个结构体,该结构体包括四个变量:

int fb;   //framebuffer打开后的唯一标识符    struct fb_fix_screeninfo fb_fix;      struct fb_var_screeninfo fb_var;    char dev[20];  //设备名称

2:定义完成结构体之后,我们就需要定义操作frame buffer的各个方法,包括打开,关闭fb0设备,打印相关信息的函数等

//打开framebufferint fb_open(PFBDEV pFbdev);//关闭framebufferint fb_close(PFBDEV pFbdev);//打印frame buffer 所占内存的开始地址 void pmem_start(PFBDEV pFbdev);//打印FB_TYPEvoid p_type(PFBDEV pFbdev);//打印可见清晰度void p_visible_res(PFBDEV pFbdev);//打印虚拟分辨率void p_virt_res(PFBDEV pFbdev);//打印虚拟到可见的偏移量void p_offset(PFBDEV pFbdev);//打印每个像素的位数void p_bpp(PFBDEV pFbdev);//打印R,G,B和透明度void p_rgbt(PFBDEV pFbdev);//打印在内存中的高度和宽度void p_hw(PFBDEV pFbdev);

3:接着就是这些函数的实现

这些函数的实现都是比较简单的,基本上是打印结构体中的一些信息.

4:编写测试程序,运行测试

最后就是编写我们的main函数,进行编译测试.

(五):后期展望

在后面一个测试中,着重讲解fb_var里面的R,G,B和透明度的值.

(六):写在后面

宝剑锋从磨砺出,梅花香自苦寒来.

注意:源代码我已经长传到github中,下面是地址:

转载于:https://www.cnblogs.com/bobo1223/p/7287509.html

你可能感兴趣的文章
从django的注册机制探究class-based views
查看>>
收集的Haskell资源
查看>>
Jmeter视频教程全部录制完毕
查看>>
将DB2表合理映射到表空间
查看>>
xml 文件常用的解析
查看>>
Mysql源码和二进制安装
查看>>
Hyper-V 2016 配置管理系列(Part3)
查看>>
网络结构中,我们非得有汇聚交换机么?
查看>>
我的友情链接
查看>>
linux中rsync配置
查看>>
新手IT人员,如何找到适合自己专业书籍的6个问题?
查看>>
去除JSP主机默认的8080端口
查看>>
关系型数据库之mysql-proxy实现读写分离
查看>>
EMC模拟器下载
查看>>
3月移动设备占比TOP10:苹果冠军 红米晋身第五
查看>>
阿里巴巴Java开发 之 工程规约
查看>>
我的友情链接
查看>>
我是如何在12周内由零基础成为一名程序员的——记Matt程序员快速成长之路
查看>>
windows server免安装IIS强性能LAMP+memcached
查看>>
世界杯迄今最火的一场比赛 一文看懂世界杯背后的阿里云黑科技
查看>>