"); //-->
By Toradex 秦海
1). 简介
对于一些嵌入式领域应用如医疗,汽车等,多屏显示应用是需要的,因此本文就基于NXP iMX6 嵌入式ARM平台来实现双屏显示应用。
本文所采用的测试平台为来自Toradex的ARM 计算机模块平台Colibri iMX6DL搭配其对应的开发载板Colibri Eva Board.
2. 准备
a). Colibri iMX6DL系统分别通过X18连接LVDS LCD屏(1024x768)和X5 DVI接口连接标准DVI液晶显示器。
b). Colibri iMX6DL 模块需要连接FFC排线和Colibri Eva Board X6连接,如下图所示

c). Colibri iMX6DL 系统使用Toradex Linux Release V2.6.1,不过原生没有包含Qt库,需要基于Toradex Openembedded环境添加Qt相关并重新编译,建立环境和编译相关请参考这里,涉及到添加Qt5以及linuxfb支持的修改请参考下面两个patch文件,然后根据这里说明将重新编译好的image文件更新到Colibri iMX6DL模块上面去。
./ angstrom-lxde-image.bb 添加Qt5 X11支持库
https://github.com/simonqin09/qt5patch/blob/master/angstrom-lxde-image_qt5_x11.patch
./ qtbase_git.bb添加linuxfb支持
https://github.com/simonqin09/qt5patch/blob/master/qtbase_git_linuxfb.patch
d). Colibri iMX6DL Uboot环境变量如下设置来使能双屏配置,此配置LVDS作为主屏显示X11桌面,DVI显示器作为副屏
----------------------------
Colibri iMX6 # setenv vidargs ‘video=mxcfb0:dev=lcd,1024x768M@60,if=RGB666 mxc_hdmi.only_cea=1 video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24 fbmem=32M’
----------------------------
3). 播放视频测试
a). 利用videotestsrc元素测试DVI显示器 ”/dev/video18” 输出
----------------------------
gst-launch-1.0 -v videotestsrc !imxv4l2sink device=/dev/video18 force-aspect-ratio=true overlay-width=1920 overlay-height=1080
----------------------------
b). 测试DVI显示器播放1080P 高清视频“fullhdvideo.mkv”
----------------------------
gst-launch-1.0 -v filesrc location=/home/root/fullhdvideo.mkv ! video/x-matroska !aiurdemux !vpudec !imxv4l2sinkdevice=/dev/video18 force-aspect-ratio=trueoverlay-width=1920 overlay-height=1080
----------------------------
c). 测试LVDS和DVI显示器同时播放1080P 高清视频“fullhdvideo.mkv”
----------------------------
gst-launch-1.0 -v filesrc location=/home/root/2528.mkv ! video/x-matroska !aiurdemux !vpudec !imxv4l2sink device=/dev/video18 force-aspect-ratio=true overlay-width=1920 overlay-height=1080 & gst-launch-1.0 -v filesrc location=/home/root/2528.mkv ! video/x-matroska !aiurdemux !vpudec !imxv4l2sink overlay-width=1024 overlay-height=768
----------------------------

4). Qt 5应用程序运行
a). 测试程序请参考这里说明,文章是基于Colibri iMX7 ARM计算机模块平台的,针对本文的Colibri iMX6只需要更改下面代码中” this->gpio_out”变量为数值为”38”, 然后在载板上面将X10连接器SODIMM_127管脚和X21连接器LED1管脚相连。
https://github.com/simonqin09/QtGPIOProject/blob/master/mainwindow.cpp
b). 将修改编译好的程序放到Colibri iMX6模块上面进行执行
----------------------------
root@colibri-imx6# ./helloworldUI -platform linuxfb:fb="/dev/fb2"
Sucessfully export GPIO-38
Sucessfully set GPIO-38 direction
GPIO-38 value set low
Sucessfully set GPIO-38 value
GPIO-38 value set high
……
----------------------------

c). 清理显示,执行下面命令
----------------------------
root@colibri-imx6# cat /dev/zero > /dev/fb2
----------------------------
5). 总结
本文基于NXP iMX6嵌入式平台测试了双屏显示,其模式是一个主显示,另外一个基于frame buffer来进行操作,并具体测试了播放视频以及运行Qt程序,尽管还有一定局限性,但是已经可以实现一些比较基本的双屏需求。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
[原创]软件工程-使用CVSUp备份CVS库
AMD基于Zen 6的台式机处理器可能具有多达24个内核
高速PCB设计指南第13篇-信号隔离技术
高速PCB设计指南第10篇-RF产品设计过程中降低信号耦合的PCB布线技巧
美军APKWS II制导火箭弹技术发展动态
国芯科技:首颗RSIC-V架构车规MCU有望实现国产化替代
三星电子正开发下一代封装材料“玻璃中介层”:计划2027年量产
如何利用4200A-SCS参数分析仪研究光伏材料和太阳能电池的电学特性
双限值的温度控制电路
VxWorks下读写Pipe是否需要信号量保护?
采用MPM模块制成的大功率温度控制电路
高速PCB设计指南第15篇-掌握IC封装的特性以达到最佳EMI抑制性能
水温自动控制器电路
苹果最新“折叠iPhone”规格曝光? 分析师估惊人售价
小型无触点恒温箱电路
大棚温度和湿度自动控制器电路
DeepSeek能否爆改EDA?那些改变的与不变的
美军混合电驱动车辆发展近况
美海军潜艇技术发展新动向
美空军计划未来10年采购2000架无人机
英飞凌边缘AI平台DEEPCRAFT™ Studio通过Ultralytics YOLO模型增加对计算机视觉的支持
[转帖]关于内存的几篇文章
编译错误,请帮忙啊
俄罗斯微电子行业出现了大规模招聘和加薪
[转帖]美国一所普通小学的一堂阅读课
高速PCB设计指南第11篇-PCB基本概念
高速PCB设计指南第12篇-避免混合讯号系统的设计陷阱
美海军开发潜射无人机
英特尔澄清:Intel 18A制程产品将于今年下半年如期发布
客户案例分享 | ATA-4014C高压功率放大器在电流传感器性能测试实验中的应用