嵌入式linux 小屏,嵌入式设备基于Linux实现双屏显示

2023-10-16 22:20

本文主要是介绍嵌入式linux 小屏,嵌入式设备基于Linux实现双屏显示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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连接,如下图所示

a576eb269498408b7d2f392d1e69cbe5.png

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支持库

./ qtbase_git.bb添加linuxfb支持

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

----------------------------

800ad68688e422ff6436e2eec60e15ab.png

4). Qt 5应用程序运行

a). 测试程序请参考这里说明,文章是基于Colibri iMX7 ARM计算机模块平台的,针对本文的Colibri iMX6只需要更改下面代码中” this->gpio_out”变量为数值为”38”, 然后在载板上面将X10连接器SODIMM_127管脚和X21连接器LED1管脚相连。

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

……

----------------------------

ca3170ca566a621b7a113bdc6756afb8.png

c). 清理显示,执行下面命令

----------------------------

root@colibri-imx6# cat /dev/zero > /dev/fb2

----------------------------

5).总结

本文基于NXP iMX6嵌入式平台测试了双屏显示,其模式是一个主显示,另外一个基于frame buffer来进行操作,并具体测试了播放视频以及运行Qt程序,尽管还有一定局限性,但是已经可以实现一些比较基本的双屏需求。

这篇关于嵌入式linux 小屏,嵌入式设备基于Linux实现双屏显示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/221151

相关文章

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Linux在线解压jar包的实现方式

《Linux在线解压jar包的实现方式》:本文主要介绍Linux在线解压jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux在线解压jar包解压 jar包的步骤总结Linux在线解压jar包在 Centos 中解压 jar 包可以使用 u

linux解压缩 xxx.jar文件进行内部操作过程

《linux解压缩xxx.jar文件进行内部操作过程》:本文主要介绍linux解压缩xxx.jar文件进行内部操作,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、解压文件二、压缩文件总结一、解压文件1、把 xxx.jar 文件放在服务器上,并进入当前目录#

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon