linux的lcd驱动详细讲解

linux的lcd驱动详细讲解

ID:22683149

大小:148.00 KB

页数:17页

时间:2018-10-30

linux的lcd驱动详细讲解_第1页
linux的lcd驱动详细讲解_第2页
linux的lcd驱动详细讲解_第3页
linux的lcd驱动详细讲解_第4页
linux的lcd驱动详细讲解_第5页
资源描述:

《linux的lcd驱动详细讲解》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、嵌入式驱动程序Day12Top1.LCD驱动设计开发1LCD驱动设计开发1.1问题通过lcd驱动开发掌握linux内核framebuffer驱动开发通用方法。1.2方案一、帧缓冲(Framebuffer)。帧缓冲(Framebuffer)是Linux为显示设备提供的一个接口,Linux抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。Framebuffer机制模仿显卡的功能,将显卡硬件结构抽象掉,可以通过Framebuffer的读写直接对显存进行操作。用户可以将Framebuffer看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进

2、行读写操作,而写操作可以立即反应在屏幕上。这种操作是抽象的,统一的。用户不必关心物理显存的位置、换页机制等等具体细节。这些都是由Framebuffer设备驱动来完成的。Framebuffer本身不具备任何运算数据的能力,就只好比是一个暂时存放水的水池。CPU将运算后的结果放到这个水池,水池再将结果流到显示器,中间不会对数据做处理。应用程序也可以直接读写这个水池的内容。在应用程序中,一般通过将FrameBuffer设备映射到进程地址空间的方式使用,比如下面的程序就打开/dev/fb0设备,并通过mmap系统调用进行地址映射。FrameBuffer设备还提供了若干i

3、octl命令,通过这些命令,可以获得显示设备的一些固定信息(比如显示内存大小)、与显示模式相关的可变信息(比如分辨率、象素结构、每扫描线的字节宽度),以及伪彩色模式下的调色板信息等等。二、FrameBuffer在Linux中的实现和机制。Framebuffer对应的源文件在linux/drivers/video/目录下。总的抽象设备文件为fbcon.c,在这个目录下还有与各种显卡驱动相关的源文件。1.分析Framebuffer设备驱动。FrameBuffer设备驱动基于如下两个文件:(1)linux/include/linux/fb.h(2)linux/driv

4、ers/video/fbmem.c2.分析这两个文件。(1)fb.h。几乎主要的结构都是在这个中文件定义的。这些结构包括:1)fb_var_screeninfo结构体。这个结构描述了显示卡的特性:__u32是表示unsigned不带符号的32bits的数据类型,其余类推。这是Linux内核中所用到的数据类型,如果是开发用户空间(user-space)的程序,可以根据具体计算机平台的情况,用unsignedlong等等来代替。structfb_var_screeninfo{__u32xres;//可视区域__u32yres;__u32xres_virtual;//

5、可视区域__u32yres_virtual;__u32xoffset;//可视区域的偏移__u32yoffset;__u32bits_per_pixel;//每一象素的bit数__u32grayscale;//等于零就成黑白structfb_bitfieldred;structfb_bitfieldgreen;/*elseonlylengthissignificant*/structfb_bitfieldblue;structfb_bitfieldtransp;//透明__u32nonstd;//不是标准格式__u32activate;/*seeFB_ACTIV

6、ATE_**/__u32height;//内存中的图像高度__u32width;//内存中的图像宽度__u32accel_flags;//加速标志//时序-_-这些部分就是显示器的显示方法__u32pixclock;/*pixelclockinps(picoseconds)*/__u32left_margin;/*timefromsynctopicture*/__u32right_margin;/*timefrompicturetosync*/__u32upper_margin;/*timefromsynctopicture*/__u32lower_margin

7、;__u32hsync_len;/*lengthofhorizontalsync*/水平可视区域__u32vsync_len;/*lengthofverticalsync*/垂直可视区域__u32sync;/*seeFB_SYNC_**/__u32vmode;/*seeFB_VMODE_**/__u32reserved[6];//备用-以后开发};2)fb_fix_screeninfon结构体。这个结构在显卡被设定模式后创建,它描述显示卡的属性,并且系统运行时不能被修改;比如FrameBuffer内存的起始地址。它依赖于被设定的模式,当一个模式被设定后,内存信息

8、由显示卡硬件给出,内存的

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

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

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