toradexsh的博客

www.toradex.cn

  • 博客(189)
  • 收藏
  • 关注

原创 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 528

原创 基于 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 792

原创 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 475

原创 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 1055

原创 嵌入式Linux下使用 Plymouth 实现开机画面示例

嵌入式 Linux 下传统实现 Splash Screen 的方式是通过替换 kernel 默认的 TUX 小企鹅 logo 为定制的开机画面图片来实现嵌入式设备开机图片,虽然比较成熟且可以保证开机画面加载比较早,但是存在的问题首先是对嵌入式设备不同显示接口的兼容性不好,另外每次修改适配都需要重新编译内核,维护起来不是很方便,然后就是只能支持静态图片无法支持动画。j). 修改 build/conf/local.conf 文件,增加 Plymouth 和 initramfs 相关定义。

2024-01-26 14:31:50 812

原创 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 1079

原创 Apalis_iMX6_eMMC常驻ToradexEasyInstaller

Toradex Easy Installer 是 Toradex 计算机模块上出厂预装的软件,可以令开发人员首次安装不同的操作系统,同时也适生产线上模块的批量烧写作业。通常在安装系统后,Toradex Easy Installer 将被从模块的存储上擦除。本文将介绍如何使 Toradex Easy Installer 常驻在存储,并用其重装系统。实现该操作的方法为在存储设备上创建一个专门存放 Toradex Easy Installer 的分区。

2023-12-26 16:04:06 867

原创 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 896

原创 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 1412

原创 扩展外部eMMC存储

iMX6 SoC 只有其中的两路 SDIO 才有 Reset 引脚,其中一路已经用于模块自身的 eMMC,另一路的 SD4_RESET 没有引出到模块的金手指上。这对于扩展的 eMMC 来说将失去硬件复位功能,只能采用断电复位 eMMC。对于存储器如 eMMC,写入的数据量决定其使用寿命,对于有大量日志记录的应用,通常可以选用一个大容量的存储设备。上面演示了如何在 Toradex 计算机模块上方便地扩展外部 eMMC,以及一些注意事项如 eMMC 接口的电压选择、调试期间的时钟设置和载板设计中的布线问题。

2023-11-23 14:31:30 137

原创 嵌入式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 553

原创 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 605

原创 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 1215

原创 基于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 436

原创 嵌入式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 2056 1

原创 基于NXP iMX8处理器扩展外部 SGTL5000 音频接口

Apalis iMX8 的数字音频接口可以非常方便地扩展音频编解码器,具体的引脚分配、device tree 配置等需要结合所使用的音频编解码器,有些可能会十分简单,如 MAX98357A,其甚至不需要 I2C 和 SYS_MCLK 就可以直接工作。iMX8 处理器具有多路 SAI 通道,SAI1 已经被模块片上的 SGTL5000 使用,SAI0 通道引出到模块金手指上,并且是兼容 Apalis 标准数字音频接口,该通道在基于其他 CPU 的 Apalis 模块也可以直接使用。

2023-04-19 17:49:29 1225 1

原创 基于NXP iMX8M Mini处理器测试DPDK

c). 由于默认的 oe-core/layers/meta-freescale/recipes-extended/dpdk/ 提供的 DPDK 19.11版本还未支持 iMX8MM,需要参考 NXP i.MX_Yocto_Project_User's_Guide 文档,下载 NXP imx-6.1.1-1.0.0 branch 代码来获取 DPDK 21.11 版本的 BB 描述文件。的说明下载 Linux Kernel 源代码, 对应 Branch 为 toradex_5.15-2.1.x-imx。

2023-04-11 14:45:47 729

翻译 在设计载板时添加USB-C - 第2部分

为了充分利用USB-C的 Super-Speed 信号功能,必须使用多路复用器以及使用CC引脚进行正确的电缆方向检测,如第一篇博客所解释的那样,以便多路复用器能够得到正确的控制。当向您的USB-C应用添加 Super-Speed 功能时,如前所述,所需的多路复用器用于将 Super-Speed 信号连接到电缆的正确一侧,这可以简单地由同一个 TUSB321芯片控制。USB 2.0的D+/D-引脚在插座上是对称的,这意味着不需要识别插入的电缆的方向,也不需要多路复用器来切换信号。

2023-03-29 16:51:23 288

