• 《精通linux设备驱动程序开发》 第12章视频驱动程序 学习笔记


    主要内容:

    • 显示框架
    • Linux视频子系统
    • 显示参数
    • 帧缓冲API

    1.显示框架

    VGAVideo Graphics Array,视频图形阵列)是IBM提出的早期显示标准,现在更多体现为分辨率规范。嵌入式SoC通常有一个片上LCD控制器,在LCD控制器上输出的是TTL信号,许多手持设备和电话使用QVGA类型的内部LCD面板,他们直接接收LCD控制器输出的TTL平板视频数据。

    2.Linux视频子系统

    帧缓冲(frame buffer)是Linux视频系统的核心概念,它进行了一般化的抽象并规定编程接口,可以与平台无关的方式编写应用层和较高内核层的程序。

    因此,内核的帧缓冲接口允许应用程序与底层图形硬件的变化无关,通用帧缓冲编程接口也使内核层与硬件无关。

    3.显示参数

    有时,为了让设备能播放视频,在编写驱动程序的时候,只需要配置与显示面板相关的属性即可。

    4.帧缓冲API

    帧缓冲核心层向用户空间输出设备结点,以便应用程序能访问每个支持的视频设备。使用帧缓冲API主要要关心的数据结构定义在内核的include/linux/fb.h文件中,而用户侧的定义在/usr/include/linux/fb.h文件中。

    4.1视频卡的各个属性保存在struct fb_var_screeninfo内,该结构包含了很多字段,比如X向分辨率、一个像素的位数、pixclockHSYNC范围、VSYNC范围和空边长度。

    struct fb_var_screeninfo {
    
        __u32 xres;
    
        __u32 yres;
    
        /* ... */
    
        __u32 bits_per_pixel;
    
        /* ... */
    
        __u32 pixclock;
    
        __u32 left_margin;
    
        __u32 right_margin;
    
        /* ... */
    
        __u32 hsync_len;
        
        __u32 vsync_len;
    
        /* ... */
    
    };

    4.2视频硬件的固定信息

    struct fb_fix_screeninfo {
        char id[16];
    
        unsigned long smem_start;
    
        __u32 smem_len;
    
        /* ... */
    
    };
    stay hungry, stay foolish
  • 相关阅读:
    Hybrid APP基础篇(四)->JSBridge的原理
    剑指offer
    剑指offer
    如何在HTML中设置文本的大小写
    如何给HTML标签中的文本设置修饰线
    CSS设置文本的水平对齐方向
    如何在HTML中设置字体颜色,你知道这几种方式吗?
    CSS尺寸样式属性
    CSS基本选择器是什么?基本选择器是如何工作
    如何创建 CSS
  • 原文地址:https://www.cnblogs.com/zygote/p/13799749.html
Copyright © 2020-2023  润新知