努力成为linux kernel hacker的人李万鹏原创作品,为梦而战。转载请标明出处
http://blog.csdn.net/woshixingaaa/archive/2011/05/29/6452690.aspx
用户写屏程序:
这个是网上流行的用户测试程序,总结一下用户程序写屏步骤:
1)打开设备节点
2)获得fb_info的固定参数与可变参数结构体
3)计算帧缓冲区大小
4)调用mmap将缓冲区映射到进程的地址空间
5)写屏
这里注意fb_var_screeninfo中的可见分辨率xres,yres是屏的实际大小,即320,240。而虚拟分辨率xres_virtual,yres_virtual是虚拟窗口的大小。但是在s3c2440中被设为相等的。看源码:
s3c24xxfb_probe函数中:
s3c2410fb_check_var函数中:
所以xres=xres_virtual,yres=yres_virtual。
而实际的xres_virtual=xres + 2 * x_offset,yres_virtual = yres + 2 * y_offset。可以看s3c2440的datasheet,有一个图,
看那个for循环,如果是在PC机上当然就是32BPP,R,G,B分别一个字节,另外一个字节空着或者干其他的事情,比如这里就用来表示透明度。如果在开发板上运行就是16BPP,在开发板上运行要改一下x,y的范围。在开发板上运行清屏命令:
然后运行效果如下:
分享到:
相关推荐
Linux驱动修炼之道-framebuffer(下).pdf Linux驱动修炼之道-framebuffer(上).pdf Linux驱动修炼之道-DMA框架源码分析(下).pdf Linux驱动修炼之道-DMA框架源码分析(上).pdf Linux驱动修炼之道-DM9000...
### Linux设备驱动之Framebuffer分析 #### 一、Framebuffer概述 在Linux内核中,Framebuffer(帧缓冲)驱动作为显示驱动的标准之一,具有重要的地位。它将显示设备抽象为帧缓冲区,用户通过内存映射到进程地址空间...
在Linux系统中,framebuffer驱动程序通常作为内核模块存在。它包含了初始化、配置、映射内存以及更新LCD屏幕等关键功能。例如,8th_LCD-framebuffer系统可能包含以下部分: 1. **驱动注册**:驱动程序通过`register...
Linux设备驱动之Framebuffer分析.pdf
在Linux内核的`/linux/drivers/video/`目录下,可以找到Framebuffer驱动的相关代码,特别是`fbmem.c`文件,它提供了LCD驱动的一系列通用文件操作接口。 `fbmem.c`中包含了如read、write、ioctl等标准文件操作,使得...
总之,这个项目展示了如何在Linux系统下利用framebuffer直接显示BMP图像,这对于开发嵌入式设备的图形用户界面或者低级图形应用是非常有价值的。通过理解framebuffer的工作原理和BMP文件格式,开发者可以创建更高效...
linux framebuffer编程,显示BMP图片
"linux2.6.30.4_framebuffer移植LCD驱动" 基于 Linux 2.6.30.4 framebuffer 移植 LCD 驱动到 FL2440 开发板,涉及到 LCD 硬件及显示原理、s3c2440 LCD 控制器、Framebuffer 驱动机制、驱动移植、应用程序接口等方面...
| |-- FRAMEBUFFER应用程序范例 | | `-- fb_display | | |-- fb_display.c | | |-- fb_display.h | | |-- Makefile | | |-- README | | `-- test.c | `-- S3C2410 LCD驱动 | |-- s3c2410fb.c | `-- s3c2410fb.h |-- ...
### Linux 下 USB 摄像头采集及通过 Framebuffer 显示 #### 一、概述 在 Linux 系统中,实现 USB 摄像头的数据采集与显示是一项常见且实用的功能。这一过程主要包括三个关键步骤:通过 V4L2 接口从 USB 摄像头采集...
Linux 设备驱动开发详解 linuxdriver_code_tool |-- 03 | `-- 2.6内核升级工具 | |-- device-mapper-1.00.19-2.i386.rpm | |-- lvm2-2.00.25-1.01.i386.rpm | |-- mkinitrd-4.2.0.3.tar.tar | |-- module-init-tools...
在这个场景中,我们关注的是如何利用framebuffer和SPI(Serial Peripheral Interface)驱动来控制屏幕显示。树莓派是一个基于ARM架构的微型电脑,它具有丰富的GPIO(General Purpose Input/Output)引脚,可以连接...
### Linux FrameBuffer驱动设计知识点详解 #### 一、前言:Linux基础知识的重要性 在开始深入探讨如何设计Linux FrameBuffer驱动之前,我们首先需要确保具备一定的Linux基础知识。文档中提到作者在刚开始接触Linux...
Linux下FrameBuffer直接写屏
在 Linux Framebuffer 中,register_framebuffer() 函数是底层硬件驱动注册函数,unregister_framebuffer() 函数是底层硬件驱动注销函数。Linux Framebuffer 也是一个字符设备(主设备号是 29),在内核中使用 ...
- Framebuffer驱动实现:Framebuffer是Linux中用于图形设备的一种抽象层,它允许应用程序直接访问显示缓冲区,从而控制屏幕显示。在本设计中,Framebuffer驱动是连接应用程序和液晶控制器的关键组件。 - 应用程序:...
qvfb是QT virtualframebuffer的缩写,是QT在X11下的一个framebuffer仿真器,有了它我们就可以利用X11下众多便利的工具来开发基于framebuffer的应用程序了。qvfb的原理很简单,它建立了一个systemV共享内存,用户只需...
要实现Linux下的直接写屏,通常需要以下几个步骤: 1. **打开FrameBuffer设备**:首先需要打开一个FrameBuffer设备,通常是通过`/dev/fbX`这样的设备文件,其中`X`是设备编号,通常从0开始。在C语言中,可以使用`...
Framebuffer驱动全篇主要涉及的是Linux系统中对显卡驱动的实现,特别是通过Framebuffer设备来抽象显卡硬件,使得应用程序可以更容易地访问和控制显示硬件,而无需了解底层硬件细节。Framebuffer设备是一种特殊的字符...