Linux Framebuffer驱动框架之二软件架构(未完待续)【转】
本文转载自:http://blog.csdn.net/gqb_driver/article/details/12918547
/************************************************************************************************************************************/
原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb666/article/details/12918547,作者:gqb666
/************************************************************************************************************************************/
工作上的事太忙了,导致哥的Linux Framebuffer驱动系列博客搁浅了一段时间,今天兴致来了,开工。上篇博文《Linux Framebuffer 驱动框架之一概念介绍及LCD硬件原理》,主要描述了Framebuffer的概念及LCD硬件原理,文本将重点介绍linux Framebuffer驱动框架的软件构架,从框图的形式直观显现其各层次间的关系。如下图所示,看看Framebuffer的软件架构到底长什么样子:
图1 framebuffer设备驱动的软件架构
Framebuffer帧缓冲设备给用户态提供的读写接口file_operations实际由fbmem.c文件里的特定file_operatins结构对象来提供,而特定帧缓冲设备fb_info结构体的注册、注销及其中成员的维护,尤其是fb_ops中的成员函数的实现则由对应的xxxfb.c文件实现,fb_ops中的成员函数最终会操作LCD控制器的寄存器。
接下来以Linux 2.6.37为例,画出各结构关系的UML图,及简单描述下从应用程序到驱动的流程。
实际上通过框图我们一眼就看出了其架构,但不能仅浮于表面,各个数据结构的含义及函数的实现才是我们的重头戏,好吧,让我们揭开她神秘的面纱,看清本质,下转《Linux Framebuffer 驱动框架之三相关核心数据结构(待续)》。