framebuffer的原理

framebuffer的原理

ID:30360763

大小:96.65 KB

页数:27页

时间:2018-12-29

framebuffer的原理_第1页
framebuffer的原理_第2页
framebuffer的原理_第3页
framebuffer的原理_第4页
framebuffer的原理_第5页
资源描述:

《framebuffer的原理》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、FrameBuffer的原理1181310500200OTHER1190424243010星级BLOG0yjvijfhvk#FFFFFF#187218no-repeat_blank14280202010-08-2222:10:5214875202010-12-1219:00:3214942102010-12-2522:18:3114290402010-08-2500:12:5014290002010-08-2423:40:4614324102010-08-2921:58:211432180201

2、0-08-2913:44:4714259702010-08-1823:50:0414290202010-08-2500:11:3414260202010-08-1823:51:0014488302010-09-2720:50:30"20100819","20100822","20100824","20100825","20100829","20100830","20100831","20100901","20100902","20100905","20100906","20100927","20

3、101106","20101108","20101109","20101110","20101111","20101113","20101114","20101206","20101212","20101223","20101224","20101225",""24486861494212010-12-2522:26:352010-12-2522:26:35100FrameBuffer的原理FrameBuffer是出现在2.2.xx内核当中的一种驱动程序接口。Linux是工作在保护模式下,所以用

4、户态进程是无法象DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。Framebuffer机制模仿显卡的功能,将显卡硬件结构抽象掉,可以通过Framebuffer的读写直接对显存进行操作。用户可以将Framebuffer看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作可以立即反应在屏幕上。这种操作是抽象的,统一的。用户不必关心物理显存的位置、换页机制等等具体细节。这些都是由Fra

5、mebuffer设备驱动来完成的。但Framebuffer本身不具备任何运算数据的能力,就只好比是一个暂时存放水的水池.CPU将运算后的结果放到这个水池,水池再将结果流到显示器.中间不会对数据做处理.应用程序也可以直接读写这个水池的内容.在这种机制下,尽管Framebuffer需要真正的显卡驱动的支持,但所有显示任务都有CPU完成,因此CPU负担很重.framebuffer的设备文件一般是/dev/fb0、/dev/fb1等等。可以用命令:#ddif=/dev/zeroof=/dev/fb清空屏

6、幕.如果显示模式是1024x768-8位色,用命令:$ddif=/dev/zeroof=/dev/fb0bs=1024count=768清空屏幕用命令:#ddif=/dev/fbof=fbfile可以将fb中的内容保存下来;可以重新写回屏幕:#ddif=fbfileof=/dev/fb在使用Framebuffer时,Linux是将显卡置于图形模式下的.在应用程序中,一般通过将FrameBuffer设备映射到进程地址空间的方式使用,比如下面的程序就打开/dev/fb0设备,并通过mmap系统调用进

7、行地址映射,随后用memset将屏幕清空(这里假设显示模式是1024x768-8位色模式,线性内存模式):intfb;unsignedchar*fb_mem;fb=open("/dev/fb0",O_RDWR);fb_mem=mmap(NULL,1024*768,PROT_READ

8、PROT_WRITE,MAP_SHARED,fb,0);memset(fb_mem,0,1024*768);FrameBuffer设备还提供了若干ioctl命令,通过这些命令,可以获得显示设备的一些固定信息(比如

9、显示内存大小)、与显示模式相关的可变信息(比如分辨率、象素结构、每扫描线的字节宽度),以及伪彩色模式下的调色板信息等等。通过FrameBuffer设备,还可以获得当前内核所支持的加速显示卡的类型(通过固定信息得到),这种类型通常是和特定显示芯片相关的。比如目前最新的内核(2.4.9)中,就包含有对S3、Matrox、nVidia、3Dfx等等流行显示芯片的加速支持。在获得了加速芯片类型之后,应用程序就可以将PCI设备的内存I/O(memio)映射到进程的地址空间。这些memio一般是用来控制显示

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。