奋斗的小Q

擁有夢想的人是幸福的,爲夢想奮鬥的人是塊樂的~~~

OMAP3530显示输出控制

 本文转自ericlulu2012的博客http://ericlulu.blog.163.com/blog/static/177274068201022395220877/

 

1. Kernel的启动参数可以控制显示输出的通道:

a) DVI(LCD)

set bootargs 'console=ttyS2,115200n8 root=/dev/mmcblk0p2 rootfstype=ext3 rw rootwait vram=24M omapfb.vram=0:8M,1:8M,2:8M omapfb.mode=dvi:1024x640MR-16@60 omapdss.def_disp=dvi MEM=200M'

b) 或者是输出到TV(ntsc, PAL)

set bootargs 'console=ttyS2,115200n8 root=/dev/mmcblk0p2 rootfstype=ext3 rw rootwait vram=24M omapfb.vram=0:8M,1:8M,2:8M omapfb.mode=tv:pal omapdss.def_disp=tv MEM=200M '

2. 采用DVI输出时可以指定framebuffer的分辨率(上面是1024x640)和颜色深度(16bpp);采用TV输出时不同的制式(PAL,或者NTSC)有其固定的分辨率,在程序中已经写死,颜色深度目前也采用16bpp。

3. Framebuffer的参数最终可以体现在overlay的信息中

/sys/devices/platform/omapdss/overlay0/ 该目录下有overlay0对应的framebuffer的输入图像分辨率,输出图像分辨率,屏幕宽度,对应的输出通道名称,使用的管理器等。

4. Framebuffer和显存分辨率

Framebuffer中的图形数据显示器被更新到omap3530的显示控制器的显存中,该显存可以容纳2048x2048的32bpp的数据。通常情况下我们将显存的分辨率设置和framebuffer相同,这样可以让framebuffer中的数据显示到设备上后是整屏的。但在某些情况下,我们需要将多个显示通道(GFX,VIDEO1, Video2)的数据叠加显示,达到其他显示效果,有个可能是framebuffer的分辨率与显存的分辨率不一致。这就需要分别设置framebuffer的分辨率和显存的分辨率,以及framebuffer中的数据在显存中的位置。

5. Kernel启动参数中设置的分别率分别传给了framebuffer和显存。我们可以在这个参数传给framebuffer时修改为该framebuffer需要的值。

具体可以修改:

/drivers/video/omap2/omapfb/omapfb-main.c:omapfb_fb_init, 该函数调用get_resolution来获取显存的分辨率来作为framebuffer的分辨率:

display->get_resolution(display, &w, &h);

我们直接修改为不使用获取的分辨率,而使用我们想要的分辨率即可。

另外,为了支持opengl el的双缓冲机制,虚拟framebuffer大小高度是输出高度的3三倍:

var->yres_virtual = var->yres*3; // for double buffer: opengl flip mode

6. 我们可以在系统初始化完成之后调用系统接口来设置显存的分辨率

void dispc_set_lcd_timings(struct omap_video_timings *timings)

该接口需要指定输出图形的分辨率以及时序参数。

7. 调整framebuffer中的图形输出到显存中的位置

即:输出到设备上的位置:

直接调整overlay的显示位置即可:

> cd /sys/devices/platform/omapdss/overlay1 (调整fb1的输出位置)

> ls

enabled input_size name position

global_alpha manager output_size screen_width

> cat position

0,0

> echo 30,30 > position (这就调整了视频输出到显示设备上的位置)

> cat position

30,30

> cat output_size

720,576

> cat screen_width

720

> echo 640,480>output_size (将视频缩小到640X480的分辨率,采用此方法可以对图形进行放大缩小)

阅读更多
个人分类: Linux OMAP3530
想对作者说点什么? 我来说一句

OMAP3530 WINCE6 BSP

2011年09月21日 4.79MB 下载

omap3530 资料

2010年12月13日 103KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