基于 NXP iMX8MP 平台测试 CODESYS TargetVisu

By Toradex胡珊逢

简介

之前的文章中我们介绍了如何在 Verdin AM62 上运行 CODESYS,demo 的界面通过浏览器呈现。CODESYS 还提供 TargetVisu 组件,借助 Qt 可以在本地设备上直接显示应用,而无需启动浏览器。本文将以 Verdin iMX8MP 为例,说明如何在 Yocto 镜像中添加相关组件,并安装 TargetVisu。


硬件介绍

Verdin iMX8MP采用 NXP iMX8M Plus SoC,具有 4x Cortex-A53 和 Cortex-M7 核心,神经网络处理单元(NPU)可以加速 AI 应用。模块提供多种 DDR RAM,eMMC 容量等配置,满足用户多样的需求。



Yocto 镜像配置

首先参考Build a Reference Image with Yocto Project/OpenEmbedded搭建 Yocto 编译环境。在 BSP7 对应的 scathgap 分支版本中,默认使用 Qt5,CODESYS TargetVisu 则需要使用 Qt6,所以我们需要添加 meta-qt6 layer。这里我们使用 v6.8.3 版本的 Qt6 作为演示。


$ cd layers$ git clone https://code.qt.io/yocto/meta-qt6.git$ cd meta-qt6$ git checkout v6.8.3


在build/conf/bblayers.conf 中把原来的使用的${TOPDIR}/../layers/meta-qt5 改为 ${TOPDIR}/../layers/meta-qt6。然后把packagegroup-tdx-qt6.bb 和 tdx-reference-multimedia-qt6-image.bb 放到 layers/meta-toradex-demos/recipes-images/images 目录下。同时把该目录下原有的tdx-reference-multimedia-image.bb 移到到其他位置,例如用户根目录,如果后续要重新编译基于 Qt5 的镜像,可以将其移回来,并恢复之前的 bblayers.conf 文件。


· packagegroup-tdx-qt6.bb

DESCRIPTION = "Package group for i.MX"LICENSE = "MIT"

PACKAGE_ARCH = "${MACHINE_ARCH}"

inherit packagegroup

RDEPENDS:${PN} = " \  ${QT6_IMAGE_INSTALL_APPS} \  ${QT6_IMAGE_INSTALL_FONTS} \  ${QT6_IMAGE_INSTALL_QUICK3D} \  ${@bb.utils.contains('DISTRO_FEATURES', 'wayland',     'qtwayland qtwayland-plugins', '', d)}"

QT6_IMAGE_INSTALL_APPS = ""#QT6_IMAGE_INSTALL_APPS:imxgpu3d = "${@bb.utils.contains("MACHINE_GSTREAMER_1_0_PLUGIN", "imx-gst1.0-plugin", "imx-qtapplications", "", d)}"

#QT6_IMAGE_INSTALL_CINEMATICEXPERIENCE        = ""#QT6_IMAGE_INSTALL_CINEMATICEXPERIENCE:imxgpu = "cinematicexperience-rhi"

QT6_IMAGE_INSTALL_FONTS = "ttf-dejavu-common ttf-dejavu-sans ttf-dejavu-sans-mono ttf-dejavu-serif "

QT6_IMAGE_INSTALL_QUICK3D = "qtquick3d qtquick3d-dev"


· tdx-reference-multimedia-qt6-image.bb

require tdx-reference-minimal-image.bb

SUMMARY = "Toradex Embedded Linux Reference Multimedia Image"DESCRIPTION = "Image for BSP verification with QT and multimedia features"

inherit populate_sdk_qt6

#Prefix to the resulting deployable tarball nameexport IMAGE_BASENAME = "Reference-Multimedia-Image"

IMAGE_FEATURES += " \  ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'weston', \     bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11-base', '', d), d)} \"

IMAGE_INSTALL += " \  packagegroup-tdx-cli \  packagegroup-tdx-graphical \  packagegroup-fsl-isp \  packagegroup-tdx-qt6 \  bash \  coreutils \  less \  makedevs \  mime-support \  net-tools \  util-linux \  v4l-utils \  \  gpicview \  media-files \"