原创 NXP iMX8系列处理器TSN网络时钟同步测试

本文就基于 NXP 最新的 i.MX8 系列 ARM 处理器平台进行 TSN 时钟同步的简单测试。

2023-03-16 16:57:13 798 1

原创 使用 YoctoProject集成Qt6

在嵌入式领域中 Qt 作为普遍选择的 UI 方案目前已经发布 Qt6 版本。本文将介绍如何为 Toradex 的计算机模块使用 Yocto Project 将 Qt6 集成到镜像里。

2023-03-10 11:35:16 737

原创 NXP iMX8系列处理器Pin Multiplexing定义说明

为了提高处理器的设计灵活性和可用性,NXP的所有i.MX系列处理器都配备了基于 IOMUX Controller (IOMUXC)和IOMUX来使能Pin Mux功能,使得一个特定的IO管脚可以选择不同的可能多达8种的功能定义模块(ALT0, ALT1, ALT2, ALT3...),同时为了适配不同的功能模块,IOMUXC可以对应配置管脚的配置参数(比如上拉/下拉,驱动能力等等)。本文就基于NXP最新的i.MX8系列平台说明Pin Mux的定义和配置方式。

2023-03-01 14:49:33 995

翻译 在设计载板时添加USB-C - 第1部分

本文是双篇文章系列的第一部分,旨在帮助您理解并实现在您的下一版电路板设计中使用USB-C

2023-02-20 13:14:29 516

原创 NXP iMX8平台上使用imx-gpu-sdk开发

Apalis iMX8 计算机模块采用了 NXP 的 i.MX 8 QuadMax 处理器。该处理器具有两个 Vivante GC7000/XSVX 单元,能够支持 OpenCL、OpenVX、OpenGL ES 。本文将介绍如何使用 NXP 提供的 imx-gpu-sdk 编译能够在 Apalis iMX8 运行的 OpenCL 和 OpenCV 应用。

2023-02-13 10:07:17 930

翻译 在 Linux 系统上 Docker 容器的性能影响

开发人员很少看到嵌入式应用程序在本地运行与在容器内运行的性能比较。随着容器被广泛使用,许多开发人员和系统管理员可能会偏向于认为容器在性能上可能与虚拟机和其他虚拟化技术类似。然而,这与事实相去甚远。虽然虚拟机有其应用场景,但它们在架构上与容器有所差异,这使得它们在设计上也非常不同,包括性能方面。两种方式之间的主要区别在于容器并不运行在虚拟化引擎(又称为 hypervisor)之上。相反,它们直接在您主机的内核上运行。在容器内启动进程与在设备本身上启动进程没有什么不同——除了虚拟化的隔文件系统。

2022-12-16 12:22:39 1292

原创 NXP iMX8M Plus M7核心FreeRTOS开发

如果 M7 的固件不大,则可以在 TCM 上运行。将 release 目录下编译好的 M7 固件重命名为 m7.bin,然后复制到模块的 /home/root/ 目录下。将 ddr_release 目录下编译好的 M7 固件重命名为 m7.bin,然后复制到模块的 /home/root/ 目录下。进入 SDK 安装目录的SDK_2_12_1_MIMX8ML8xxxKZ/boards/evkmimx8mp/multicore_examples/rpmsg_lite_str_echo_rtos/ 路径。

2022-11-22 11:53:14 1557

原创 嵌入式Linux上使用Ramoops

对于嵌入式设备,尽管在部署前会经历大量的测试和验证,但在使用现场有时候仍不可避免会出现意外情况,如 Kernel opps、panic。在 Linux 中还有许多其他的调试方法,如kdb, kdump, tracing 等,它们的使用特点和复杂程度也各有不同,用户可以根据需求加以选择。RAM 的物理地址空间为 0x10000000-0x4fffffff,选择在 Kernel code 和 Kernel data 之外的 0x30000000 作为 ramoops 的起始地址,大小为 1MB。

2022-09-23 15:44:26 759

原创 使用容器编译Yocto镜像

