
FrameBuffer
文章平均质量分 52
FrameBuffer
四季帆
汽车电子、bsp
展开
-
显示屏驱动(2) - datasheet
0. 前言每款SOC 都会集成图像处理相关的模块以减轻SOC 处理图像的压力,增强图像处理的速度和效果,Imx6dl 这款SOC 的图像处理模块是IPU。1. 概述IPU是应用处理器中视频和图形子系统的一部分,IPU的目标是为从图像传感器和/或到显示设备的数据流提供全面支持,说得直白点,即IPU是IMX6 的图像处理模块。使用IPU的重要优势:尽量减少ARM平台对图像管理的参与。特别是,可以完全自主地执行显示刷新/更新和摄像机预览(显示来自...原创 2021-07-05 23:01:46 · 909 阅读 · 16 评论 -
显示屏驱动(3) - 控制器驱动层
1. frambuffer简介Linux kernel为显示屏设备提供了一个驱动框架叫FrameBuffer(中文也称“帧缓冲区”),所以编写显示屏驱动的任务也就变成了调用FrameBuffer框架提供的接口,注册包含具体显示屏控制器信息的结构体到FrameBuffer框架。所以正常情况下,显示屏驱动应该就两层,第一层是FrameBuffer 驱动框架层,第二层就是具体的显示屏控制器对应的驱动代码。通过阅读Imx6dl SOC数据手册可知显示...原创 2021-07-05 23:26:07 · 637 阅读 · 0 评论 -
显示屏驱动(6) - 应用
示例:写一个应用程序,把lcd显示器的背景刷成红色。1. 使用mmap 来实现#include <stdio.h>#include <sys/stat.h>#include <sys/mman.h>#include <fcntl.h>#include <stdlib.h> int main(int argc, char *argv[]){ int fd = -1; int i; ...原创 2021-07-08 22:57:51 · 273 阅读 · 0 评论 -
显示屏驱动(4) - 控制器驱动通用层
继上篇继续分析。驱动第二层: mxc_ipuv3_fb.cmodule_init(mxcfb_init);int __init mxcfb_init(void){ return platform_driver_register(&mxcfb_driver);}static struct platform_driver mxcfb_driver = { .driver = { .name = MXCFB_NAME, .of_match_table = im...原创 2021-07-06 22:39:39 · 540 阅读 · 0 评论 -
显示屏驱动(5) - 框架层
继上篇继续分析。驱动第一层frame buffer框架层(fbmem.c)。2.1 提供给外部模块的注册接口int register_framebuffer(struct fb_info *fb_info){ int ret; ret = do_register_framebuffer(fb_info); return ret;}static int do_register_framebuffer(struct fb_info *fb_info){ int i;...原创 2021-07-07 23:40:19 · 653 阅读 · 0 评论 -
显示屏驱动(1) - 概念
1. 显示器的物理概念1.1 像素(pixel)整个图像是由一个个的像素组成的,像素就是一个显示点。1.2 像素间距(pitch)pitch是连续2个像素的像素中心的距离。一般的像素是方形的,所以横向pitch和纵向的pitch一样的,但是也有不一样的。像素间距会影响屏幕的最佳观看距离,像素间距大的适合远距离看,像素间距小的适合近距离看。1.3 分辨率(resolution)整个屏幕的横向和纵向的像素个数就叫分辨率,譬如屏幕分辨率为80...原创 2021-07-04 17:30:58 · 2820 阅读 · 0 评论