1. LCD驱动介绍
2. LCD文件介绍
2.1 源文件
Framebuffer 设备驱动的实现和头文件主要是在linux内核源码中的/driver/video和/include/linux目录中,主要包括如下几类文件:
1)/drivers/video/fbmem.c;
2) /drivers/vieo/xxxfb.c;
3) /drivers/video/yyy;
4) /include/linux/fb.h.
其中xxx为自己添加的FrameBuffer驱动程序。yyy表示目录名,一些与默写厂商生产的LCD相关的文件在改目录下。
fb.h文件中主要是定义一些结构体和宏;fbmem.c实现了设备初始化、卸载和文件操作接口;xxxfb.c为自己添加的设备驱动文件(如struct fb_info)实现了入口点函数xxxfb_init。
2.2 帧缓冲(FrameBuffer)驱动设计与实现
在linux系统中通畅使用FrameBuffer技术读写LCD上的图像。FrameBuffer从本质上讲就是图像设备的硬件抽象。对于开发者而言,FrameBuffer是一块显示缓存(也就是显存),往显示缓存中写入特定格式的数据就意味着向屏幕输出内容。通过不断向FrameBuffer中写入数据,显示控制器就自动从FrameBuffer中读取数据并显示出来。由于大多数计算设备(手机、平板电脑)没有像PC一样的专用显存,所以Linux系统单独将内存分出了一块作为显存,这块分出来的内存就是FrameBuffer占用的空间大小。 FrameBuffer设备是字符设备,所以在/dev目录中有与FrameBuffer设备对应的设备文件。可以用程序或Linux命令行工具直接访问这些设备文件。 FrameBuffer设备文件的主设备号是29,次设备号从0-31。
分类:
linux内核源码分析
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通