视频驱动程序

显示器接口方式

1. 模拟

2.LVDS

3.DVI

4.HDMI

显示单元



frame buffer 是linux视频系统的核心

用户空间

fbset 

内核空间

显卡驱动(intelfb)

硬件

底层显示驱动程序

中间层帧缓冲

控制台

高层虚拟终端驱动程序

X  windows 的用户模式驱动程序和配置显示参数程序

显示参数

D:dataclock ,视频硬件在显示器上绘制像素的速率 pixclock

geometry: 分辨率

H:水平扫描率

视频硬件每秒扫描的水平显示数目

V:整屏的刷新率 

视频控制器在每行结束时候发一个水平同步脉冲(hsync),在每帧结束时发一个垂直同步脉冲(VSYNC). 

timings行中HSYNC前的四个

1.显示器右空边(水平前沿)

2.左空边(水平后沿)

3.下空边(垂直前沿)

4.上空边(垂直后沿)

1024*768 lcd

dotclock=(X向分辨率+左空边+右空边+HSYNC长度)*(Y向分辨率+上空边+下空边+VSYNC长度)*刷新率

=(1024+168+16+136)*(768+30+2+6)*60.006=65.003MHZ

pixclock=1/dotclock=15384ps

帧缓冲API

帧缓冲核心层向用户空间输出设备节点,以便应用程序能访问每个支持的视频设备

dev/fbx

struct fb_var_screeninfo

AHB:andvanced high_performance BUS 高级性能总线


bash>fbset (fbset获得显示特性)

mode "1024x768-60“

#D:65.003 MHZ,  H:48.365khz,V: 60.006HZ

geometry 1024 768 1024 768 8

timings 15384 168 16 30 2 136 6

hsync high

vsync high

rgba 8/0, 8/0,8/0,0/0

endmode

屏幕消隐

fb_blank()

bash>setterm-blank 10


从帧缓冲DMA

lcd控制器包含了一个DMA引擎,从系统内存抓取图像帧。控制器得到的图像数据发到显示板。

dma_alloc_coherent()

控制台是用于显示内核产生的printk()消息的一种设备

struct console 

fbcon=roate:x 

X_0 /1/2/3(0/90/180/270)

控制台驱动程序

驱动程序通过usb_uart取出printk()消息,PC主机收到消息,并通过终端显示出来。

启动Logo

在帧缓冲子系统下,有一个启动logo,为了显示这个logo,在内核配置阶段启用,config_logo选项中选一个可用的logo,也可以在drivers/video/logo目录下自定义一个logo图片。

CLUT224是常用的启动logo的图片格式,支持224中颜色

color look up table 色彩查询表,是一个224个RGB组的字符矩阵 224x3,三种颜色

数字矩阵,每个字节是CLUT表的索引,索引从32开始,一直到255 ,drivers/video/fbmem.c

数据结构

fb_info    include/linux/fb.h  底层帧缓冲驱动程序使用的数据结构

fb_ops include/linux/fb.h 帧缓冲程序提供的入口地址

fb_var_screeeninfo  include/linux/fb.h      视频硬件信息

fb_cmap include/linux/fb. 色彩映射

console  include/linux/console.h  顶层控制台驱动程序描述

consw include/linux/console.h 底层控制台驱动描述

内核编程接口

register_framebuffer()   drivers/video/fbmem.c   注册底层缓冲设备

unregister_framebuffer()      drivers/video/fbmem.c  注销底层缓冲设备

fb_alloc_cmap() drivers/video/fbcmap.c 分配色彩映射

fb_dealloc_cmap() drivers/video/fbcmap.c     释放色彩映射

register_console()     kernel /prtink.c 注册顶层控制台驱动程序

unregiste_console()           kernel/prtink.c                注销顶层控制台驱动程序



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值