在build/conf/local.conf 添加 TargetVisu 运行所需的其他组件。

IMAGE_INSTALL:append = " rt-tests qtsvg qtwebengine ncurses procps nano"PACKAGECONFIG:append:pn-qtbase = " widgets"


因为 CODESYS 的运行依赖于 RT-Linux,在编译的时候指定 DISTRO=tdx-xwayland-rt 就可以给内核打上实时补丁。

$ MACHINE=verdin-imx8mp DISTRO=tdx-xwayland-rt \IMAGE=tdx-reference-multimedia-qt6-image


编译完成后使用 Toradex Easy Installer 安装到 Verdin iMX8MP 模块上即可。


CODESYS IDE 配置

参考这篇文章在电脑上完成 CODESYS IDE 安装。并且同样需要把 CODESYS Control 安装到 Verdin iMX8MP。设备的名字和登录密码设置也先完成,后面 codesysvisualization 需要使用该信息。

opkg install codesyscontrol_linuxarm64.ipk


在 CODESYS IDE 中继续安装CODESYS TargetVisu for Linux SL。在C:\Program Files\CODESYS 3.5.21.10\CODESYS\CODESYS TargetVisu for Linux SL\Delivery\visualizationarm64路径中可以看到 deb 格式的 codesysvisualization_visualizationarm64 安装文件。由于默认编译的镜像不支持 deb 安装包,需要在 Debian 系统如 Ubuntu 中提取相关文件,直接复制到 Verdin iMX8MP 上。


CODESYS TargetVisu 安装

在电脑上运行下面命令提取安装文件到 codesysvisualization_file 文件夹。

$ dpkg-deb -x codesysvisualization_visualizationarm64_4.16.0.0_arm64.deb \codesysvisualization_file

提取后可以看到以下文件。除了 usr 目录外,其他的都可以复制到对应的位置。

├── etc│   └── codesysvisualization│       ├── CODESYSVisualization.cfg│       ├── CODESYSVisualizationTV.cfg│       └── CODESYSVisualization_User.cfg├── opt│   └── codesysvisualization│       ├── bin│       └── codesysvisualization.service├── usr│   └── share│       └── doc└── var  └── opt      └── codesysvisualization


例如在 Verdin iMX8MP 上执行下面命令复制文件。

# cp -r etc/* /etc/# cp -r opt/* /opt/# cp -r var/* /var/


运行 TargetVisu Demo

在 Verdin iMX8MP 上运行下面命令启动 codesyscontrol 和 codesysvisualization。

# /etc/init.d/codesyscontrol start# /opt/codesysvisualization/bin/codesysvisualization.bin \/etc/codesysvisualization/CODESYSVisualization.cfg

Verdin iMX8MP 屏幕上会显示寻找设备,点击 Scan network,选择当前的 verdin-imx8mp。


接下来的界面中输入之前在 IDE 上配置的用户名和密码。


在 IDE 里面创建并运行一个工程后,在设备端的屏幕同样可以显示该应用。

总结

文章介绍了如何在 Verdin iMX8MP 上使用 CODESYS TargetVisu 组件直接在本地显示 CODESYS 应用,而无需启动浏览器。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • """1.个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消息应非常简单,如“Hello ...
    她即我命阅读 5,388评论 0 6
  • 为了让我有一个更快速、更精彩、更辉煌的成长,我将开始这段刻骨铭心的自我蜕变之旅!从今天开始,我将每天坚持阅...
    李薇帆阅读 2,249评论 1 4
  • 似乎最近一直都在路上,每次出来走的时候感受都会很不一样。 1、感恩一直遇到好心人,很幸运。在路上总是...
    时间里的花Lily阅读 1,753评论 1 3
  • 1、expected an indented block 冒号后面是要写上一定的内容的(新手容易遗忘这一点); 缩...
    庵下桃花仙阅读 1,105评论 1 2
  • 一、工具箱(多种工具共用一个快捷键的可同时按【Shift】加此快捷键选取)矩形、椭圆选框工具 【M】移动工具 【V...
    墨雅丫阅读 1,622评论 0 0

友情链接更多精彩内容