采用 Docker 容器可以免于配置 Yocto Project 的依赖环境,同时能够在不同的编译主机上方便地复用所下载的文件。该容器里面我们使用国内的 repo 源,便于在大部分网络环境里初始化编译所需的文件。minimal-image 没有图形框架,在模块上可启动的最小系统。或者只是单独编译某个软件,可以采用下面命令进入容器,在修改。所需的大部分文件,将其解压到你自己的编译目录,例如本文的。在使用上面的容器编译时就无需重复下载,缩短编译时间。,这里将会保存所有编译相关的文件,以及生成的。...

2022-09-01 17:43:03 783

原创 基于NXP iMX8测试Secure Boot功能部署

由于NXP从iMX8/iMX8x处理器开始引入了SCU/SECO等底层控制模块来进行包含启动管理等多项底层初始化功能,因此对于Secure Boot功能支持,也同样升级为Advanced High Assurance Boot (AHAB)特性来配合,以区别于iMX6/iMX8MM/iMX8MP处理器所使用的HABv4特性;AHAB和HABv4都是基于公共密钥加密(Public Key Cryptography)和数字签名(Digital Signature)技术来实现Secure Boot的...

2022-08-30 12:15:40 1475

原创 UBI只读文件系统

By Toradex胡珊逢在先前的文章我们已经介绍在使用 eMMC 的模块上配置只读属性的文件系统,以及利用 squashfs和overlayfs 挂载可写分区。Toradex 的产品除了使用 eMMC 存储外,还有部分是采用 Nand Flash,例如 Colibri iMX7 和 Colibri iMX6ULL。下面将以 Colibri iMX7 为例介绍如何配置只读属性的文件系统。由于存储介质不同,Nand Flash 上通常采用如 jffs2、UBI 等格式文件系统。Toradex 的 Linux

2022-07-06 16:54:49 1346

原创 通过Ycoto Project定制嵌入式Ycoto Linux镜像

简介嵌入式设备采用Embedded Linux操作系统进行开发已经越来越成为主流,但是如何将开发完成的Linux uboot/kernel配置,以及应用程序整合到Embedded Linux镜像中以便在量产的时候更方便的更新到嵌入式设备中可能是很多嵌入式开发者面临的挑战之一,而本文就以在Embedded Linux中使用比较广泛的Yocto project 为例,基于Openembedded开发框架定制嵌入式 Linux镜像。...

2022-06-23 12:41:05 783

原创 在嵌入式 Linux 设备上使用 Flutter 开发图形界面

​By Toradex胡珊逢在嵌入式设备上开发图形用户界面通常会选择Qt。这是一种经验证的方案,我们可以在多个领域看到用Qt开发的UI。但随着移动端和web端界面更为广泛地使用,源自于这两个领域的技术也开始向嵌入式设备渗透。Flutter就是一个例子。本文将介绍如何在Torizon平台上如何使用Flutter来开发用户界面。Google面向Android, iOS推出的跨平台移动应⽤开发框架Flutter可以构建高质量的原⽣⽤户界⾯,并可以扩展支持Web和桌面...

2022-04-24 11:23:15 7705

原创 TorizonQt容器中文显示

By Toradex胡珊逢Torizon系统的其中一个特色是以容器形式开发应用程序。Toradex提供了丰富的基础docker镜像加速客户应用开发,这包括Qt5。本文将介绍如何往docker镜像添加中文字体,并在Qt图形界面应用程序显示。Torizon的容器是基于debian构建,因此可以从丰富的debian软件源受益,用户能够通过apt命令安装任何支持Arm处理器的软件。有些字体文件也可以通过这种方法安装。例如支持中文的开源字体文泉驿。在Toriz...

2022-04-02 12:06:27 1144

翻译 IoT 安全系列博文第二篇:远程更新的危险

​ByJon Oster, Platform Development Lead, Toradex这是我们关于 OTA 的 7 篇系列文章的第 2 篇。 在第 1 篇中,我们向您介绍了能够远程实现软件更新的所有重要原因 - 在当今世界,您无法确保任何互联设备的安全,除非您可以对其进行更新。 然而,今天的文章却从相反的方向来探讨,我们将看看为什么软件更新系统会非常危险,以及为什么你应该对它们持怀疑和谨慎态度。您可以实施的最危险的系统如果您花点时间考虑一下远程更新系统可以实现功能,应该很清楚为什么..

2022-03-24 12:22:39 248

翻译 IoT 安全系列博文第三篇 软件更新安全:常见的错误

