对Framebuffer的操作

转载 2016年05月30日 21:26:54
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <stdint.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <asm/page.h>
#include <linux/fb.h>

#define TRUE    1
#define FALSE   0

#define MIN(x,y)        ((x)>(y)?(y):(x))
#define MAX(x,y)        ((x)>(y)?(x):(y))

typedef struct fbdev{
        int fb;
        unsigned long fb_mem_offset;
        unsigned long fb_mem;
        struct fb_fix_screeninfo fb_fix;
        struct fb_var_screeninfo fb_var;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <stdint.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <asm/page.h>
#include <linux/fb.h>

#define TRUE    1
#define FALSE   0

#define MIN(x,y)        ((x)>(y)?(y):(x))
#define MAX(x,y)        ((x)>(y)?(x):(y))

typedef struct fbdev{
        int fb;
        unsigned long fb_mem_offset;
        unsigned long fb_mem;
        struct fb_fix_screeninfo fb_fix;
        struct fb_var_screeninfo fb_var;
        char dev[20];
} FBDEV, *PFBDEV;

typedef struct point{
        int x;
        int y;
        int z;

} POINT, *PPOINT;

int fb_open(PFBDEV pFbdev)
{
        pFbdev->fb = open(pFbdev->dev, O_RDWR);
        if(pFbdev->fb < 0)
        {
                printf("Error opening %s: %m. Check kernel config\n", pFbdev->dev);
                return FALSE;
        }
        if (-1 == ioctl(pFbdev->fb,FBIOGET_VSCREENINFO,&(pFbdev->fb_var)))
        {
                printf("ioctl FBIOGET_VSCREENINFO\n");
                return FALSE;
        }
        if (-1 == ioctl(pFbdev->fb,FBIOGET_FSCREENINFO,&(pFbdev->fb_fix)))
  

framebuffer的入门介绍-实现程序分析

如想想对lcd屏进行操作(例如在lcd屏幕上画线,或者显示视频数据),我们就必须得了framebuffer(帧缓冲),网上各种百度,大多都说的很官方,至少很难找到那些让人觉得很生动的描述,让我们这些出...
  • liuzijiang1123
  • liuzijiang1123
  • 2015年07月20日 19:32
  • 2319

linux直接写framebuffer linux 直接 对 Frame Buffer 操作,写画面缓存例子,c语言读写framebuffer

提供的中断调用来实现直接写屏,故Linux抽象出FrameBuffer这个设备来供用户态   进程实现直接写屏。   在继续下面的之前,先说明几个背景知识:   1、FrameBuffer主要是...
  • mynameislinduan
  • mynameislinduan
  • 2014年03月12日 11:50
  • 2154

Linux Framebuffer驱动框架、接口实现和使用

一、LinuxFramebuffer的软件需求 1.针对SoC的LCD控制寄存器进行编程,以支持不同的LCD屏,以使该SOC的应用场景最大化。这是硬件平台相关的需求。其对应Linux源码路径arch...
  • Ultraman_hs
  • Ultraman_hs
  • 2017年02月11日 18:14
  • 840

【Linux】FrameBuffer操作入门

所有的这些操作,都是在控制台界面下,root登录。 一,先变一个魔法          $ cat /dev/fb0 > sreensnap      /*获取一屏的数据*/      ...
  • tianshuai11
  • tianshuai11
  • 2013年01月14日 23:16
  • 15128

2016/1/9:深度剖析安卓Framebuffer设备驱动

忙了几天,今天在公司居然没什么活干 ,所以早上就用公司的电脑写写之前在公司编写framebuffer的使用心得体会总结,这也算是一点开发经验,不过我还没写全,精华部分还是自己藏着吧。直到下午才开始有点...
  • morixinguan
  • morixinguan
  • 2016年01月08日 21:26
  • 1527

linux-framebuffer设备——读取触摸屏信息

如果应用程序需要知道Framebuffer设备的相关参数,必须通过ioctl()系统调用来完成。 在头文件中定义了所有的ioctl命令字,不过,最常用的ioctl命令字是下面这两个:FBIOGET_...
  • manchestermi
  • manchestermi
  • 2016年03月01日 19:47
  • 1077

基于framebuffer的驱动分析

framebuffer帧缓冲(简称fb)是linux内核中虚拟出的一个设备,是一个platform类型设备,设备文件位于/dev/fb*...
  • qq_28992301
  • qq_28992301
  • 2016年10月03日 10:47
  • 1749

Framebuffer的配置及应用

* 一、FrameBuffer的原理*  FrameBuffer 是出现在 2.2.xx 内核当中的一种驱动程序接口。  Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BI...
  • chuanzhilong
  • chuanzhilong
  • 2016年12月20日 16:08
  • 524

怎样通过framebuffer来传递关屏信息

本人的项目是一个用oled来显示的android项目;需要在系统睡眠关闭主屏幕的时候,一起把oled屏幕关掉。但这是并没有进入系统睡眠。因此不能使用kernel里的suspend 与resume机制来...
  • u011006622
  • u011006622
  • 2017年07月03日 14:34
  • 183

一个简单的framebuffer的显示使用例子

本例子中,显示设备是一个oled的显示屏; 没有过多的关于分辨率,刷新频率的设置; 只是演示一个framebuffer的例子。 一, kernel层的驱动代码如下:     1. 注册,这是一个使...
  • u011006622
  • u011006622
  • 2017年06月16日 10:39
  • 744
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对Framebuffer的操作
举报原因:
原因补充:

(最多只允许输入30个字)