- 博客(214)
- 收藏
- 关注
原创 NXP iMX8MP 使用 OP-TEE
在 Arm 架构上 OP-TEE 可以分为两个部分。这是 Rich Execution Environment(REE),运行诸如 Linux、Android 等操作系统。它们使用 tee-supplicant 驱动和 TEE 通信这是 Trusted Execution Environment(TEE),运行 Trusted Applications 或者其他安全系统。
2025-11-07 11:04:39
672
原创 NXP iMX8MM 通过本地服务器更新 BSP 镜像
/ 但是,在实际量产中,手动修改输入 feed 方式操作起来效率不高且容易出错,而从 Toradex Easy Installer 2.0 以及以上版本,已经支持 zeroconf 技术,可以实现让本地服务器被 Toradex Easy Installer 自动发现,这样就可以实现自动安装量产 BSP 镜像的任务。f). 此时,模块 Toradex Easy Installer 加载启动成功,如果上述章节4的相关服务也同时存在,则会继续自动识别本地服务器上需要烧写的 BSP 镜像,进而实现自动更新。
2025-11-05 14:29:22
788
原创 NXP iMX8MM ARM 平台 Weston RDP 远程桌面部署测试
a). 由于上述测试中, weston 默认使用 drm-backend 来输出显示,然后通过 screen-share module 来共享到 RDP 输出,因此需要设备实际连接物理显示器,当设备是 Headless 时候,RDP 服务无法启动成功。d). 在上述同样 wayland 目录下增加 weston-init.bbappend 来修改默认的 weston.ini 配置文件以便使能 RDP / Screen share。b). 确认 weston.ini 的修改以及新部署的 keys 文件正确。
2025-10-11 14:48:36
767
原创 基于 NXP iMX8MP 平台测试 CODESYS TargetVisu
在之前的文章中我们介绍了如何在 Verdin AM62 上运行 CODESYS,demo 的界面通过浏览器呈现。CODESYS 还提供 TargetVisu 组件,借助 Qt 可以在本地设备上直接显示应用,而无需启动浏览器。本文将以 Verdin iMX8MP 为例,说明如何在 Yocto 镜像中添加相关组件,并安装 TargetVisu。采用 NXP iMX8M Plus SoC,具有 4x Cortex-A53 和 Cortex-M7 核心,神经网络处理单元(NPU)可以加速 AI 应用。
2025-09-19 14:52:51
710
原创 通过 Docker 部署测试 CODESYS PLC示例
CODESYS 是基于 IEC 61131-3 的 PLC 开发工具,在工业控制、交通等领域中有着广泛的应用。在之前的文章中介绍了通过 Yocto Linux BSP 环境下部署 CODESYS Control Runtime 环境的示例,本文则着重测试如何通过 Docker 环境来进行部署测试。本文所演示的平台来自于 Toradex Verdin i.MX8MP 嵌入式平台。本文基于 NXP i.MX8MP 处理器平台演示了通过 Docker 方式来测试部署 CODESYS PLC 示例应用。
2025-07-22 11:46:02
740
1
原创 Yocto meta-toradex-security layer 使用 TI AM62 安全启动功能
Arm 处理器的 Secure Boot 安全启动功能能够有效防止在设备上运行非授权的或者恶意窜改的固件。Secure Boot 系统在启动时会使用烧录的处理器上的密钥验证 Bootloader,Bootloader 会验证 kernel FIT 镜像,而 kernel 继续验证 rootfs 的有效性。这一逐个验证的流程成为 Chain of Trust。用户如果使用传统方法使用启动功能需用需要依次实现上述的每个环节。借助layer,只要几行简单的配置即可实现。
2025-07-22 11:09:20
1191
原创 以太网一致性测试
简介Toradex供应稳健而可靠的嵌入式系统,它们被要求在严苛的环境能够不间断地运行。以太网是物联网(IoT)的重要接口之一。我们将会查阅一些以太网标准并向您展示Toradex测试的合规情况。在研究以太网标准之后,我们将会说明我们的测试配置、测试步骤和测试结果。Colibri iMX6ULL模块和Iris载板将被用于本次测试,如果您的验证流程同样需要这些测试,那么您可以...
2025-07-22 11:02:09
1250
原创 定制 Linux Kernel Driver 编译示例
c). 由于 NXP i.MX8 系列 SoC 默认 Yocto Linux GPU 驱动使用 out of tree 驱动,而单独编译 Kernel 源码时候则需要将 built-in 版本 GPU 驱动使能,否则显示相关就会异常。./ Linux Kernel 支持动态 debug 显示,和静态 debug 信息相比优势是无需重新编译驱动或者 Kernel 源代码,而且没有静态编译 debug 代码负担,只在需要显示的时候动态显示。./ 首先下载对应版本的 Linux Kernel 源代码。
2025-07-08 14:05:14
772
翻译 在 NXP i.MX 95 上运行 Zephyr 实现非对称多核处理
OpenAMP 项目将德州仪器的专有实现方法扩展为适用于各类系统的通用框架,标准化了 Linux 内核与基于实时操作系统(RTOS)的嵌入式应用间通信协议,并为希望利用其功能特性(如 RPMsg)的 RTOS 及裸机嵌入式应用提供了参考实现方案。如图中显示,嵌入式软件的功能安全(FuSa)部分通过 Zephyr Project 实时操作系统在 ARM Cortex-M 内核上实现,而图形用户界面(GUI)则在 ARM Cortex-A 内核的 Linux 系统中运行。它是一个完整的生态系统。
2025-06-16 17:23:06
214
原创 HDMI 显示器热插拔对应显示应用启停测试
在前述文章中,我们介绍了如何基于 Weston Composito 实现多屏幕分别显示不同的应用,而进一步延申出的一个应用场景,就是多屏幕之一的 HDMI 屏幕需要进行热插拔,而在热插拔的同时其对应的显示应用也同时启动或者停止,以便不影响其他屏幕的显示。./ 基于上述信息生成如下 udev rules 文件 - /etc/udev/rules.d/99-hdmi-hotplug.rules,这样无论当 HDMI 显示器连接还是断开的时候都会触发这个规则,并执行 hdmi-hotplug.sh 脚本代码。
2025-06-09 15:00:19
802
原创 Yocto meta-toradex-security layer创建加密数据分区应用说明
在上一篇文章中我们已经介绍如何使用layer 创建一个单独的分区。接下来我们将说明,如何在该分区上使用加密功能,读写性能测试,如果你还感兴趣,最后部分内容将阐述分区加密背后的原理。技术实现细节隐藏在 meta-toradex-security 的 recipes 里面,用户能够仅使用几行简单的配置即可开启分区加密。借助 meta-toradex-security,用户能够轻松而安全地使用加密分区,保护数据和应用。更多来自 meta-toradex-security 实用功能,我们将在后续文章介绍,敬请关注。
2025-05-28 12:02:00
955
原创 NXP iMX8MP ARM 平台多屏幕克隆显示测试
e). 将如下 0001-weston-imx-12.0.4-LF6.6.52_2.2.0-clone-mode-8MP.patch 补丁文件复制到 “.../oe_core/layers/meta-customer-demos/recipes-graphics/wayland/files” 目录即可。b). 如下修改 /etc/xdg/weston/weston.ini 来使能 clone mode。c). 重新启动后 DSI-HDMI 和 native HDMI 屏幕使能为 Clone 显示模式。
2025-05-09 16:58:02
1245
原创 Yocto meta-toradex-security layer 创建独立数据分区
虽然在 Yocto Project 中规划了一个 /data 下的分区,但该分区还是需要在模块上安装镜像时,由 Toradex Easy Installer 在模块的 eMMC 上创建。通过 meta-toradex-security,用户可以在编译镜像时轻松规划分区,并在运行时将其自动挂载。页面的说明,我们使用最新的 Linux BSP 7 版本。在创建和挂载分区时,local.conf 可以使用下面变量改变分区名字、挂载路径、是否自动挂载以及使用其他的挂载参数等,可以根据需要使用。
2025-04-24 14:35:29
908
原创 NXP iMX8MP ARM 平台 EMQX 部署测试
EMQX 是一款基于 Erlang/OTP 平台开发的开源 MQTT 消息服务器,广泛应用于物联网(IoT)领域,以实现设备到服务器以及服务器到设备的消息传递与控制,文本就基于 NXP i.MX8M Plus ARM 处理器平台,通过在 Yocto Linux BSP 中集成 Docker 环境来部署测试 EMQX。d). 此时在开发主机,通过浏览器通过如下网址可以查看已经运行的 EMQX 控制台页面,默认登录信息为 admin/public,可以后续自行更改密码。
2025-04-02 11:13:48
1215
原创 NXP iMX8QM 通过 SCFW 隔离 AP_M4 核资源
文章介绍了如何使用 SCU 划分不同的分区,将 AP 和 M4 之间做硬件隔离,并使用 SCFW 直接加载 M4 的固件,不仅提高系统可靠性,也将 M4 运行提前到 U-Boot 之前,加快启动速度。AP0:拥有运行 U-boot,Linux 的分区MCU0 和 MCU1:两个 Cortex-M4 核各自运行的分区Shared:共享资源的分区,例如将一段用于 rpmsg 通信的 RAM 区域划分到其中,AP 和 M4 就能够相互发送消息。为了实现 AP 和 M4 之间的硬件隔离,可以采用下面分区。
2025-03-21 10:51:24
1123
原创 Yocto Linux 量产 BSP 镜像定制
d). “imx-boot” 如章节 (c) 说明是 Verdin i.MX8MP 平台对应的 Boot Container 文件,如果需要修改底层 Bootloader,可以参考如下文章修改编译生成新的 “imx-boot” 文件后替换 BSP Image 镜像里面的文件。本文只将和定制量产镜像相关的参数着重说明。./ “u_boot_env” 参数定义了 U-Boot 启动动态加载的环境变量参数,可以将自定义的 U-Boot 环境变量参数更新到这个文件,刷写 BSP 镜像后启动即可以生效。
2025-03-06 12:00:58
1137
原创 ARM 处理器平台 eMMC Flash 存储磨损测试示例
本文基于 NXP i.MX8MM ARM 处理器平台说明和演示了 eMMC 寿命磨损测试的流程,同时由于测试是线性写入,得出的结果和实际应用具体情况可能有不同,不过在实际应用中,为了最大程度的增加 eMMC 存储器件的寿命和可靠性,在写入数据时候最好不要无论大小数据每次都直接写入磁盘,最好使用缓存将要写入的数据累积到一定量之后,根据具体 eMMC Optimal Write Size 来最终写入磁盘,以尽可能减少 WAF,提高磨损寿命。的说明使用上述下载的 BSP Image 制作启动 SD 卡。
2025-02-26 12:17:21
1290
原创 NXP iMX8MP 处理器基于 Linux 关闭 Debug Console 输出
g).通常情况上面保留SPLBootROM启动相关log打印即可满足需求,如果一定要完全去掉,就需要逐项查看对应的源代码,当前打印信息对应(BSP版本变更可能导致变化)以及修改patch请见如下,在对应源码中注释掉相关的“printf()/puts()”打印log输出代码重新编译即可,测试下来这样可以将启动时间缩短到13.8s左右。//如果只需要不显示部分Kernellog信息,则可以只设置增加如下环境变量即可,无需重新修改编译U-Boot。
2025-01-07 14:52:17
863
原创 ARM 处理器平台 Ethernet Compliance 测试流程示例
b). 配置完成后,点击“Start”开始测试,然后录入相关测试基本信息,测试过程中需要根据测试项目提示调整LeCroy TF-ENET-B 测试夹具两端的连接端口,测试完成后会自动生成测试报告,通过示波器的PDF 生成设置导出 PDF 测试报告文本。b). 首先将 LeCroy 808Zi-B 高速示波器 (配置 BNC-SMA 适配器)通过 SMA 线缆和 LeCroy TF-ENET-B 测试夹具SMA 端口进行连接,具体连接的端口依据需要测试的项目来调整。d).其他需要的线缆和附件。
2024-12-19 15:21:34
1115
原创 基于 NXP iMX8QM 运行 QNX
嵌入式领域的部分应用对安全、可靠、实时性有切实的需求,在诸多实现该需求的方案中,QNX 是经行业验证的选择。在 QNX SDP 8.0 上 BlackBerry 推出了 QNX Everywhere 项目,个人用户可以出于非商业目的免费使用 QNX 操作系统。得益于 Toradex 和 QNX 的良好合作伙伴关系,用户能够在 Apalis iMX8QM 和 Verdin iMX8MP 模块上轻松测试和评估 QNX 8 系统。下面将基于 Apalis iMX8QM 介绍如何运行 QNX。
2024-11-29 15:29:41
1158
原创 基于 NXP iMX8MP 平台简单测试 PySide6 应用
然后针对最新的 Qt6 版本,Qt for Python 项目也继续从 Qt 6.6 版本开始发布了最新的 PySide6 版本,本文就基于 NXP i.MX8M plus处理器平台简单测试 PySide6 的部署运行。b). 由于默认配置只包含了 meta-qt5 layer,因此需要参考如下操作将 meta-qt5 替换为 包含 PySide6 支持在内的 meta-qt6 layer,本文测试基于 Qt 6.6.x 版本,可以跟进实际需求改为不低于 Qt 6.6 的版本。
2024-10-30 10:57:39
1069
原创 Verdin AM62使用CODESYS
CODESYS 是基于 IEC 61131-3 的 PLC 开发工具,在工业控制、交通等领域中有着广泛的应用。文章将介绍如何在 Toradex 采用 TI AM62 SoC 的 Arm 计算机模块 Verdin AM62 使用评估版本的 CODESYS。使用 TI AM623/AM625 处理器,具有最多 4 个主频 1.4GHz 的 Cortex-A53 内核,以及一个 400MHz 主频的 M4F 核心。内存采用 LPDDR4,从 512 MB 到 2 GB 可供选择。eMMC 从 4~16 GB。
2024-10-11 15:16:01
982
原创 Verdin AM62 引脚复用配置
Verdin AM62 是 Toradex 基于 TI AM623/AM625 SoC 的 Arm 计算机模块。它最多提供 4 个 A53 和 1 个 M4F 处理器。这是 TI 基于其 K3 平台的处理器,虽然和 NXP 的 iMX8M Mini/Plus 都使用 A53 核心,但是由于架构不同,在 Linux 系统中配置外设的方式也不同。文章将介绍如何配置 AM62 的引脚复用关系。所使用的 AM623/AM625 处理器的 GPIO 控制器如下图所示。
2024-09-18 18:06:12
1207
原创 TI AM62X Secure Boot 流程简述
d). 需要注意的是由于Kernel阶段的Secure Boot相关认证和加载都是基于U-Boot 环境变量来实现的, 因此如果要让这个启动机制更加安全可靠,则要让U-Boot保持在上述安全启动路径,而不能通过其他启动介质或者脚本来启动而绕开 Secure Boot,比如 Toradex U-Boot默认是使能 Distro Boot 功能的,可以自动扫描外设介质的启动脚本,那么这个功能就需要关闭掉,类似这样的 U-Boot 定制化和启动路径固化可以参考如下文章,本文不做进一步介绍。
2024-09-18 17:48:12
2216
原创 基于 TI AM62 测试 QtWayland 部署
目前主流的 ARM 平台嵌入式 Linux BSP 的显示后端基本都已经从 X11 升级到了 Wayland, 而常用的 Wayland Compositor - Weston 对于 Linux 下常用的 Qt 图形界面开发框架的一些 Plugin (比如 Qt VirtualKeyboard) 的配合并不完善,因此本文就基于 TI AM62 处理器平台测试 Qt 提供的 Wayland Compositor - QtWayland 的部署测试。
2024-07-10 17:00:28
1117
1
原创 Verdin AM62 LVGL 移植
Verdin AM62 的 Linux 中已经实现了显示硬件驱动的配置,lvgl 只需要在 wayland 完成渲染显示即可,在 lv_drv_conf.h 不需要太多的设置,这里只设定了显示窗口大小。文章介绍了如何将 LVGL 移植到 Verdin AM62 模块上,由于底层显示驱动已经在 Linux 中配置,移植过程并不涉及硬件驱动,该方法同样也适用于除了 AM62 以外的其他模块。在 CMakeLists.txt 中添加了 Linux SDK 的安装目录,以及相关的头文件在 SDK 中对应的位置。
2024-04-29 15:25:58
910
原创 基于 NXP iMX8MM 测试 Secure Boot 功能
f). 需要注意的是由于Kernel阶段的Secure Boot相关认证和加载都是基于U-Boot命令行来实现的, 因此如果要让这个启动机制更加安全可靠,则要让U-Boot保持在上述安全启动路径,而不能通过其他启动介质或者脚本来启动而绕开Secure Boot,比如Toradex U-Boot默认是使能Distro Boot功能的,可以自动扫描外设介质的启动脚本,那么这个功能就需要关闭掉,类似这样的U-Boot定制化和启动路径固化可以参考如下文章,本文不做具体测试。
2024-04-25 16:37:17
1558
原创 Verdin iMX8MP 调试串口更改
例如在 imx8mp-verdin-u-boot.dtsi 中配置 UART1 对应的 pinctrl_uart1,并删除原来的 pinctrl_uart1。Verdin iMX8M Plus 具有四个串口,其中 UART3 是用于 A53 核心上的系统如 Linux 的默认调试串口,出于设计需要可能需要将调试口换到其他串口,文章将介绍如何使用 UART1 作调试串口。ATF 代码的 imx8mp_bl31_setup.c 中,把 RDC_PDAP_UART1 划分到 A53 所在的 D0 域。
2024-03-08 11:38:40
971
原创 NXP iMX8MM Cortex-M4 核心 GPT Capture 测试
NXP i.MX8 系列处理器均为异构多核架构 SoC,除了可以运行 Linux 等复杂操作系统的 Cortax-A 核心,还包含了可以运行实时操作系统比如 FreeRTOS 的 Cortex-M 核心,本文就演示通过 NXP i.MX8MM 处理器集成的 Cortex-M4 核心来运行 GPT (General Purpose Timer) 输入采集功能模块的测试。./ clock_config.h/clock_config.c 用于 i.MX8MM M4 核心基本时钟配置,本文不做修改。
2024-03-06 17:13:24
1609
原创 嵌入式Linux下使用 Plymouth 实现开机画面示例
嵌入式 Linux 下传统实现 Splash Screen 的方式是通过替换 kernel 默认的 TUX 小企鹅 logo 为定制的开机画面图片来实现嵌入式设备开机图片,虽然比较成熟且可以保证开机画面加载比较早,但是存在的问题首先是对嵌入式设备不同显示接口的兼容性不好,另外每次修改适配都需要重新编译内核,维护起来不是很方便,然后就是只能支持静态图片无法支持动画。j). 修改 build/conf/local.conf 文件,增加 Plymouth 和 initramfs 相关定义。
2024-01-26 14:31:50
2023
原创 Flutter 在嵌入式 Linux 的应用
在 data 目录下创建 flutter_assets 文件夹后,将 build/flutter_assets/ 中剩余的 AssetManifest.bin,AssetManifest.json,FontManifest.json,fonts,NOTICES.Z,packages 和 shaders 均移动到 data/flutter_assets 中。支持 KMS 和 DRI,3D 硬件加速。使用 Flutter 可以开发跨平台应用,并获得流畅的本地运行体验,在移动端和 Web 端都有广泛的应用。
2024-01-19 14:40:32
2456
原创 Apalis_iMX6_eMMC常驻ToradexEasyInstaller
Toradex Easy Installer 是 Toradex 计算机模块上出厂预装的软件,可以令开发人员首次安装不同的操作系统,同时也适生产线上模块的批量烧写作业。通常在安装系统后,Toradex Easy Installer 将被从模块的存储上擦除。本文将介绍如何使 Toradex Easy Installer 常驻在存储,并用其重装系统。实现该操作的方法为在存储设备上创建一个专门存放 Toradex Easy Installer 的分区。
2023-12-26 16:04:06
1023
原创 NXP iMX8MM 通过 TFTP和 NFS 启动示例
本文就基于 NXP iMX8MM ARM嵌入式平台演示 TFTP/NFS 启动的简单示例。-rw-r--r-- 1 simon simon 12981512 9月 2 00:35 Reference-Minimal-Image-upstream-verdin-imx8mm.bootfs.tar.xz。-rw-r--r-- 1 simon simon 38155936 9月 2 00:37 Reference-Minimal-Image-upstream-verdin-imx8mm.tar.xz。
2023-12-22 10:45:18
1173
原创 NXP iMX8M Plus Qt5 双屏显示
文章接下来将使用 Verdin iMX8M Plus 的 Arm 计算机模块演示如何方便地在 Toradex 的 Linux BSP 上实现在两个屏幕上显示独立的 Qt 应用。Qt 应用在 weston 环境中运行时会对应一个 app_id,例如 BSP 中默认的应用 /usr/share/cinematicexperience-1.0。在 /sys/class/drm 目录下可以看到两个 HDMI 接口,分别是 HDMI-A-1 和 HDMI-A-2,但是它们都属于同一个 DRM 接口 card1。
2023-12-01 11:53:24
1911
原创 扩展外部eMMC存储
iMX6 SoC 只有其中的两路 SDIO 才有 Reset 引脚,其中一路已经用于模块自身的 eMMC,另一路的 SD4_RESET 没有引出到模块的金手指上。这对于扩展的 eMMC 来说将失去硬件复位功能,只能采用断电复位 eMMC。对于存储器如 eMMC,写入的数据量决定其使用寿命,对于有大量日志记录的应用,通常可以选用一个大容量的存储设备。上面演示了如何在 Toradex 计算机模块上方便地扩展外部 eMMC,以及一些注意事项如 eMMC 接口的电压选择、调试期间的时钟设置和载板设计中的布线问题。
2023-11-23 14:31:30
537
原创 嵌入式Linux下运行 DotNet 应用简单示例
当然也可以选择添加 ASP .NET (aspnet-core) 和 Visual Studio Remote Debugger (vsdbg) 组件,需要注意 ASP .NET runtime 会包含 .NET runtime,因此两者不要同时添加。./修改 build/conf/local.conf 文件,增加 .NET 相关库组件,如果需要可以选择指定 .NET runtime 版本,本文编译测试没有指定,默认是支持的最高版本,当前是 7.0.11 版本。
2023-11-17 17:10:52
926
原创 NXP iMX8MM 修改 UART4至 Cortex-A53 核心
下载Toradex Ycoto Linux BSP Multimedia Image Quarterly 6.3.0+build.7版本,默认image通过Toradex Easy Installer安装后,将 /boot 目录下的默认 imx8mm-verdin-wifi-dev.dtb device-tree 文件替换为章节6 生成的文件后启动测试,由于没有修改 ATF (默认版本是v2.6(release):lf_v2.6-g3c1583ba0a),会报出 kernel Oops 错误。
2023-09-07 09:52:21
952
原创 Mainline Linux 和 U-Boot编译
U-Boot 补丁位于 meta-toradex-bsp-common/recipes-bsp/u-boot/u-boot-toradex 目录下。补丁顺序可以参看 meta-toradex-bsp-common/recipes-kernel/linux/linux-toradex-mainline_git.bb 文件。补丁顺序可以参看 U-Boot meta-toradex-bsp-common/recipes-bsp/u-boot/u-boot-toradex_2022.07.bb 文件。
2023-08-25 16:41:57
1434
原创 基于NXP iMX8MP处理器M7核心LVGL移植
除了上面的延时函数外,用于控制 ILI9341 数据/命令引脚 的 LV_DRV_DISP_CMD_DATA() 、复位ILI9341 的 LV_DRV_DISP_RST() 和 SPI 传输一个字节、多个字节的函数spi_transaction_one_byte(),spi_transaction_array ()也需要自己实现。LV_DRV_DELAY_US() 和 LV_DRV_DELAY_MS() 需要在自己的代码中实现(位于freertos_ecspi_loopback.c)。
2023-07-14 11:40:28
862
1
原创 嵌入式Linux下Dropbear SSH配置优化
的说明将上述修改下重新编译生成的 Ycoto Linux Image 通过 Toradex Easy Installer 更新到 Apalis iMX8 模块,此时测试无论本地串口登录还是远程SSH登录 root 用户都需要输入预设的密码了,增强了安全性。c). 为了进一步提高 SSH 安全性,可以创建普通 user 用户用于远程登录,而禁止 root 用户 SSH 远程登录。./ 禁止 root 用户 SSH 登录,参考如下 patch 修改 /etc/default/dropbear 文件。
2023-05-31 15:18:46
3111
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