本文转自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的分辨率,采用此方法可以对图形进行放大缩小)

OMAP3530显示输出控制相关推荐

  1. SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制...

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(4)DATA步循环与控制.常用全程语句.输出控制 1. 各种循环与控制 DO组 创建一个执行语句块 DO循环 根据下标变量重复执行DO和E ...

  2. matlab ip 大端,MATLAB格式化输出控制

    MATLAB格式化输出控制 format 默认格式 format short 5字长定点数 format long 15字长定点数 format short e 5字长浮点数 format long ...

  3. html控制台 打印 consol,浏览器console.log()打印输出台不显示输出内容……

    浏览器console.log()打印输出台不显示输出内容的原因应该很多,如网络上所说:console.log()被重新定义等等原因(需要验证真实性?)都可能导致console.log()打印不能显示打 ...

  4. 嵌入式linux lvds,一种嵌入式主板实现双LVDS显示输出的电路及方法与流程

    本发明属于主板显示输出技术领域,尤其涉及一种嵌入式主板实现双LVDS显示输出的电路及方法. 背景技术: 通常情况下嵌入式主板平台实现双LVDS输出显示,都是通过扩展信号转换芯片,信号转换芯片的初始化程 ...

  5. 【Matlab系列】MATLAB中显示输出数据的四种方式

    DATE: 2019-11-13 1.参考 MATLAB 显示输出数据的三种方式 Matlab之print,fprint,fscanf,disp函数 2.改变数据格式 当数据重复再命令行窗口时,整数以 ...

  6. LED显示按键控制 CT1642、PT6964(1)

    CT1642是一种带键盘扫描接口和LED显示的控制专用电路,内部集成18bit移位寄存器,广泛应用于各种家用电器等各种设备的数码显示驱动电路. 1.引脚说明 Q2-Q9:表示段输出.接数码管阳极 C1 ...

  7. c# winform html 表,C# winform中嵌入Excel实现复杂表格的显示和控制

    龙源期刊网 http://www.doczj.com/doc/7c6e747d7375a417866f8fac.html C# winform中嵌入Excel实现复杂表格的显示和控制 作者:斯琴巴图杨 ...

  8. Linux下使用tee既在屏幕上显示输出,又把输出写进文件

    Linux下的tee是一个很好用的工具,可以把重定向屏幕输出到文件的同时在屏幕上显示输出 使用示例如下: command | tee stdout.log 这里有一个需要注意的坑点,上面的命令只是把标 ...

  9. SAP SD基础知识之输出控制(Output Control)

    SAP SD基础知识之输出控制(Output Control) 一,销售的输出类型 Output是用于和商业伙伴及系统交换信息的通信方式.我们可以为不同的销售凭证如报价单,订单,交货单,发票设置out ...

最新文章

  1. 人们怕人工智能获得意识到底是怕哪个方面?
  2. okhttp进行网络传输文件
  3. Myeclipse+mysql出现中文乱码情况
  4. RabbitMQ负载均衡(4)——LVS
  5. 笔记本电脑投屏到电视_同是无线投屏器,家用级与商用级的区别,除了盘活老电视还能干嘛...
  6. jdk解压版_命令行版的斗地主你玩过没?
  7. Pig安装及简单使用(pig0.12.0 hadoop2.2.0)
  8. 关于批量导入数据以及调优的一些总结
  9. [nowcoder]最长区间
  10. LocalDateTime计算两个日期时间差
  11. 1、使用Keras构建图像分类器
  12. ARM给服务器厂商更多创新机会
  13. NPP/VIIRS夜间灯光数据下载和介绍
  14. 风云格式工厂隐私政策
  15. 刚刚,北大智能学院成立!AI视觉泰斗朱松纯教授任院长
  16. 微博、微信上的假消息害苦了哥
  17. PC项目——vue 脚手架中实现阿里云人机滑动验证
  18. linux的SIGCHLD信号
  19. html —— table 标签 与 display:table 样式
  20. 操作系统复习(第四版)--命中期末考试所有大题

热门文章

  1. SCRM火了,SaaS服务再现新风口
  2. 【MySQL逻辑运算符、模糊查询和ifnull】
  3. gurobi使用系列之一——gurobi+Python的实例使用(简单整数规划)
  4. opencv 异常报错Microsoft C++ 异常: cv::Exception,位于内存位置 0x00000058F84FEC20 处
  5. 项目上线就炸,这谁受得了
  6. 我家云粒子云刷机可开关机休眠控制风扇LED可手机app同步
  7. 密码学里的数学知识之
  8. CSS属性优先级顺序
  9. 深度学习模型建立的整体流程和框架
  10. 降维算法高级(二)21