先看一个例子:http://lxr.linux.no/linux+v2.6.37.4/arch/arm/mach-lpc32xx/phy3250.c
fb_videomode各个参数的意义
Linux对LCD的抽象如下图所示:
下面研究一下fb_videomode各个成员的意义:
名称 在数据手册中的简称 中文名 意义 备注
name No 名字 液晶屏名字(可选) No
refresh No 刷新频率 刷新频率(内核中很多例子都赋值为60) No
xres No 行宽 每行的像素个数 No
yres No 屏幕高度 屏幕的行数 No
pixclock No 像素时钟 每个像素时钟周期的长度,单位是皮秒(10的负12次方分之1秒) No
left_margin HBP (Horizontal Back Porch) 水平后沿
在每行或每列的象素数据开始输出时要插入的象
素时钟周期数 No
right_margin HFP (Horizontal Front Porch ) 水平前沿
在每行或每列的象素结束到LCD 行时钟输出脉冲
之间的象素时钟数 No
upper_margin VBP (Vertical Back Porch) 垂直后沿 在垂直同步周期之后帧开头时的无效行数
No
lower_margin VFP (Vertical Front Porch) 垂直前沿
本帧数据输出结束到下一帧垂直同步周期开始之
前的无效行数 No
hsync_len HPW (HSYNC plus width) 行同步脉宽
单位:像素时钟周期 也有手册简称为HWH(HSYNC width)
vsync_len VPW (VSYNC width) 垂直同步脉宽 单位:显示一行的时间th
也有手册简称为VWH(VSYNC width)
sync No 同步极性设置
可以根据需要设置FB_SYNC_HOR_HIGH_ACT(水平同步高电平有效)和FB_SYNC_VERT_HIGH_ACT(垂直同步高电平有效)
No
vmode No No
在内核中的大多数示例都直接置为FB_VMODE_NONINTERLACED。interlaced的意思是交错[隔行]扫描,电视中使用2:1的交错率,
即每帧分两场,垂直扫描两次,一场扫描奇数行,另一场扫描偶数行。很显然LCD目前不是这种模式。 No
flag No No 目前没有看到用法 No
说明:
(1)Linux对LCD的抽象是以图像为中心