By Toradex Jon Oster这是我们关于 OTA 软件更新的 7 部分系列文章的第 3 篇。 在第 1 篇中,我们向您介绍了能够远程交付软件更新的所有重要原因,在第 2 部分中,我们介绍了软件更新系统危险的所有原因。 今天,我们将会探讨保护您的软件更新系统的方法,这些方法乍一看似乎是安全的,但实际上并非如此,每个示例都有现实世界中著名的故障。软件更新系统的组成部分让我们从最简单的系统开始。 有一个设备,它知道它可能需要更新。 为简单起见,我们还假设,更新是以单个文件的形式进行,并且设

2022-03-24 12:18:45 251

翻译 为什么我们需要远程自动更新互联设备?

简介随着近年来联网设备的爆炸式增长,整个行业都意识到需要在这些设备的整个生命周期内保持更新。这是探讨远程无线更新(OTA)概念的系列的第一部分,为设计人员提供在他们的系统中实施远程更新OTA解决方案时所需的详细信息。我们将特别关注重要的安全因素。我们将从基础开始。什么是OTA?远程更新OTA的概念很简单;允许署到现场的设备通过有线或无线连接进行更新。 我们已经习惯了需要更新电脑和手机。这类似于我们的手机平时更新应用程序以及整个操作系统; 每次发布新操作系统时,我们都不需要访问A...

2022-01-20 16:08:35 197

原创 基于NXP iMX6ULL 扩展音频解码器 MAX98357A

By Toradex胡珊逢Colibri iMX6ULL是Toradex面向低成本设备推出的Arm计算机模块。该产品没有音频编解码器,无法直接输出模拟音频信号。本文将介绍如何使用模块的数字音频I2S接口扩展MAX98357A,包括如何配置device tree和时钟。在Colibri iMX6ULL模块上的i.MX 6ULL SoC通过synchronous audio interfaces(SAI)接口提供数字音频接口,可以支持AC97或者I2S以连接外部音...

2022-01-07 10:53:37 2226 1

原创 导入C_C++应用到Torizon

By Toradex秦海1).简介对于初次使用Torizon的客户,可能会需要将现有的项目工程导入到Torizon开发环境,本文就基于一个中等规模的开源项目来演示如何借助Torizon Virtual Studio Code Extension来将其导入到Torizon,并进行编译和部署。本文所选择的是一个基于autotools编译框架的中等规模的项目,基本上符合大多数嵌入式应用的规模,通过整个流程演示来提供相关的思路和解决导入中遇到问题的线索,当然由于实际应用的不同以及所采用比如Make.

2021-12-24 11:57:44 237

原创 深入了解TorizonExtension

By Toradex胡珊逢Torizon是一种基于容器形式开发应用的操作系统。这不仅是指用户的应用在容器里面运行,应用的编译和调试也是需要借助容器。为了便于用户开发,Toradex推出的Visual Studio Code/Visual StudioTorizon Extension能够完成后台的容器配置,便于用户使用。本文将介绍Torizon Extension后台实现的流程,从而帮助用户更好地调试应用程序。总体来讲,开发语言可以分为两类,一种需要编译后在目标设备上运行,例如...

2021-12-14 15:12:03 370

原创 配置Torizon使用国内源

By Toradex胡珊逢Torizon的使用和开发都需要依赖外部网络。最常用到的两个源是docker hub和debian.org。文章将介绍如何配置开发电脑和Torizon,从而使用国内的站点加速下载过程。DockerDockerHub并没有位于国内的镜像站点,通常采用国内第三方提供的registry mirror进行下载,例如DaoCloud镜像站和阿里云镜像加速器。DaoCould提供公共的链接http://f1361db2.m.daocloud.io,阿里...

2021-12-08 15:07:40 166

原创 NXP iMX8X 基于Linux配置启动画面

By Toradex秦海1).简介Linux开机启动画面(Splash Screen)是指在Linux启动时候显示的图片,通常包含U-boot splash screen和Linux kernel splash screen两部分组成,默认情况下Linux只是输出一些传统的小企鹅图标和启动Console命令行,但嵌入式设备都需要定制自己开机画面,本文就基于NXP iMX8X ARM处理器平台测试配置启动画面。本文所演示的平台来自与Toradex Colibri iMX8X计算机模块,由于T.

2021-12-01 14:55:07 1270

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除