如何编写一个显卡的驱动程序.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如何编写一个显卡的驱动程序

如何编写一个显卡的驱动程序在后续的几篇里面会详细介绍如何编写一个显卡的驱动程序。 framebuffer device在内核里面作为显卡驱动模型,许多函数和数据结构都是特定,正是这些特定的东西为我们的编程提供了方便。要开发frame buffer device驱动,你应该阅读Source\Source\Documentation\fb下面的说明文件,三个重要文件00-INDEX, framebuffer.txt,internals.txt,其他文件都是针对具体显卡芯片的说明了。 文件00-INDEX译文 文档/documentation/fb的索引文件。如果你对frame buffer设备有什么想法,mail:Geert Uytterhoeven geert@ 00-index 这个文件 framebuffer.txt frame buffer 设备介绍 internals.txtframe buffer设备内部快速浏览 modedb.txt关于视频模式的资料 aty128fb.txt关于ATI Rage128显卡的frame buffer设备 clgenfb.txt关于Cirrus Logic的显卡 matroxfb.txt关于Matrox的显卡 pvr2fb.txt关于PowerVR 2的显卡 tgafb.txt关于TGA(DECChip 21030)显卡 vesafb.txt关于VESA显卡 帧缓冲设备(framebuffer.txt译文) 维护: Geert Uytterhoeven geert@ 最后校正:?? May 10, 2001 翻译:good02xaut@ 0.介绍 帧缓冲设备提供了显卡的抽象描述。他同时代表了显卡上的显存,应用程序通过定义好的接口可以访问显卡,而不需要知道底层的任何操作。该设备使用特殊的设备节点,通常位于/dev目录,如/dev/fb*. 1.用户角度的/dev/fb* 从用户的角度看,帧缓冲设备和其他位于/dev下面的设备类似。他是一个字符设备,通常主设备号是29,次设备号定义帧缓冲的个数。 通常,使用如下方式(前面的数字代码次设备号) ??????? 0 = /dev/fb0??? First frame buffer ??????? 1 = /dev/fb1??? Second frame buffer ????? ... ??????? 31 = /dev/fb31? 32nd frame buffer?? 考虑到向下兼容,你可以创建符号链接: ????? /dev/fb0current - fb0 ???? /dev/fb1current - fb1 and so on... 帧缓冲设备也是一种普通的内存设备,你可以读写其内容。例如,对屏幕抓屏: ? cp /dev/fb0 myfile 你也可以同时有多个显示设备,例如你的主板上出了内置的显卡还有另一独立的显卡。对应的帧缓冲设备(/dev/fb0 and /dev/fb1 etc.)可以独立工作。 应用程序如 X server一般使用/dev/fb0作为默认的显示帧缓冲区。你可以自定把某个设备作为默认的帧缓冲设备,设置$FRAMEBUFFER环境变量即可。在sh/bash: ??? export FRAMEBUFFER=/dev/fb1 在csh中: ??? setenv FRAMEBUFFER /dev/fb1 设定后,X server将使用第二个帧缓冲区设备。 2.程序员角度看/dev/fb* 正如你所知,一个帧缓冲设备和内存设备类似/dev/mem,并且有许多共性。你可以read,write,seek以及mmap()。不同仅仅是帧缓冲的内存不是所有的内存区,而是显卡专用的那部分内存。 /dev/fb*也允许尽行ioctl操作,通过ioctl可以读取或设定设备参数。颜色映射表也是通过Ioctl设定。查看linux/fb.h就知道有多少ioctl应用以及相关数据结构。 这里给出摘要: ? - 你可以获取设备一些不变的信息,如设备名,屏幕的组织(平面,象素,...)对应内存区??? 的长度和起始地址。 ? - 也可以获取能够发生变化的信息,例如位深,颜色格式,时序等。如果你改变这些值,??? 驱动程序将对值进行优化,以满足设备特性(返回EINVAL,如果你的设定,设备不支持) ? - 你也可以获取或设定部分颜色表。? 所有这些特性让应用程序十分容易的使用设备。X server可以使用/dev/fb*而不需知道硬件的寄存器是如何组织的。 XF68_FBDev是一个用于位映射(单色)X server,唯一要做的就是在应用程序在相应的位置设定是否显示。 在新内核中,帧缓冲设备可以工作于模块中,允许动态加载。这类驱动必须调用regi

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档