Multi Source Translation Content

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Multi Source Translation Content

Discussions

Sort by:
KSDK list of documents Documentation for current KSDK 1.3 is located under C:\Freescale\KSDK_1.3.0\doc Application Notes and another documents are located under Software Development Kit for Kinetis MCUs|NXP   There are more documents, which were created:   KSDK 2.0 How to: install KSDK 2.0 Introducing Kinetis SDK v2 Using Kinetis Design Studio v3.x with Kinetis SDK v2.0   KSDK 1.3 How to add SD card support in the composite msd_cdc demo[KSDK 1.3] KSDK Clock configurations and Low Power modes with Processor Expert New Kinetis SDK Project Generator v2 is available! KSDK Project Generator - BUG workaround KSDK 1.3 Documents Plugin in KDS - is available now! KSDK 1.3.0 Documents Plugin for KDS 3.0.0   KSDK 1.2 Interrupt handling with KSDK and Kinetis Design Studio Creating a New USB project with KSDK and Processor Expert support in KDS IAR MQX TAD solution for "Unknown error" in Task error code (with KSDK) How to Add lwIP to KDS3.0 Project How to: Create a New FreeRTOS for KSDK1.2 Project in KDS3.0 How to Create a C++ Project Using MQX RTOS for KSDK1.2 How to implement a USB Device MSD demo based on KSDK PEx components and KDS 3.0 How to: execute the demo HVAC on lwIP TCP/IP Stack in KSDK Kinetis SDK FAQ Adding TAD shell in KSDK shell demo FRDM-KL43Z and KL33Z - standalone package New KSDK 1.2. is available! Getting started with KSDK: Building the demo applications   KSDK 1.1 KSDK 1.1 Release How to create copy of KSDK example in KDS UART Example with KSDK   KSDK 1.0 Create new KSDK Projects Kinetis SDK and FRDM-K64F Sharing one documentation issue in KSDK 1.0 demo user guide General
View full article
i.MX L3.14.52_1.1.0 GA & i.MX 6SoloX FreeRTOS GA Release Announcement [1] The Linux L3.14.52_1.1.0 GA and i.MX 6SoloX FreeRTOS release is now available on www.nxp.com Files available: # Name Description 1 fsl-yocto-L3.14.52_1.1.0-ga.tar.gz Linux 3.14.52_1.1.0 BSP documentation. 2 L3.14.52_1.1.0-ga_images_MX6QDLSOLO.tar.gz i.MX 6Quad, i.MX 6Dual, i.MX 6DualLite, i.MX 6Solo Linux Binary Demo Files 3 L3.14.52_1.1.0-ga_images_MX6SLEVK.tar.gz i.MX 6SololiteEVK Linux Binary Demo Files 4 L3.14.52_1.1.0-ga_images_MX6SXALL.tar.gz i.MX 6SoloX Linux Binary Demo Files 5 L3.14.52_1.1.0-ga_images_MX6UL.tar.gz i.MX 6UltraLite Linux Binary Demo Files 6 L3.14.52_1.1.0_ga-mfg-tools.tar.gz i.MX Manufacturing Toolkit for Linux L3.14.52 BSP 7 L3.14.52_1.1.0-ga_gpu-tools.tar.gz L3.14.52_1.1.0 i.MX VivanteVTK file 8 FreeRTOS_BSP_1.0.0_iMX6SX.exe FreeRTOS™ BSP for the i.MX 6SoloX ARM® Cortex®-M4 core. --- Windows installer 9 FreeRTOS_BSP_1.0.0_iMX6SX.tar.gz FreeRTOS™ BSP for the i.MX 6SoloX ARM® Cortex®-M4 core. --- Linux installer Target boards: i.MX 6Quad SABRE-SD Board and Platform i.MX 6DualLite SABRE-SD Board i.MX 6Quad SABRE-AI Board i.MX 6DualLite SABRE-AI Board i.MX 6SoloLite EVK Board i.MX 6SoloX SABRE-SD Board i.MX 6SoloX SABRE-AI Board i.MX 6UltraLite EVK Board What’s New: LinuxBSP New features added for all supported boards: Yocto Project upgraded to version 1.8 Fido. Supports the GCC 4.9.2 toolchain. The Linux kernel is upgraded to v3.14.52. The U-Boot is upgraded to 2015.04. New graphics features: GPU driver upgraded to Vivante v5.0.11p7.4. DirectFB support removed. XWayland support added. Last release to provide graphics software floating point binaries. New multimedia features and changes: Qt 5.5 support integrated, which supports hardware accelerated QML video. Qt 5 is not supported for SoC without hardware graphics. Qt 5 video is not supported on SoC without VPU. Video compositing plugins based on PXP are supported. GStreamer playback engine API is supported, providing high level APIs for media playback and operations. Video overlay composition meta (meta:GstVideoOverlayComposition) is supported in i.MX video sinks, convert and compositor. This feature accelerates the text image (such as subtitle, timestamp) blending with video in these plugins with hardwares. Supports the Broadcom/Murata BCM4339 Bluetooth/Wi-Fi module. FreeRTOS: Add Peripheral support: i.MX 6SoloX ADC, i.MX 6SoloX CCM, i.MX GPIO, i.MX I2C, i.MX MU, i.MX UART, i.MX WDOG, ECSPI, EPIT, FlexCAN, LEME, RDC, SEMA4 Add Multi-core communication support: RPMsg More details, please refer to formal Release Notes.
View full article
1280x720.mjpg libvpuwrap 1.0.46 解码器测试的测试输入 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 抱歉,我找不到可以分享此输入文件的地方。这是为了重现我在 i.MX6Q VPU 上使用 FSL 3.10.17 BSP 的损坏的 MJPG 解码结果中报告的 VPU JPEG 解码器问题​ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 抱歉,我找不到可以分享此输入文件的地方。这是为了重现我在 i.MX6Q VPU 上使用 FSL 3.10.17 BSP 的损坏的 MJPG 解码结果中报告的 VPU JPEG 解码器问题​
View full article
如何使用 KDS 和 KSDK 将 RTCS 添加到处理器专家项目 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 大家好, 根据如何:使用来自 macl 和 dereksnell 的 Kinetis Design Studio IDE 中的处理器专家为 KSDK 项目创建 MQX RTOS, 您可以在附件文档中找到使用 KSDK1.2 和处理器专家将 RTCS 包含到 KDS3.0 项目以及最终项目的步骤。 感谢RBORB提供此流程的初稿。 有关使用 MQX 而不使用 Processor Expert 创建新 KSDK 项目的信息,请参阅以下文档。 如何:在 KDS 中为 KSDK 项目创建新的 MQX RTOS 如果您正在寻找一份简单的文档来开始使用 KSDK,请参阅以下文档。 编写我的第一个KSDK1.2KDS3.0 中的应用 - Hello World 和使用 GPIO 中断切换 LED 此致, 卡洛斯 回复:如何使用KDS和KSDK将RTCS添加到处理器专家项目中 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我按照这个出色的教程,在基于 MK66FX1M0VLQ18 的定制硬件上开始了我的项目。 所有 KSDK 固件包(HAL 库、DRV 驱动程序和中间件)都与评估目标 FRDM-xxx 和 TWR-xxx 上提供的示例很好地集成在一起。但是(就像当我开始使用 CodeWarrior 10.1 和 MQX 3.7 处理 Kinetis CPU 时一样),移植在不同于评估板的目标上运行的 Kinetis 示例项目非常困难。此外,很难从用户位置的 KSDK 文件夹树导出自己的 Kinetis 项目。 MQX 4.0 附带 BSPCloningWizard 工具,这正是我一直想在我的定制硬件上启动新项目的工具。不幸的是,KSDK 还没有这样的工具。 所以,我认为从今天开始用 KDS 3.0.0 启动一个新的 Kinetis 项目+ PEx + KSDK 1.3.0 是定制硬件的最佳方式。Processor Expert 生成应用程序所需的 HAL、驱动程序和 MQX RTOS 的所有代码。并且该项目是在自定义文件夹中创建的,没有任何指向 KSDK 文件夹树的链接。精彩的! 如果我的项目需要处理 TCP/IP 堆栈和/或文件系统,通过本教程我可以将 RTCS 和/或 MFS 库添加到我的项目中。不幸的是,如何在我的定制硬件上移植和构建 RTCS 和 MFS 项目? 也许,Erich Styger 可以帮助我们...... 我在http://mcuoneclipse.com/2015/10/28/tutorial-lwip-with-the-freertos-and-the-freescale-frdm-k64f-board/上找到了他的教程,他用KDS+PEx+KSDK创建了一个项目,将lwIP源文件夹添加到他的项目中,并调整编译器设置的包含路径。 将 RTCS 和 MFS 源文件夹添加到项目中是解决在自定义硬件上移植和构建 RTCS 和 MFS 库的正确方法吗? 回复:如何使用KDS和KSDK将RTCS添加到处理器专家项目中 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 因为我有一块 FRDM-K64F 板,就像例子中描述的那样,所以这对我来说很有用。但我不清楚如何将这个过程转移到不同的目标板。如果有人没有 FRDM-K64F、TWR-K60D100M、TWR-K64F120M 或 TWR-K65F180M(四个具有导入路径的目标),那该怎么办?我的真正目标是使用 MK64FN1M0VLQ12,它与 FRDM-K64F相似,但肯定不匹配。 那么,在按照 PowerPoint 文件中的说明进行操作之前,如何为不同的硬件目标设置 RTCS 项目? 谢谢! 回复:如何使用KDS和KSDK将RTCS添加到处理器专家项目中 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 非常好的例子! 非常非常有用 - 10X。 我有时会观察到一个奇怪的现象: 即使 ETH 电缆断开,ETH phy led 仍指示链接(绿色 led)。 这可以避免 ETE 传递数据包。 仅在使用调试器时才观察到这一点' 所以我推测 PHY init 可能是原因。 我该怎么办? 回复:如何使用KDS和KSDK将RTCS添加到处理器专家项目中 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,罗杰, 您可以在此处找到向当前 MQX-KSDK 和 PEx 项目添加 MFS 和 Shell 支持所需的步骤。如何为新的 MQX RTOS for KSDK 和 PEx 项目添加 MFS 和 Shell 支持 我希望这能对你有帮助, 顺祝商祺! 艾萨克 回复:如何使用KDS和KSDK将RTCS添加到处理器专家项目中 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,罗杰, 是的,但是队列中还有许多其他项目,我们无法确定何时可以创建该文档。 带来不便敬请谅解。 卡洛斯 回复:如何使用KDS和KSDK将RTCS添加到处理器专家项目中 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,卡洛斯 您有机会和您的团队交谈吗? 此致敬礼 罗杰 回复:如何使用KDS和KSDK将RTCS添加到处理器专家项目中 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 谢谢罗杰, 听起来不错,我会和我的团队讨论一下。 此致, 卡洛斯 回复:如何使用KDS和KSDK将RTCS添加到处理器专家项目中 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,卡洛斯 该指南非常有帮助。 如果能有一个用于通过 SDCARD 添加 MFS 的功能就好了? 此致敬礼 罗杰 回复:如何使用KDS和KSDK将RTCS添加到处理器专家项目中 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,罗杰, 您需要构建第一个 RTCS 库。对于 FRDM-K64,您可以在这里找到: C:\Freescale\KSDK_1.2.0\中间件\tcpip\rtcs\build\kds\rtcs_frdmk64f 我忘了在指南中提到这个要求。我会更新它。 此致, 卡洛斯
View full article
APF-IND-T1642 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> キットには、FRDM-34931S-EVB、FRDM-KL25Z、電源、ブラシ付きDCモーター、およびmbed™サイトのGUIが含まれます。mbedサイトからGUIをロードして使用してモーターを駆動する方法、PExソフトウェアについて説明し、産業用アプリケーション向けのMC34931Sの強みについて説明します。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> キットには、FRDM-34931S-EVB、FRDM-KL25Z、電源、ブラシ付きDCモーター、およびmbed™サイトのGUIが含まれます。mbedサイトからGUIをロードして使用してモーターを駆動する方法、PExソフトウェアについて説明し、産業用アプリケーション向けのMC34931Sの強みについて説明します。
View full article
无用户界面的 mx8_ddr_stress_test i.MX8/i.MX8X/i.MX8DXL 具有 DDR 压力测试工具。这是一个窗口 UI 程序。 在某些情况下,i.MX 设备处于安全锁定状态。需要已签名的镜像才能运行。 例如,对单元故障字段进行返回分析,在现有的板上切换新的 DDR 部件。 i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus Re: mx8_ddr_stress_test 无用户界面 mx8_ddr_stress_test(无 UI)的主要目的是处理和分析现场返修的、已启用安全关闭功能的设备。它使用与产品设备相同的DDR配置。 您的问题对我来说不太清楚。我想说,如果DDR压力UI版本可以实现,那么没有UI也可以实现。但它无法动态加载不同的配置。 这里是知识库空间。我只想回答有关“mx8_ddr_stress_test without UI”的问题。我不希望其他人感到困惑。 感谢您的理解。 如果您需要针对新的 DDR 硬件配置生成新的配置参数。您可以使用RPA生成符合您设计的内容。 请向恩智浦社区提交问题工单。我的同事会帮助您。
View full article
所有电路板的 GPIO 测试常见问题解答(FAQ) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 虽然您可以自行开发驱动程序来在内核空间中控制 GPIO,但从用户空间访问 GPIO 有一种更为简便的方法。当时间要求不严格时,您可以使用 GPIO-SYSFS。 SYSFS 是一个虚拟文件系统,它将内核内部框架的一些功能导出到用户空间,而 GPIO 是可以通过 SYSFS 导出功能的框架之一。 GPIO-SYSFS 功能自内核 2.6.27 版本起,在所有主线内核中均已可用。 配置内核以通过SYSFS导出GPIO 要在 SYSFS 中启用 GPIO,请选择以下内核选项: 设备驱动程序 ---> --- GPIO 支持 [*] /sys/class/gpio/... (sysfs 接口) 如果您使用的是 i.MX233 或 i.MX28,在重新编译内核后,请务必重新生成引导流,因为即使在 ltib 环境下,这一操作也不会自动完成。 请确认您打算使用的引脚确实可用作 GPIO 引脚,且未被内核请求(gpio_request)。如果某个引脚已通过 gpio_request 进行了请求,您需要在内核中使用 gpio_export 导出该引脚,以便通过 SYSFS 进行访问。若引脚未被默认配置为 GPIO,您需要在 /arch/arm/mach-XXX中的相应文件中设置 IO MUX。 在用户空间访问GPIO 启用 GPIO-SYSFS 功能后,您可以使用新内核启动设备,以进行一些测试。 首先,您需要将要测试的 GPIO 导出到用户空间: echo XX > /sys/class/gpio/export XX 应由以下算法确定: GPIOA_[B] 是您需要导出的 GPIO,其中,“A” 表示 GPIO 组,“B” 表示该组中引脚的偏移量。若第一个可用的 GPIO 存储区是 0 // (例如 iMX.28) XX = A×32 + B; 否则 // 第一个 GPIO 存储区是 1 XX = (A-1)×32 + B; 导出 GPIO 引脚后,您将能够看到 GPIO 接口被导出到: /sys/class/gpio/gpioXX 通过该接口,您现在可以执行一些操作,例如: # 读取引脚值 cat /sys/class/gpio/gpioXX/value # 更改引脚方向 echo in > /sys/class/gpio/gpioXX/direction echo out > /sys/class/gpio/gpioXX/direction # 切换 GPIO 输出电平 echo 0 > /sys/class/gpio/gpioXX/value echo 1 > /sys/class/gpio/gpioXX/value 需要特别注意的是,通过 GPIO 虚拟文件系统,每次只能操作一个 GPIO 引脚(每个命令仅针对一个引脚)。 关于:所有电路板常见问题解答 GPIO 测试 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 这或许是个愚蠢的问题,但我要怎样才能知道哪个引脚在物理上与 gpioXX 相连呢?
View full article
[Zephyr ® Series] Part 4: Overview and Practical Applications of Kconfig and Device Trees (Japanese Blog) Zephyr-series-4-title.png   From this point on, we'll be moving on to the advanced topics of Zephyr. This session will cover an overview of Kconfig and device trees, followed by hands-on programming exercises to help you utilize them effectively.   One of the key features of Zephyr RTOS, as mentioned previously, is its software scalability (reusability), which makes it easy to reuse software developed once in other projects or derivative products, enabling rapid development.   Furthermore, to support a wide range of hardware platforms, Zephyr employs a powerful configuration system called "Kconfig" and "Devicetree".   This allows you to port programs to different microcontroller boards simply by changing configuration files, without having to rewrite the source code in the same C/C++ language. This article explains the basic mechanisms of Kconfig and the device tree. As a practical application, we will modify the hardware-independent LED blinking program created in Part 3 to run on two different microcontroller boards: " FRDM-MCXA153 " and " FRDM-MCXN947 ".   To run the same application on different boards (microcontrollers and processors), we will explain practical programming methods using Kconfig and the device tree.     table of contents   Preparation Kconfig Basics Device tree fundamentals Best practices for improving software reusability Kconfig and the Device Tree in Practice Create a simple program (hands-on) 1. Program Specifications 2. Directory structure 3. Create Kconfig and prj.conf 4. Creating device tree overlays and board-specific settings 5. Hardware-independent common code (main.c) Create 6. Build and run summary Preparation   Hardware preparation   This article will primarily use the following boards to create and test programs. FRDM-MCXA153 (main use) Additionally, the following boards will be used as supplementary tools to verify the portability of the program you have created. FRDM-MCXN947   SW preparation   This guide assumes that you have already set up the Zephyr development environment (Zephyr SDK, West command, etc.). If you haven't set it up yet, please refer to the second article on environment setup. [Zephyr ® Series] Part 2: First Build and Testing (Japanese Blog)   We will be using the LED blinking program created in the third installment of the Zephyr series. If you haven't created it yet, we recommend creating it by referring to the previous article. [Zephyr ® Series] Part 3: First Steps in Blinking an LED and Software Reusability (Japanese Blog)   Kconfig Basics     Kconfig is a configuration system also used in the Linux kernel. In Zephyr, it is used to manage whether to "enable or disable" software features, or "what parameters to set," such as kernel functions, device drivers, subsystems, and application-specific settings. The following two files are important for Kconfig: The "Kconfig" file defines the selectable configuration items (symbols), their default values, and dependencies. "prj.conf" file *: This file is where application developers specify the values they want to set for items defined in "Kconfig" (such as enabling them with "y" or providing specific numerical values). Using Kconfig, you can exclude unnecessary code from compilation and optimize memory usage. Furthermore, the Kconfig and prj.conf files are all written in text format. How to enable the feature The prj.conf file enables features for the entire project. For example, the ADC, DAC, and OPAMP drivers are defined in Kconfig. When using the functions defined in Kconfig, you declare them by adding "CONFIG_" to the beginning of prj.conf. Kconfig:ADCの定義Kconfig: ADC definition prj.conf例prj.conf example   Device tree fundamentals   Devicetree例Example of a device tree   The device tree is a text file that describes what hardware (CPU, memory, peripherals, pin settings, etc.) a microcontroller supports, as well as the settings and configuration of that hardware. These settings and configurations are then expanded into macros.   Instead of directly writing hardware addresses into C code (hardcoding), information described in the device tree can be read through Zephyr macros, enabling hardware-independent programming. Nodes and Properties: Each element of hardware is represented as a "node" in a hierarchical structure, and register addresses, interrupt numbers, etc., are described as "properties." ".dts" and ".dtsi": Standard hardware configurations for each microcontroller and board are predefined within the Zephyr repository in ".dts" (Devicetree Source) and ".dtsi" (Include) files. dts: Described as the device tree of the board. dtsi: Describes the device tree of an SoC/microcontroller and is provided by the device manufacturer. ".overlay" file: This file is created when you want to override application-specific wiring (e.g., connecting an LED to a specific GPIO pin) or default settings.   Best practices for improving software reusability   To enhance software reusability in Zephyr, it is important to follow the following design principles: Separation of hardware-dependent and hardware-independent parts: C code (`main.c`) For example, avoid directly writing about specific microcontroller register operations or pin numbers. Leverage device tree aliases: Instead of directly referencing actual hardware nodes (e.g., `&red_led` or `&gpioa`), applications should reference abstract names defined in the `aliases` node (e.g., `led0`). This allows you to adapt to different boards simply by changing what the alias points to. Prepare a board-specific device tree (overlay) : When there are differences in some functions, such as in derivative products, you can overwrite (overlay) only the parts with hardware differences for each board. Switching features with Kconfig : Application behavior parameters and the on/off status of specific features are controlled using Kconfig symbols instead of C language "#define".   Kconfig and the Device Tree in Practice   From here, we will learn how to use Kconfig and the device tree by creating a simple program so that we can actually use them in practice .     Create a simple program (hands-on) The program will be created by modifying the LED blinking program we created last time, and will have the following specifications.   Here, as a practical exercise, we will create a common application that runs on both "FRDM-MCXA153" and "FRDM-MCXN947". 1. Program Specifications Source code : Use the code from "Part 3: Your First LED Blinking Program" and make the following modifications. LED blinking speed: The blinking interval can be set using Kconfig. Button Function (Enable/Disable): The button function can be enabled or disabled via Kconfig settings. When enabled, pressing the button will toggle between blinking and constant illumination of the LED. Outputting board name: At startup, the "device (board) name" configured in Kconfig will be output to standard output (terminal). 2. Directory structure   The project directory structure should be as follows:   Add the Kconfig file and boards folder to the "my_hello" folder of the LED blinking program you created last time. Any method of adding the files is fine. On Windows, use the PowerShell `ni` command or a text editor to create a new file and save it in the `my_hello` folder. In Linux, you can create a new, empty file using the `touch` command.   The files under "boards/" handle hardware differences and unique settings specific to each board.     my_hello/ ├── CMakeLists.txt ├── Kconfig <- 新規追加:アプリ独自のKconfig ├── prj.conf <- アプリの共通設定 ├── src/ │ └── main.c <- ハードウェア非依存の共通コード └── boards/ <- 新規作成フォルダ  ├── frdm_mcxa153.overlay <- 新規作成:FRDM-MCXA153用のデバイスツリー設定  ├── frdm_mcxa153.conf <- 新規作成:FRDM-MCXA153用のKconfig設定  ├── frdm_mcxn947_cpu0.overlay <- 新規作成:FRDM-MCXN947用のデバイスツリー設定  └── frdm_mcxn947_cpu0.conf <- 新規作成:FRDM-MCXN947用のKconfig設定   Note : By creating specific files within your application's directory, Zephyr's build system (West) will automatically recognize them and apply the settings. Adding Kconfig: You can add your own configuration symbols by placing a "Kconfig" file in your Applications folder. Board-specific settings ("boards/" directory): By creating a "boards" directory within your application and placing "[board name].overlay" or "[board name].conf" files there, the overlay and Kconfig overrides will be automatically applied only when building with that board as the target.   3. Create Kconfig and prj.conf First, create your own "Kconfig" in the application root directory and define application-specific parameters. my_hello/Kconfig   mainmenu "my LED blink" config CUSTOM_BLINK_RATE_MS int "LED blink rate in milliseconds" default 1000 help Set LED blink frequency. #LEDの点滅周期(ミリ秒)を設定します config ENABLE_BUTTON_TOGGLE bool "Enable button to toggle LED state" default y help Enable button to toggle LED state. # ボタン入力によるLEDの点滅/点灯状態>の切り替え機能を有効にします。 config BOARD_NAME_STRING string "Board Name String" default "Unknown Board" help Set board name for printf. # 標準出力に表示するボード名を設定します。 source "Kconfig.zephyr"     Next, as a common setting for the entire application, there is "prj.conf". This will be written. In this prj.conf file, use the Kconfig symbol you just created to configure it as follows: my_hello/prj.conf   # GPIOの有効化 CONFIG_GPIO=y # アプリケーションの共通設定 CONFIG_CUSTOM_BLINK_RATE_MS=500 CONFIG_ENABLE_BUTTON_TOGGLE=y   4. Creating device tree overlays and board-specific settings Create a directory called "boards" and prepare the necessary files for each board. Main board for FRDM-MCXA153     We map the button on the board (`sw2`) so that it can be accessed from the application using the standard alias `sw0`. `led0` is already in the board definition so it can be omitted here, but it can be explicitly overridden if needed.   my_hello/boards/frdm_mcxa153.overlay / { aliases { sw0 = &user_button_2; /* FRDM-MCXA153のユーザーボタン */ }; };   my_hello/boards/frdm_mcxa153.conf   CONFIG_BOARD_NAME_STRING="FRDM-MCXA153 Board"   By referencing the symbols in this .conf (board-specific Kconfig) within the application (main.c), it becomes possible to output the board name to standard output using the printf function. For FRDM-MCXN947 Similarly, we define "sw0" in the FRDM-MCXN947. This handles any differences in the hardware names of the buttons.   In fact, if the hardware names (which differ depending on the peripheral or instance) vary across boards, you assign the actual hardware to the alias node in the device tree. my_hello/boards/frdm_mcxn947_cpu0.overlay   / { aliases { sw0 = &user_button_3; /* FRDM-MCXN947のユーザーボタン */ }; };   my_hello/ boards/frdm_mcxn947_cpu0.conf   I'll try overriding the LED blinking speed to 250ms only when building with MCXN947.   CONFIG_BOARD_NAME_STRING="FRDM-MCXN947 Board" CONFIG_CUSTOM_BLINK_RATE_MS=250 The application code is the same for FRDM-MCXA153 and FRDM-MCXN947, but you can configure the blinking behavior of the LED separately here. 5. Hardware-independent common code (main.c) Create Write the following in "my_hello/src/main.c":   The LED control section reuses the hardware-independent code (using the "led0" alias) created in the previous article, and incorporates Kconfig and button control into it. my_hello/ src/main.c   #include #include #include /* Devicetreeのエイリアスを参照する */ /* どのボードでも、一番目のLEDは通常 "led0" と定義されています */ #define LED0_NODE DT_ALIAS(led0) #define SW0_NODE DT_ALIAS(sw0) /* エイリアスからGPIO仕様(ポート、ピン、フラグ)を取得 */ static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(LED0_NODE, gpios); /* ボタン機能がKconfigで有効化されている場合のみコンパイルされる部分 */ #ifdef CONFIG_ENABLE_BUTTON_TOGGLE static const struct gpio_dt_spec sw = GPIO_DT_SPEC_GET(SW0_NODE, gpios); static struct gpio_callback button_cb_data; static bool is_blinking = true; void button_pressed(const struct device *dev, struct gpio_callback *cb, uint32_t pins) { is_blinking = !is_blinking; if (!is_blinking) { /* 点滅オフ時はLEDを点灯させた状態にする */ gpio_pin_set_dt(&led, 1); } } #endif //CONFIG_ENABLE_BUTTON_TOGGLE int main(void) { int ret; /* Kconfigで設定されたボード名を出力 */ printf("Starting application on %s\n", CONFIG_BOARD_NAME_STRING); /* デバイスの準備確認 */ if (!gpio_is_ready_dt(&led)) { return -1; } /* ピンの設定 (Devicetreeで定義された初期状態などを考慮して設定) */ ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE); if (ret < 0) { return -1; } #ifdef CONFIG_ENABLE_BUTTON_TOGGLE if (!gpio_is_ready_dt(&sw)) { return -1; } ret = gpio_pin_configure_dt(&sw, GPIO_INPUT); if (ret < 0) { return -1; } ret = gpio_pin_interrupt_configure_dt(&sw, GPIO_INT_EDGE_TO_ACTIVE); if (ret < 0) { return -1; } gpio_init_callback(&button_cb_data, button_pressed, BIT(sw.pin)); gpio_add_callback(sw.port, &button_cb_data); #endif //CONFIG_ENABLE_BUTTON_TOGGLE while (1) { #ifdef CONFIG_ENABLE_BUTTON_TOGGLE if (is_blinking) { ret = gpio_pin_toggle_dt(&led); } #else /* ピンの状態を反転 (ボタン機能が無効な場合は常に点滅) */ ret = gpio_pin_toggle_dt(&led); #endif //CONFIG_ENABLE_BUTTON_TOGGLE /* Kconfigで設定された点滅間隔で待機 */ k_msleep(CONFIG_CUSTOM_BLINK_RATE_MS); } return 0; }     6. Build and run Now, let's actually test its functionality. Please refer to the previous article for instructions on setting up the build environment and enabling the west command. First, navigate to the directory of your installed zephyrproject repository as shown in the command instructions below, enable west, and then proceed. Operation confirmed with FRDM-MCXA153 (main) Build using the following command and write it to the FRDM-MCXA153.   ## ホームディレクトリからZephyrprojectディレクトリに移動 cd ~/zephyrproject ## west環境を有効化 source .venv/bin/activate ## zephyr v4.3をチェックアウトしていない場合は、前回(第3回 初めてのLチカとソフトウェアの再利用性)を参考にv4.3をチェックアウトしてください。 west build -b frdm_mcxa153 my_hello west flash     Execution result   コンソール出力Console output   LED点滅、点灯モード切り替えLED flashing and steady light mode switching   The message "Starting application on FRDM-MCXA153 Board" will appear in the terminal. The LED blinks at 500ms intervals ("prj.conf"). (Settings). Pressing SW2 ("custom-sw") will turn it on, and pressing it again will return it to blinking. Operation confirmed with FRDM-MCXN947 We'll build the project using the exact same C source code, only changing the board specification.   # -pオプションを使用し、frdm_mcxa153のビルド情報をクリーンしてビルドします。 west build -p -b frdm_mcxn947//cpu0 my_hello west flash   Execution result   The contents of "boards/frdm_mcxn947_cpu0.conf" will be automatically applied, and the terminal will display "Starting application on FRDM-MCXN947 Board". The LED blinks rapidly at 250ms intervals (configured in "prj.conf"). Pressing SW3 (the button mapped to "user_button_3" on the MCXN947) will similarly switch between LED illumination and blinking. While the FRDM-MCXA153 and FRDM-MCXN947 use different GPIOs for controlling LEDs and switch buttons, the device tree effectively absorbs these differences, demonstrating how cleanly the application program and hardware are separated.   summary     In this session, we learned the basics of Kconfig and device trees in Zephyr, and practiced techniques to separate hardware-dependent parts from C code by utilizing them.   I believe you've experienced a powerful mechanism for reusing the same source code across multiple different boards, where hardware settings are absorbed by the device tree overlay (".overlay"), application parameters can be flexibly changed and features can be easily enabled or disabled using board-specific Kconfig files (".conf").   ========================== We are currently unable to respond to comments left in the "Comment" section of this post. We apologize for the inconvenience, but please refer to "Technical Questions to NXP - How to Contact Us (Japanese Blog)" when making inquiries. (If you are already an NXP distributor or have a relationship with NXP, you may ask your representative directly.) Zephyr-series-4-title.png This document provides an overview of the device tree and Kconfig, features designed to enhance Zephyr's software reusability. It then outlines the steps required to utilize these features in practice. After reading through this Zephyr series, from the first installment to the fourth, you will be able to write programs using the Zephyr RTOS. General Purpose Microcontrollers MCX Japanese Blog
View full article
在 FRDM-IMX95 上调试 Ara240 模块 入门视频 (function() { var wrapper = document.getElementById('lia-vid-6393577020112w960h540r856'); var videoEl = wrapper ? wrapper.querySelector('video-js') : null; if (videoEl) { if (window.videojs) { window.videojs(videoEl).ready(function() { this.on('loadedmetadata', function() { this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) { bar.setAttribute('role', 'presentation'); bar.setAttribute('aria-hidden', 'true'); }); }); }); } }})(); (在我的视频中查看) 本指南提供分步说明,说明如何验证与 Ara240 模块的成功通信以及与 FRDM i.MX 95 开发板接口的运行时软件环境。 打破常规 熟悉 Ara240 模块 Ara240 Module [Top view]Ara240 模块 [俯视图] Ara240 Module [Back view]Ara240 模块 [后视图]      连接 M.2 模块 本节介绍如何将分立模块 Ara240 连接到 FRDM i.MX 95 开发板。FRDM i.MX 95 快速入门指南中的说明将引导您完成主板上预加载的嵌入式 Linux 映像的启动过程以及如何连接 USB 调试电缆。有关其他详细信息,请参阅 FRDM i.MX 95 开发板官方文档。 参考,引用: FRDM i.MX 95 快速入门指南 FRDM i.MX 95 开发板产品页面 FRDM i.MX 95 入门页面 ARA2-M2-16G-GT 入门 按照以下步骤将 Ara240 模块连接到 FRDM i.MX 95 开发板: 剧透 (加亮显示以阅读) 重要:在进行任何连接之前,请确保主板已关闭电源。 重要:在进行任何连接之前,请确保主板已关闭电源。 将 Ara240 模块插入 FRDM i.MX 95 开发板上的 M.2 Key-M 插槽。 使用提供的螺钉固定模块。 将风扇电缆连接到主板的风扇接头(有关接头的确切位置,请参阅 FRDM i.MX 95 主板文档)。 Connect the Ara240 to the FRDM i.MX 95 development board.将 Ara240 连接到 FRDM i.MX 95 开发板。 开启板电源 按照《FRDM-IMX95 入门》中的说明开启(启动)板。 开机后,检查风扇和 Ara240 模块的绿色 LED 指示灯是否亮起。   获取软件 本节将向您介绍 Ara240 Runtime 软件开发工具包 (SDK),这是 Ara240 SDK 的精简子集,旨在恩智浦平台上快速启用和执行。Runtime SDK 简化了安装和配置,使开发人员能够以最小的工作量在 Ara240 模块上快速部署和运行 AI/ML 工作负载。 概述 有关 Ara240 软件开发套件 (SDK) 的详细信息,请参阅 Ara240 软件发行说明 Ara240 入门页面仅概述了在特定 i.MX 开发平台上的使用情况 对于任何其他平台,请联系您的恩智浦代表寻求指导。 模块枚举和软件配置 本节提供有关在 FRDM i.MX 95 开发板上验证是否正确安装了 Ara240 模块和 Ara240 Runtime SDK 配置的说明。 验证设备检测 主板成功启动后,连接到串行调试端口以监测系统日志。要确认主板是否检测到 Ara240 模块,请运行以下命令: $ lspci | grep 1e58 预期输出: 0000:01:00.0 Processing accelerators: Device 1e58:0002 (rev 02) 启用 Ara240 设备 为了快速启用,Ara240 运行时 SDK 会在启动时启动。有关详细说明和环境设置步骤,请参阅Ara240 Runtime SDK 文档。 开发人员体验 本节概述了使用 FRDM i.MX 95 开发板支持 Ara240 运行时软件。 验证设置环境 使用以下指南来了解如何连接所需设备。对于大多数演示,你需要摄像头、键盘、鼠标、互联网连接和一个 HDMI 显示器。 Setup preparation for FRDM i.MX 95 board [Top view]FRDM i.MX 95 主板的设置准备 [顶部视图] Setup preparation for FRDM i.MX 95 board [Back view]FRDM i.MX 95 主板的设置准备 [返回视图] 剧透 (加亮显示以阅读) 注意:您可能需要使用 USB 集线器来同时连接键盘、鼠标和摄像头。 注意:您可能需要使用 USB 集线器来同时连接键盘、鼠标和摄像头。   运行时设置 说明 Runtime SDK 提供了一个完整的运行环境,可在 Ara240 模块上实现 AI/ML 加速。要运行演示应用程序,请确保 Ara240 启动过程已成功完成,系统已为演示评估做好准备。 请参阅 Runtime SDK 文档,了解有关以下方面的详细指导: 验证 Runtime SDK 的正确安装。 检查并更新 Ara240 固件版本。 验证代理服务启动状态。 在 Ara240 上执行基准测试。 按照这些步骤操作可确保模块正确初始化并可随时使用。Ara240 支持执行 CNN、LLM、VLM 和代理框架,使高级人工智能工作负载能够直接在 Ara 上运行。有关全面的示例和端到端工作流程指导,请参阅Ara SDK文档页面。 FRDM-IMX9
View full article
S32K3 LPSPIに関する質問 NXPのエキスパートの皆様へ: GPIOピンを使用してLPSPIチップセレクト(CS)を手動で制御する場合、S32DS設定ツールのSpiCsPolarity設定は依然として影響しますか?ツールでPCS(周辺チップセレクト)の選択を無効にする必要がありますか?また、SpiHostRequestパラメータの目的は何ですか? focusdoit_0-1779058033130.png Re: S32K3 LPSPI pcs question こんにちは、 @focusdoit GPIOピンを使用してLPSPIチップセレクト(CS)を手動で制御する場合、S32DS設定ツールのSpiCsPolarity設定は依然として影響しますか? いいえ、動作には影響しないはずです。 チップセレクトとしてGPIOを使用する場合は、その制御はユーザーの責任となります。SpiCsPolarityパラメータは、LPSPI周辺機器によって管理されるハードウェア制御のCSに適用され、GPIO制御信号には適用されません。 ツールでPCS(周辺チップセレクト)の選択を無効にする必要がありますか? ConfigToolsで低レベルドライバ(IP)を使用する場合は、目的のピンをGPIOとして設定するだけでよく、PCSピンを設定する必要はありません。 高レベルドライバ(MCAL)の場合、ピンをGPIOとして設定することに加えて、SpiCsSelectionというパラメータがあります。このパラメータはCS_VIA_GPIOに設定する必要があります。この**CASE**、ドライバは通知(SpiJobStartNotificationノードとSpiJobEndNotificationノードで定義)を使用して、各SPIジョブのGPIOを介してCSピンを制御します。 また、SpiHostRequestパラメータの目的は何ですか? マスターモードでは、このパラメータにより、LPSPIモジュールはホストからの要求入力がアサートされた場合にのみ、新しいSPI転送を開始できます。LPSPIがビジー状態の場合、ホストからの要求入力は無視されます。 スレーブモードでは、送信可能なデータが利用可能になったときに、HREQ出力ピンがアサート状態になります。 BR、VaneB
View full article
Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi, Currently I am working with the NXP S32Z280-594EVB board. I created a Blink LED project for the R52_0_0 core using S32DS. I do not have the S32 Debug Probe, but I need to flash my project to the board. Please give me guidance on how to convert my project into a flashable image using the IVT method. Could you please share the procedure or any reference documents/examples for generating the flash image and booting it on the S32Z280 board without the debug probe? Thank you. Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi,suresh308531 Thank you for contacting us. I have received your question and will help you to check it. BR Joey Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi,suresh308531 Thank you for contacting us. You can try to refer to this links as the following contents for your question. creating a Blob Image using IVT S32Z2 How to reduce the binary size in S32Z2 Hope this information can help you. BR Joey Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi Joey_z, Thank you for your support. I followed your steps successfully. I reduced the .bin file size and created the flash image using the IVT method. However, after flashing the image, there is no output from the board. I tested a simple UART example code. The same UART code runs successfully on the M33 core, using the same pins and configuration. Then I created a new project for the R52_0_0 core, but the UART output is not showing. For the IVT configuration, I used the RAM start pointer address and RAM entry pointer address from the .ld file and .map file. Could you please help me solve this issue? Please let me know if there are any additional boot settings, memory settings, or R52-specific configurations required for the S32Z280 R52_0_0 core. suresh308531_0-1779168290104.png   BR, suresh Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi,suresh308531 Could you share your R52 UART project with me? I can help you to check it. BR Joey Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi Joey_z, Thank you for your support. I have attached my R52 UART project for your reference. Could you please check the project and help me identify why the R52_0_0 core is not booting/running after creating the IVT flash image? The IVT image is generated successfully and flashing also completes successfully, but there is no UART output from the R52 core. BR, Suresh Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi,suresh308531 I have checked your project, please try to modify your code as the following contents. If you want to boot from R52 directly, please try to refer to the steps as the following. 1.Modify the file of startup.s to initial the RTU0 early, added for RTU0 SRAM initialization for boot target as R52 as the following picture. The startup.s patch file in the attachment.  Joey_z_0-1779178666469.png 2.Enable the partition1(use the function of Mcu_SetMode()) before use the clock initial as the following picture. Joey_z_1-1779178696373.png Joey_z_2-1779178770542.png 3.Set the board boot from QSPI. Hope this information can help you. BR Joey Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi,suresh308531 Have you finished this application? I can continue support you if you still have any issue. BR Joey Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi,Suresh Thank you for your reply and information. You can contact us at any time if you have other issue. BR Joey Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi Joey_z, Thank you for your reply and support. I successfully ran the project with the R52 core. Your suggested binary size reduction process and the startup.s file modifications helped me achieve this successfully. Currently, the project is working even without enabling the Partition 1 clock and without using the Mcu_SetMode() function. Thank you again for your guidance. BR, Suresh
View full article
Errata ERR053404: Use Cases for Different Message Buffer Configurations This article discusses the different use cases and configuration of the errata "ERR053404: FlexCAN: Message Buffer (MB) and Enhanced RX FIFO Filter Element (ERFFEL) Memory Corruption". The errata is impacting Messabe Buffers (MB) and Enhanced RX FIFO Filter Elements (ERFFEL), the impact of each MB or ERFFEL depends on the configuration of the payload buffer, MB and/or ERFFEL. In this post, we plan to provide some examples of such configuration and impact on the FlexCAN IP.  Taking a 64-byte payload as an example, the following configurations illustrate the trade-off between the number of Message Buffers (MBs) and acceptance filters: /* ERR053404: This errata explains affected words depends on MB payload size, this example applies for MB configured for 64-byte payload */ #define BYTES_IN_MB kFLEXCAN_64BperMB FLEXCAN_FDInit(EXAMPLE_CAN, &flexcanConfig, EXAMPLE_CAN_CLK_FREQ, BYTES_IN_MB, true); 1. MB0 is not used, MB1 is used. In this configuration, ERFFEL[0–29] can be fully utilized as acceptance filters, while MB1–MB6 are available as Message Buffers, maximum ERFCR[NFE] is 14. The following code can be used as reference for the driver configuration for this case.  /* Config fifo filters to make it accept STD frame with ID 0x123 ~ 0x140. Used ERFFEL[0–29], ERFCR[NFE]=14 */ uint32_t rxEnFifoFilter[] = {FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x123, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x124, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x125, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x126, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x127, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x128, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x129, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12A, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12B, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12C, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12D, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12E, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12F, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x130, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x131, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x132, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x133, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x134, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x135, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x136, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x137, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x138, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x139, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13A, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13B, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13C, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13D, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13E, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13F, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x140, 0, 0x3F, 0)}; flexcan_enhanced_rx_fifo_config_t rxEhFifoConfig; flexcan_rx_mb_config_t mbConfig; /* Setup Enhanced Rx FIFO. */ rxEhFifoConfig.idFilterTable = rxEnFifoFilter; rxEhFifoConfig.idFilterPairNum = sizeof(rxEnFifoFilter) / sizeof(rxEnFifoFilter[0]) / 2U; rxEhFifoConfig.extendIdFilterNum = 0; rxEhFifoConfig.fifoWatermark = RX_MESSAGE_COUNT - 1U; /* Reduce the frequency to enter IRQ. */ rxEhFifoConfig.dmaPerReadLength = kFLEXCAN_19WordPerRead; rxEhFifoConfig.priority = kFLEXCAN_RxFifoPrioHigh; FLEXCAN_SetEnhancedRxFifoConfig(EXAMPLE_CAN, &rxEhFifoConfig, true); rxFifoXfer.framefd = &rxFrame[0]; rxFifoXfer.frameNum = RX_MESSAGE_COUNT; /* Set Rx Masking mechanism for MB. Only accept data frame with desired ID. */ FLEXCAN_SetRxMbGlobalMask(EXAMPLE_CAN, FLEXCAN_RX_MB_STD_MASK(0x7FFU, 0, 0)); #define RX_MESSAGE_BUFFER_1 (1U) /* Setup Rx Message Buffer 1. */ mbConfig.format = kFLEXCAN_FrameFormatStandard; mbConfig.type = kFLEXCAN_FrameTypeData; mbConfig.id = FLEXCAN_ID_STD(0x121U); FLEXCAN_SetFDRxMbConfig(EXAMPLE_CAN, RX_MESSAGE_BUFFER_1, &mbConfig, true); 2. MB0 and MB1 are not used. In this case, ERFFEL[0–31] are available for acceptance filtering, and MB2–MB6 are reserved as Message Buffers, maximum ERFCR[NFE] is 15. The following code can be used as reference for the driver configuration for this case.  /* Config fifo filters to make it accept STD frame with ID 0x123 ~ 0x142. Used ERFFEL[0–31], ERFCR[NFE]=15 */ uint32_t rxEnFifoFilter[] = {FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x123, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x124, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x125, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x126, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x127, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x128, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x129, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12A, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12B, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12C, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12D, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12E, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12F, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x130, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x131, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x132, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x133, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x134, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x135, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x136, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x137, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x138, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x139, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13A, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13B, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13C, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13D, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13E, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13F, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x140, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x141, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x142, 0, 0x3F, 0)}; flexcan_enhanced_rx_fifo_config_t rxEhFifoConfig; /* Setup Enhanced Rx FIFO. */ rxEhFifoConfig.idFilterTable = rxEnFifoFilter; rxEhFifoConfig.idFilterPairNum = sizeof(rxEnFifoFilter) / sizeof(rxEnFifoFilter[0]) / 2U; rxEhFifoConfig.extendIdFilterNum = 0; rxEhFifoConfig.fifoWatermark = RX_MESSAGE_COUNT - 1U; /* Reduce the frequency to enter IRQ. */ rxEhFifoConfig.dmaPerReadLength = kFLEXCAN_19WordPerRead; rxEhFifoConfig.priority = kFLEXCAN_RxFifoPrioHigh; FLEXCAN_SetEnhancedRxFifoConfig(EXAMPLE_CAN, &rxEhFifoConfig, true); rxFifoXfer.framefd = &rxFrame[0]; rxFifoXfer.frameNum = RX_MESSAGE_COUNT; 3. MB0 and MB1 are both used. Under this configuration, only ERFFEL[0–11] can be used as acceptance filters. ERFFEL[12–31] are not available, while MB0–MB6 can be used as Message Buffers, maximum ERFCR[NFE] is 5. The following code can be used as reference for the driver configuration for this case.  /* Config fifo filters to make it accept STD frame with ID 0x123 ~ 0x12E. Used ERFFEL[0–11], ERFCR[NFE]=5 */ uint32_t rxEnFifoFilter[] = {FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x123, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x124, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x125, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x126, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x127, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x128, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x129, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12A, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12B, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12C, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12D, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12E, 0, 0x3F, 0)}; flexcan_enhanced_rx_fifo_config_t rxEhFifoConfig; flexcan_rx_mb_config_t mbConfig; /* Setup Enhanced Rx FIFO. */ rxEhFifoConfig.idFilterTable = rxEnFifoFilter; rxEhFifoConfig.idFilterPairNum = sizeof(rxEnFifoFilter) / sizeof(rxEnFifoFilter[0]) / 2U; rxEhFifoConfig.extendIdFilterNum = 0; rxEhFifoConfig.fifoWatermark = RX_MESSAGE_COUNT - 1U; /* Reduce the frequency to enter IRQ. */ rxEhFifoConfig.dmaPerReadLength = kFLEXCAN_19WordPerRead; rxEhFifoConfig.priority = kFLEXCAN_RxFifoPrioHigh; FLEXCAN_SetEnhancedRxFifoConfig(EXAMPLE_CAN, &rxEhFifoConfig, true); rxFifoXfer.framefd = &rxFrame[0]; rxFifoXfer.frameNum = RX_MESSAGE_COUNT; /* Set Rx Masking mechanism for MB. Only accept data frame with desired ID. */ FLEXCAN_SetRxMbGlobalMask(EXAMPLE_CAN, FLEXCAN_RX_MB_STD_MASK(0x7FFU, 0, 0)); #define RX_MESSAGE_BUFFER_0 (0U) /* Setup Rx Message Buffer 0. */ mbConfig.format = kFLEXCAN_FrameFormatStandard; mbConfig.type = kFLEXCAN_FrameTypeData; mbConfig.id = FLEXCAN_ID_STD(0x120U); FLEXCAN_SetFDRxMbConfig(EXAMPLE_CAN, RX_MESSAGE_BUFFER_0, &mbConfig, true); #define RX_MESSAGE_BUFFER_1 (1U) /* Setup Rx Message Buffer 1. */ mbConfig.format = kFLEXCAN_FrameFormatStandard; mbConfig.type = kFLEXCAN_FrameTypeData; mbConfig.id = FLEXCAN_ID_STD(0x121U); FLEXCAN_SetFDRxMbConfig(EXAMPLE_CAN, RX_MESSAGE_BUFFER_1, &mbConfig, true); Recommendation: To achieve a balanced trade-off between the number of Message Buffers and acceptance filters, Option 1 is recommended.
View full article
SE050E2HQ1/Z01Z3Z 的电容和铁氧体磁珠要求 您好,NXP团队, 我们在定制设计板中使用安全元件 P/N:SE050E2HQ1/Z01Z3Z。 在审查参考设计板 OM-SE050ARD 时,我们几乎没有什么顾虑,如下所示 1.是否严格要求在 VIN (12)、VOUT (15)、VCC (18)引脚上使用阻抗为 330 欧姆、频率为 100 MHz 的 P/N: BLM21PG331SN1D铁氧体磁珠? 2.我们是否还需要在 VSS (19) 引脚上添加铁氧体磁珠? 3.是否需要使用 0.033uF 电容或者我们可以使用 100nF 电容? kadamm_1-1777647134719.png 谢谢! Re: Capacitor and Ferrite Bead requirement for SE050E2HQ1/Z01Z3Z 你好@kadamm 希望你一切顺利。 铁氧体磁珠主要与双接口操作(由非接触式接口提供)有关,以实现正确的电磁兼容性。 关于电容,您是否正在考虑只使用一个(共享)100nF 电容?如果是这样,我相信应该不会有什么大的不便。 Eduardo。 Re: Capacitor and Ferrite Bead requirement for SE050E2HQ1/Z01Z3Z 你好,爱德华多、 我们的设计没有采用 ISO 14443 或 ISO 7816 接口。因此,我们计划直接连接 VIN、VCC、VOUT 和 GND 引脚,而不使用铁氧体磁珠。此外,我们在引脚上放置一个 0.1 µF 电容以进行解耦。请问这种方法是否合适?   kadamm_0-1778561393143.png 谢谢!
View full article
无法在 SImulink MBDT 中使用 UART_Echo 进行传输 嗨,恩智浦支持团队、 我目前正在使用 Simulink MBDT 处理 S32K358 MCU,并尝试使用 UART Echo 示例(UART_Asynchronous S32CT)实现 UART 通信。)当我从S32K3xx工具箱中构建和部署现有示例时,它可以按预期运行,并且我能够观察串行监视器中的回声数据。在默认设置中,使用 LPUART2。 不过,我的硬件设置要求使用 LPUART0(PTB0 和 PTB1)。我已在 S32 配置工具 (S32CT) 中相应更新了 UART 实例和引脚配置。在这些更改之后,该项目成功构建和部署,但是即使我在传输消息,我也没有在串行监测中收到任何回显数据。 我已经上传了 pdf 文件,其中包含详细说明的截图。 如果您能就我可能需要解决的其他配置或潜在疏忽提供指导,以便在 LPUART0 上实现正确的 UART 通信,我将不胜感激。 MBDT#SimulinkS32K3 Re: Can't transmit with UART_Echo in SImulink MBDT Naresh2000_0-1776926139513.png 上图是 UART_Echo 示例的配置设置。我在这里感到困惑。实际上,我的 UART 是 LPUART0。当我移除 LPUARAT2 并添加 LPUART0 时,我可以看到如下设置(图片附后): Naresh2000_1-1776926149365.png 中断名称:LPUART1 优先级: 0 处理程序:undefined_handler " 我的问题是,是否需要保持这些设置,还是需要更改处理程序和优先级?" Re: Can't transmit with UART_Echo in SImulink MBDT 你好 就这个问题谈几点看法: 你不必从 “驱动程序” 选项卡更新 Siul2_Port 元器件。只需更新 PINS 视图中外设使用的引脚即可。 SorinIBancila_0-1777475786708.png 启用新外围设备后,你需要进入平台—— > 中断控制器(你已经这样做了)和 MCU-> mcuModuleConfiguration-> mcuModuleSettingConfiguration-mcumodeSettingConfiguration-> mcuPressettingConfiguration-mcuPreserational 并启用外设时钟 SorinIBancila_1-1777476028484.png 关于未定义的处理程序,对于 LPUART0_IRQn,您可以使用以下处理程序:LPUART_UART_IP_0_IRQHandler。 优先级由您决定(数值越低,优先级越高)。 提示!在模型中添加一个变量,每一步都递增。然后,使用 FreeMASTER 检查主板是否正在运行,就好像某些配置不当一样,它可能会进入硬故障。即使未配置 UART,您仍然可以通过调试探头连接到电路板。 顺祝商祺! 索林-班奇拉 Re: Can't transmit with UART_Echo in SImulink MBDT 你好 我很高兴问题得到了解决。 如果您已经在使用 R2022b 和 S32DS 3.5,则可以继续使用这些版本。 顺祝商祺! 索林-班奇拉 Re: Can't transmit with UART_Echo in SImulink MBDT 感谢@SorinBancila 解决了这个问题。 我能否知道哪个版本的 MATLAB-Simulink& S32DS 最适合 FS26 (SBC) CDD 驱动程序?目前我使用的是 MATLAB R2022b 和 S32DS 3.5。 Re: Can't transmit with UART_Echo in SImulink MBDT Hii@SorinIBancila, 首先,非常感谢你及时、有益的回复,这非常有用。 我无法在 S32 配置工具中找到CDD_Sbc_fs26 驱动程序。经过研究,我了解到 MBDT 限制在 S32CT 中安装新软件,以防止用户破坏工具链。 在找到这个之前,我尝试使用 “帮助” → “安装新软件” 通过 S32 Design Studio 安装 FS26 软件包。然而,重新打开 Simulink 并检查 S32CT 后,CDD 驱动程序仍然不可用。看来S32设计工作室和Simulink S32配置工具是独立运行的,不共享已安装的组件。 作为一种解决方法,我从电池管理系统示例项目中复制了 FS26 初始化块。但是当我尝试构建、部署和启动模型时,我遇到了以下错误:致命错误:cdd_sbc_fs26.h:无此文件或目录 我目前处于困境,需要有关如何正确解决此问题以及集成所需的 FS26 驱动程序或其他任何方法的指导。 mbdt fs26 pmics-sbcs-多供应商处理器
View full article
使用 Yocto Scarthgap iMX8M Mini 实现 gltransformation 我想在 imx8M Mini Yocto 版本上将 " gltransformation " 添加到我的 gstreamer 中。我的 gst-inspect 中有其他"opengl" 库,但没有看到 gltransformation。 Re: gltransformation with Yocto Scarthgap iMX8M Mini 为了进一步澄清我的问题,我正在尝试在最小的 Yocto 版本中做到这一点(没有 X11/Wayloand)。这是一个无头 RTSP 服务器,我想使用 gltransformation 来校正视频。 我能够通过修补 gstreamer 配方来启用 gltransformation 来添加 " 石墨烯 ",但是在无头使用它时遇到了问题。 Re: gltransformation with Yocto Scarthgap iMX8M Mini 你好@cjcdev 希望你一切都好。 能否请您详细介绍一下您提到的问题? "在使用它时遇到问题,无头" 。 顺祝商祺! 萨拉斯 Re: gltransformation with Yocto Scarthgap iMX8M Mini @Manuel_Salas 我正在尝试在 Headless(没有 X11/Wayland)的 Yocto 版本上使用 gltransformation。我可以使用测试启动进行普通的 rtsp 直播。但是,当我尝试使用 gltransformation 管道时,却出现了故障。 我通过创建 gstreamer1.0-plugins-base_%.bbappend 启用了石墨烯: PACKAGECONFIG:append =" 石墨烯" 这允许将 gltransformation 作为 gstreamer 插件的一部分进行构建,我可以在 gst-inspect 中看到它。 然而,当我尝试创建管道时,却遇到了问题。我试过几种不同的方法: # viv_egl_platform=GBM\ gst_gl_platform=EGL\ gst_gl_api=gles2\ gst_gl _window=GBM\ test-launch-p 8554-m /camera " (v4l2src 设备=/dev/video2 do-timestamp=true! image/jpeg,width=2560,height=1440,framerate=30/1!jpegdec !glupload !gltransformation rotation-x=45 !gldownload !jpegenc !rtpjpegpay name=pay0 )" (测试发布:8012):gstreamer-GL-Critical **:21:16:47.035:gst_gl_display_egl_from_gl_display: 断言 'native_display != 0' 失败 (测试发布:8012):gstreamer-gl-Critical **:21:16:49.201:gst_gl_display_egl_from_gl_display: 断言 'native_display != 0' 失败 # EGL_PLATFORM=设备 \ GST_GL_PLATFORM=egl \ GST_GL_API=gles2 \ test-launch -p 8554 -m /camera "( v4l2src device=/dev/video2 do-timestamp=true ! image/jpeg,width=2560,height=1440,framerate=30/1!jpegdec !glupload !gltransformation rotation-x=45 !gldownload !jpegenc !rtpjpegpay name=pay0 )" EGL: 警告:wayland 上不支持默认显示 EGL: [ 2128.886314] audit: type=1701 audit(1777670225.965:17):auid=4294967295 uid=0 gid=0 ses=4294967295 subj=uncredined pid=8095 comm= " gstglcontext " exe= " /usr/bin/test-launch " sig=11 re s=1 警告:Wayland 分段故障(核心已转储)不支持默认显示器 # EGL_PLATFORM=设备 \ GST_GL_PLATFORM=egl \ GST_GL_API=gles2 \ GST_GL_WINDOW=surfaceless \ test-launch -p 8554 -m /camera "( v4l2src device=/dev/video2 do-timestamp=true ! image/jpeg,width=2560,height=1440,framerate=30/1!jpegdec !glupload !gltransformation rotation-x=45 !gldownload !jpegenc !rtpjpegpay name=pay0 )" EGL: 警告:wayland 上不支持默认显示 (测试发布:8193):gstreamer-gl-Critical **:21:17:34.954:gst_gl_display_egl_from_gl_display: assertion 'native_display != 0' failed EGL: Warning:wayland 上不支持默认显示 (测试发布:8193):gstreamer-gl-Critical **:21:17:37.004:gst_gl_display_egl_from_gl_display: 断言 'native_display != 0' 失败 Re: gltransformation with Yocto Scarthgap iMX8M Mini 仅供参考--除非 Weston 正在运行(且 LCDIF 已启用),否则 gstreamer 中的 GPU 加速似乎无法工作。
View full article
frdm-i.mx93 无法在 M33 之后启动准备就绪;Linux 和 Windows 上的 UUU SDPS 启动超时 您好,恩智浦技术支持、 我正在请求帮助恢复 FRDM-i.MX93 主板。在 “M33 准备就绪” 之后,板在早期的 SPL 启动期间会立即停止,并且不会继续运行 BL31 或完全 U-Boot。在 SDPS 启动期间,UUU 恢复也会因超时而失败。 董事会详情: 板:FRDM-i.MX93 SoC shown in serial log: 0xa1009300 LC shown in serial log: 0x2040010 PMIC: PCA9451A DDR: 3733MTS 典型的串行输出: U-Boot SPL 2024.04+gde16f4f1722+p0(Sep 02 2024 - 10:44:35 +0000) SOC: 0xa1009300 LC: 0x2040010 PMIC: PCA9451A PMIC: Over Drive Voltage Mode DDR: 3733MTS DDR: 3733MTS M33 ready ok 重建的 2025 SPL 也出现了同样的停止点: U-Boot SPL 2025.04(2026 年 4 月 26 日-16:21:54 +0000) PMIC:PCA9451A PMIC:过载电压模式 DDR:3733MTS DDR:3733 MTS DDR:3733MTS M33 准备好了 使用的硬件设置: P1 = 外部电源,使用 45 W USB-C 墙式适配器进行测试 P16 = 调试串行控制台 P13 = microSD 卡插槽 P2 = 用于 UUU / 串行下载器模式的 USB-C 连接 我还测试了用墙壁适配器供电,而不是用电脑 USB 供电。行为没有改变。 测试的主机系统: Linux Mint / Ubuntu 主机 Windows 主机 已测试的 UUU 版本: uuu 1.5.141 uuu 1.5.243 主要问题是电路板达到 SPL,初始化 PMIC 和 DDR,然后打印 “M33 准备就绪”,然后什么也没发生。它永远不会达到 “正常启动”、“正在尝试从 BOOTROM 启动”、“注意:BL31” 或完整 U-Boot。从 SD 和 eMMC 启动时会发生这种情况。 在 USB 串行下载器模式下,UUU 会检测到主板: sudo ./uuu-lsusb 连接的已知 USB 设备 路径芯片 Pro Vid Pid bcdVersion 5:2 MX93 SDPS: 0x1FC9 0x014E 0x0001 但是,在 SDPS 启动期间,UUU 会失败。使用的命令是 sudo ./uuu-V-b emmc_all imx-boot-imx93frdm-sd.bin-flash_singlebootimx-image-full-imx93frdm.rootfs.wic.zst 在 Linux 系统上,故障是 启动 cmd: sdps: boot-scanterm-f imx-boot-imx93frdm-sd.bin-flash_singleboot-scanlimited 0x800000 Fail HID(W):LIBUSB_ERROR_TIMEOUT 在 Windows 系统中,故障是 启动 cmd: sdps: 启动-scanterm-f。\ imx-boot-imx93frdm-sd.bin-flash_singleboot-scanlimited 0x800000 14% 失败 HID (W):LIBUSB_ERROR_TIMEOUT (-7) 在 Linux 和 Windows 上进行了测试,结果相同。 测试过的图像: 我测试了恩智浦官方 frdm-i.mx93 Rev 4.0 演示映像包: LF_v6.6.36-2.1.0_images_FRDM_4.0_IMX93 启动映像哈希值为: 7aba6102e5ec64add64add632cd6667e77fa3f6f6f6f6f6f6fd72c314e4c01f2964c0fc056a5f imx-boot-imx93frdm-sd.bin-flash_singleboot 我还测试了自己的 Yocto 镜像 imx93frdm,它使用相同的启动映像哈希值。 我验证了 SD 启动选择是否有效。在未插入 SD 卡的 SD 启动模式下,没有串行输出。在插入 SD 卡的 SD 启动模式下,SPL 在 “M33 准备就绪” 时开始和停止。因此,SD 启动开关似乎正在工作。 我还验证了恩智浦官方的 .wic映像包含预期偏移量为 32 KiB/0x8000 的启动映像。使用的命令 wic=nxp.wic 启动=imx -启动-imx93frdm-sd.bin-flash_singleBoot xxd -l 64 -s $((32*1024))"$WIC" xxd -l 64 -s 0"$BOOT" cmp-n " $ (stat-c%s " $BOOT ") "-i $ ((32*1024)): 0 " $WIC " " $BOOT " & & echo " " NXP WIC 包含 32K 的启动映像" 恩智浦 WIC 不包含 32K 的启动映像 " 结果: 恩智浦 WIC 包含 32K 的启动映像 因此,SD 映像似乎正确包含了启动容器。 为了排除只有 2024.04 SPL 映像是问题所在,我使用 Flexbuild/U-Boot 构建了一个更新的启动映像。内置映像中的 SPL 显示: U-Boot SPL 2025.04(2026 年 4 月 26 日-16:21:54 +0000)恩智浦 FRDM-IMX93 我将这个新的 flash.bin 文件写入 SD 卡,偏移量为 32 KiB: sudo dd if=flash-imx93frdm-2025.bin of=/dev/sdX bs=1K seek=32 conv=fsync sync 然后,主板打印了新的 SPL 标语,确认它正在执行新的 SD 启动映像: U-Boot SPL 2025.04(2026 年 4 月 26 日-16:21:54 +0000) PMIC:PCA9451A PMIC:过载电压模式 DDR:3733MTS DDR:3733 MTS DDR:3733MTS M33 准备好了 但是,它仍然在同一时间停止了,没有继续使用BL31/Full U-Boot。 eMMC 状态: 最初,eMMC 启动到足以登录 Linux 的程度,但由于根文件系统中缺少 /bin/sh,根登录被中断。在尝试恢复过程中,eMMC 使用 .wic 文件从 SD Linux 重写。图像之后,在 “M33 准备就绪” 之后,eMMC 启动也会停止。但是,使用恩智浦官方镜像启动SD时以及重建的2025 SPL也会出现同样的停止点,因此当前的问题似乎早于Linux/rootFS。 我所相信的已经被排除: 串行端口错误:串行端口正常工作并显示 SPL 输出。 电脑电源不良:使用外置 45 W 墙式适配器测试。 错误的 SD 启动开关:没有 SD 卡的 SD 启动模式没有输出。 SD 映像中缺少启动映像:经过验证的启动映像存在于恩智浦官方 WIC 中的 0x8000/32 KiB。 Linux/rootFS 问题:故障发生在 BL31/Full U-Boot/Linux 之前。 UUU 的主机操作系统问题:UUU SDPS 启动超时出现在 Linux 和 Windows 上。 只有旧的 2024 SPL 是坏的:重建的 2025.04 SPL 也在 "M33 准备就绪 "后停止。 你能帮忙确定这是否是已知的 frdm-i.mx93 提前启动问题吗? Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 你在使用我们发布的 BSP 版本吗? 适用于i.MX应用处理器的嵌入式Linux|恩智浦半导体 您正在使用并选择哪个版本的 BSP? 劳动节回来后,我会尝试在我们的电路板上进行测试,我将在下周三回到办公室然后进行测试,然后给你回复我的测试结果。 祝您有美好的一天 顺祝商祺! Rita Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 我使用的是 LF_v6.6.36-2.1.0_images_FRDM_4.0_IMX93。图像 Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 我回到办公室将在我们的板上进行测试,然后告诉你结果。 Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 你想出来了吗? Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows @Rita_Wang 我也遇到了同样的问题…… 我从未见过 BL31 使用我的 imx-image-full-imx93frdm.rootfs-20260705225501.wic.zst scarthgap 版本启动。 Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 您好,我目前也遇到了同样的问题。请问您找到解决方法了吗? Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 我也遇到同样的问题。是否有任何更新需要进行哪些操作才能使 imx93 从 SD 卡启动,或者使 UUU 正常工作? Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 我们注意到该主板上的内存芯片与其他frdm-imx93主板有所不同。或许这有助于找到问题所在。 正常工作的板是微米级的,而故障板的品牌我不认识。   IMG_7007.jpegIMG_7007.jpeg   Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 我也遇到了同样的问题。 这应该标记为高优先级,因为唯一可用的映像是出厂时在 eMMC 上提供的映像!如果重新刷写固件,我的 FRDM-IMX93 就彻底报废了,直到找到解决方案为止,我怀疑这与 DDR 内存时序有关。 我的程序也卡在了“M33 prepare ok”这里,这表明DDR配置/时序存在问题,而且我的主板也和上面@SynchronicIT帖子中的一样,使用了相同的“无名”DDR IC(制造商标志带有“J”)。 为什么这些电路板可以出厂时就带有 eMMC 上的可用镜像,而 NXP 提供的所有可用镜像都无法使用? 当我通过(出厂预装的)eMMC启动时(启动正常),u-boot 版本为: U-Boot SPL 2025.04-g99518e6b6f20(2026年2月2日 05:52:54 +0000) 而从 NXP 下载的最新版本 (LF_v6.6.36-2.1.0_images_FRDM_4.0_IMX93.zip)“imx-boot-imx93frdm-sd.bin-flash_singleboot”文件是 u-boot 版本: U-Boot SPL 2024.04+gde16f4f1722+p0(2024年9月2日 10:44:35 +0000) 下面显示的是正常工作的工厂镜像 eMMC 的完整输出,以及不正常工作的 SD 卡刷入镜像和 UUU 上传的 u-boot 的完整输出。 * 工作正常(出厂预装eMMC)* U-Boot SPL 2025.04-g99518e6b6f20(2026年2月2日 05:52:54 +0000) PMIC:PCA9451A PMIC:过驱动电压模式 DDR:3733MTS 找到匹配的 DRAM 2CS_2GB DRAM M33 准备就绪 正常启动 尝试从 BOOTROM 启动 启动阶段:主启动 图像偏移量 0x8000,页面大小 0x200,ivt 偏移量 0x0 通过 ROM_API 从 0x57800 加载镜像 注意:TRDC 初始化完成 通知:BL31:v2.12.0(版本):lf-6.18.2-1.0.0 通知:BL31:建造时间:2026年2月10日 07:53:18 U-Boot 2025.04-g99518e6b6f20(2026年2月2日 05:52:54 +0000) 重置状态:POR CPU:NXP i.MX93(52) Rev1.2 A55,频率 1700 MHz CPU:工业级温度范围(-40℃至105℃),工作温度24℃ 型号:NXP FRDM-IMX93 动态随机存取存储器(DRAM):2 GiB 板:V1.0(ADC2:684,ADC3:271) TCPC:供应商 ID [0x1fc9],产品 ID [0x5110],地址 [I2C2 0x52] SNK.Power3.0 on CC1 PDO 0:0 型,5000 mV,3000 mA [E] PDO 1:0 型,9000 mV,3000 mA [] PDO 2:0 型,12000 mV,3000 mA [] PDO 3:0 型,15000 mV,3000 mA [] PDO 4:0 型,20000 mV,3250 mA [] PDO 5:类型 3,未定义 请求 PDO 4:20000 mV,750 mA 源接受请求 PD源已准备就绪! tcpc_pd_receive_message:轮询 ALERT 寄存器,TCPC_ALERT_RX_STATUS 位失败,返回值为 -62 TCPC:供应商 ID [0x1fc9],产品 ID [0x5110],地址 [I2C2 0x50] 核心:229 个设备,32 个微类,设备树:独立 MMC:FSL_SDHC:0,FSL_SDHC:1 从 MMC 加载环境... 从 MMC(0) 读取... *** 警告 - CRC 校验错误,使用默认环境 视频链接设置失败 输入:串行 输出:串口 错误:串行 构建信息: - ELE固件版本2.0.5-7a34cee 切换到分区 #0,确定 mmc0(第 0 部分)是当前设备 UID:4a7ff07fa81b46d8b2b59146dfa5af84 闪存目标是 MMC:0 网络:eth0:以太网@42890000,eth1:以太网@428a0000 [PRIME] Fastboot:正常 正常启动 按任意键停止自动启动:0 u-boot=> * 无法正常工作 * U-Boot SPL 2024.04+gde16f4f1722+p0(Sep 02 2024 - 10:44:35 +0000) SOC: 0xa1009300 LC: 0x2040010 PMIC: PCA9451A PMIC: Over Drive Voltage Mode DDR: 3733MTS DDR: 3733MTS M33 ready ok - 悬挂 - Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 我也遇到了同样的问题。我无法通过 uuu.exe 刷入任何镜像,输出相同的“HID(W): LIBUSB_ERROR_TIMEOUT (-7)”错误。我主板上的内存芯片也是“J”牌的,而不是美光的。 Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 补充一点关于具体 DDR 部件信息的数据,因为我认为替换的内存是关键,但我还没有看到确切的部件编号公布。 **板:** FRDM-IMX93,SCH-94611 REV B2(电路板标签 DRQ30063390) **SoC:** i.MX93(52) Rev1.2SOC 0xa1009300,LC 0x2040010 **PMIC:** PCA9451A **DDR:**原理图和用户指南指定使用 LPDDR4x Micron MT53E1G16D1FW-046。我板上实际安装的芯片标记为**JSL4BAG167ZAMF** — 而不是 Micron。这与本帖中其他人报告的情况一致(故障主板上使用“J”品牌的DDR内存,而正常工作的主板上使用Micron品牌的DDR内存)。 **问题出在DDR训练/验证环节,而非M33/ELE环节。**将正常工作的工厂 eMMC 启动程序与出现故障的公共电路板支持包。启动程序进行比较,就能清楚地看出这一点: 工作正常(工厂 eMMC、U-Boot SPL 2025.04,BL31 lf-6.18.2-1.0.0): ``` DDR:3733MTS 找到匹配的 动态随机存取存储器\(DRAM\) 2CS_2GB 动态随机存取存储器\(DRAM\) M33 准备就绪 正常启动 ... ``` 失败 (LF_v6.6.36-2.1.0)公开版本(U-启动 SPL 2024.04,2024 年 9 月 2 日): ``` DDR:3733MTS DDR:3733MTS M33 准备就绪 - 悬挂 - ``` 正常工作的引导加载程序中存在“找到 动态随机存取存储器\(DRAM\) ... 动态随机存取存储器\(DRAM\) 匹配”这一行,而故障的引导加载程序中则不存在这一行。主板卡在了 DDR 验证即将完成的时刻,也就是 BL31 / 正常启动之前。所以这看起来像是 6.6.36 版本。DDR配置/时序与替换的DDR部件不匹配,而不是下游部件的问题。 正常工作的 eMMC 引导加载程序还报告 **ELE 固件版本 2.0.5-7a34cee**,比 6.6.36 代码包,软件包中提供的版本更新——注意,以防修复取决于 DDR 时序和 ELE 版本。 **为了节省时间,我已经排除了以下可能性**: - 版本:我自己的 Yocto imx93frdm 构建生成的 imx-启动 与工厂代码包,软件包 (sha256 7aba6102e5ec64add632cd6667e77fa3f6886fd72c314e4c01f2964c0fc56a5f) 字节级完全相同,所以这不是构建问题。 - SD 刷写:已验证启动容器大小为 32 KiB (0020 0287 magic),有效的 MBR (55aa),以及引导加载程序区域中的两个 FIT magic。 - 启动开关:SD 模式下,如果没有卡,则不会有串行输出;插入卡后,SPL 可以运行——因此 USDHC2/SD 选择是正确的。 - 电源:使用多个 USB-C 电源时结果相同。 - 主机/USB:在两个不同的 Linux 主机上,UUU SDPS 启动失败,出现 HID(W): LIBUSB_ERROR_TIMEOUT 错误。 - 硬件本身很好:板启动其出厂 eMMC 映像到 Linux,因此 DDR *可以* 由正确的引导加载程序进行训练。 **问题:** 1.适用于 REV B2 板卡的修正版 DDR 配置(非 Micron (JSL4BAG167ZAMF) DDR)是否已在任何当前公开的 电路板支持包。中提供?例如,6.6.52-2.2.0 或 6.12.x 版本——还是仅限于目前在 eMMC 上提供的较新的引导加载程序 (lf-6.18.2)? 2. 如果尚未有公开版本,是否可以发布更新后的 FRDM-IMX93 DDR 时序接头(或 lf-6.18.2 FRDM 引导加载程序),以便 SD 卡启动可以在这些板上工作? 如果这有助于缩小问题范围,我很乐意在这个板上运行诊断程序或测试候选引导加载程序/时序配置。 谢谢, jjudk Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 后续提供可行的解决方案,希望能帮助本帖中其他使用相同板/DDR组合的用户。 摘要:此次故障是公共 LF6.6.36-2.1.0 版本中的 DDR 训练问题。较新的 FRDM-IMX93 板上的电路板支持包,这些板配备了替代的(非 Micron)LPDDR4X 内存。升级到 **LF6.18.2 (Whinlatter) 电路板支持包。** 即可解决此问题——板可以训练其 DDR 并从 SD 卡正常启动。 板/DDR(参考,引用): - FRDM-IMX93,SCH-94611 REV B2 - 原理图上标明的是 Micron MT53E1G16D1FW 芯片;实际安装的芯片标记为 JSL4BAG167ZAMF(非 Micron 替代芯片)。 最终确认根本原因的是:工厂 eMMC 镜像(可以正常启动)使用了较新的引导加载程序——U-Boot SPL 2025.04。BL31 lf-6.18.2,内核 6.18.2 — 其 SPL 打印“找到 动态随机存取存储器\(DRAM\) 2CS_2GB 动态随机存取存储器\(DRAM\) 匹配”,然后“M33 准备正常”。公开的 LF6.6.36SPL(U-启动 2024.04)不打印`动态随机存取存储器\(DRAM\) 已匹配`,并卡在`M33 准备正常`。 所以是 6.6.36DDR 配置不会训练这种替代内存,而 6.18.2 配置会。 工作流程——构建并启动 LF6.18.2 电路板支持包。: mkdir imx-bsp-6.18.2 && cd imx-bsp-6.18.2 仓库 init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-whinlatter -m imx-6.18.2-1.0.0.xml 仓库同步 发行版。=fsl-imx-xwayland MACHINE=imx93-11x11-lpddr4x-frdm source sources/meta-imx/tools/imx-setup-版本.sh -b 版本-frdm bitbake imx-image-core   请注意,机器名称为 `imx93-11x11-lpddr4x-frdm`(此电路板支持包。的原生名称——与 6.6.36 不同,不需要单独的 meta-imx-frdm 层)。 然后将生成的 `.wic.zst` 烧录到 SD 卡(解压缩并使用 dd 命令烧录到整个卡设备),将启动开关设置为 SD 卡(SW1 = 1 1 0 0),然后启动。REV B2 / JSL DDR 板的结果: DDR:3733MTS 找到匹配的 动态随机存取存储器\(DRAM\) 2CS_2GB 动态随机存取存储器\(DRAM\) M33 准备就绪 正常启动 ... NXP FRDM-IMX93 登录: `free -h` 确认全部 2GB 内存已训练完毕并可用。 NXP方面仍存在疑问:是否有计划将更新后的FRDM DDR配置向后移植到LF6.6.36-2.1.0?分支,供需要继续使用 6.6.36 版本的人使用?对于能够升级到 6.18.2 的用户来说,上述方法有效。 希望这能帮到其他人,省去调试的麻烦。 jjudk Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 嗨,丽塔, 请问这件事有任何最新进展吗?我们被这个问题困住了。 Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 我已使用演示镜像 images LF_v6.6.36-2.1.0_images_FRDM_4.0_IMX93 在我们的 93FRDM REV B 版本板上进行了测试, 使用 UUU uuu 工具版本 uuu_1.5.243 分别在SD卡和eMMC上尝试,下载和启动都成功,没有重现您遇到的错误。 .\uuu.exe -b emmc_all imx-boot-imx93frdm-sd.bin-flash_singlebootimx-image-full-imx93frdm.rootfs.wic.zst Rita_Wang_0-1786613213510.pngRita_Wang_0-1786613213510.png Rita_Wang_1-1786613222942.pngRita_Wang_1-1786613222942.png Rita_Wang_2-1786613231468.pngRita_Wang_2-1786613231468.png Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 看来问题出在REV B2板上。请在REV B2上尝试一下 Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 大家好。 @Rita_Wang这不是“修改”的问题。我桌上有两块主板,版本相同,但LP DDR芯片不同。 然而,以下是你们团队的原话: LFU-956 imx93_frdm:为 i.MX93 FRDM 添加 2CS 2GB 动态随机存取存储器(DRAM) 支持 FRDM-IMX93 使用 Micron MT53E1G16D1FW 1CS 动态随机存取存储器(DRAM),但该芯片已停产。它将替换为 JSC JSL4BAG167ZAMF 2CS 动态随机存取存储器(DRAM)。对 1G 动态随机存取存储器\(DRAM\) 的支持将被取消。 在 i.MX93 FRDM 上添加 2CS 2GB 动态随机存取存储器\(DRAM\) 支持,以支持基于 1CS 和 2CS 动态随机存取存储器\(DRAM\) 的 FRDM-IMX93 板。 这是因为这两个芯片(见附图)具有不同的时序参数。正如@jjudk所说,唯一的解决办法是升级到新版本的固件。 就我而言,我只能继续使用旧版本。因此,我直接挑选了所需的补丁(请看这里: https ://github.com/nxp-imx/uboot-imx/commit/4c35a6086aedca2f6220382920242ad81ae372f6 ) 如果还有人遇到问题,我可以提供预编译好的版本。 -加布里埃尔
View full article
由于 高效密码学标准\\(SEC\\)/CAAM 未初始化,BL2 中的安全启动失败 secure_boot_test.png 安全启动在 BL2 中失败看起来是因为 高效密码学标准(SEC)/CAAM 未初始化。在仔细研究代码时,似乎没有直接调用 sec_init,但看起来配置函数是在它之前被调用的,因此全局变量无法获得 高效密码学标准(SEC) 区块地址的定义常量。即 NXP_CAAM_ADDR 值。当我对这个值进行硬编码时,我可以让它稍微进一点,但随后我出现了无法刷新/重置任务铃声的错误。 QorIQ LS1设备 Re: Secure boot fails in BL2 because SEC/CAAM not initialized 你好 BL2中的这种安全启动失败是TF-A(可信固件-A)初始化流程中典型的 " chicken and egg " 问题,专门针对恩智浦Layerscape或i.MX平台。 当你对 NXP_CAAM_ADDR 进行硬编码并克服地址错误但遇到 Job Ring 刷新/RESET 错误时,这通常意味着 CAAM 硬件块要么没有时钟,要么处于过渡状态,要么被安全违规阻止。   1.初始化序列 sec_init 没有在配置函数之前被调用的原因,很可能是 bl2_main.c 中的顺序造成的。或特定平台的 plat_bl2_el3_setup.c 。 修复:确保在 bl2_el3_early_platform_setup 内调用 plat_ls_sec_init() (或与 SoC 类似的函数)。 全局变量问题:如果 NXP_CAAM_ADDR 没有弹出,请检查平台的 plat_get_caam_address() 函数是否返回 0,或者 BL2 转换表中的数据段是否没有正确映射。   2.为什么工作环冲洗失败 如果代码试图刷新作业环却失败了,请考虑以下三个罪魁祸首: 安全违规(最有可能):如果 SoC 处于 " Closed " 模式(已熔丝),CAAM 可能在从 bootROM 过渡到 BL2 的过程中触发了安全违规。网络安全违规会使 CAAM 处于 " Halted " 状态,在该状态下,在违规行为被清除之前,无法重置或使用工作戒指。 缺少时钟/功率:如果在 BL2 期间未在 DCFG(设备配置)或 PCC(外设时钟控制)中明确启用 高效密码学标准(SEC) 模块时钟门,则寄存器将可访问(如果幸运的话),但内部逻辑(如 Job Ring 控制器)不会响应重置命令。 主 ID (MID) 不匹配:作业环需要特定的主 ID 配置,以便 BL2(在 EL3 中运行)能够"自己的" 。如果 BootROM 将振铃分配到不同的 MID 但没有释放它们,BL2 在尝试 RESET 它们时会超时。   3.调试步骤 检查 SEC_VID(版本 ID)和 SEC_STA(状态)寄存器:在 Job Ring 重置呼叫之前阅读这些寄存器。如果状态寄存器显示网络安全违规,则需要找出触发该违规的原因(通常是前一阶段的身份验证失败)。 验证重置位:确保在切换重置位后等待足够长的时间。在某些芯片版本中,CAAM 重置所需的时间比 SDK 中提供的标准延迟环路长。 检查 TrustZone 设置:确保您正在访问的任务环在中央安全单元 (CSU) 或资源域控制器 (RDC) 中标记为 " Secure "。 此致 Re: Secure boot fails in BL2 because SEC/CAAM not initialized 开机后,但在加载 SRKH 镜像寄存器并释放 CPU 之前,如果我检查 DCFG_CCSR_DEVDISR1 寄存器,我会发现位 22 (高效密码学标准(SEC)) 设置为 1。根据有关重置的文档,该寄存器应全部为 0。在启动过程的这么早期,这个值可能在哪里设置?我需要对 pbl 命令做些什么吗?RCW 是否有误?我确实看到在低功耗安全寄存器中检测到电源故障,但我也看到配置寄存器显示应忽略/不应对低功率篡改采取行动。 Re: Secure boot fails in BL2 because SEC/CAAM not initialized 好吧,谁能帮我确认一下? 在 TF-A 驱动程序/nxp/dcfg/dcfg.c 中我找到了一个用于检查是否启用 高效密码学标准(SEC) 的计算方法。它在 SVR_SEC_MASK 和寄存器 0x1ee00a4 的值之间进行比特& ,寄存器 0x1ee00a4 是一个只读寄存器。如果我正确读取了字段,那么 16-23 位的状态是否为 ls1043 或 ls1023,是否 高效密码学标准\(SEC\) 硬件是否启用。我看到该位的值为 0x00000001。哪个会是这个芯片上禁用的高效密码学标准(SEC)封锁,对吗?我参考了完整零件号的示意图并得到了 LS1043ASN7MNLB,当我查看恩智浦的网站显示高效密码学标准(SEC)已禁用时。这是否导致了我的安全启动问题?高效密码学标准(SEC)能否启用这款芯片,还是在它离开恩智浦后就一成不变了?我们需要考虑其他芯片吗,还是可以在没有高效密码学标准(SEC)的情况下进行安全启动? Re: Secure boot fails in BL2 because SEC/CAAM not initialized 支持人工智能复制粘贴?如果我们要走这条路,就需要进一步调整代理。如果 SoC 知道自己的代码库,那么它就应该知道 NXP_CAAM_ADDR 是在头文件中静态定义的,而不是先填充的。
View full article
I2CスイッチングアプリケーションでP3S0200を使用する場合、OEをGNDに接続すると、Sを介してスイッチングを行うことはできません。 P3S0200をI2Cスイッチングアプリケーションで使用する場合、OE端子がGNDに接続されているとスイッチングはできません。スイッチングは、電源を一度オフにしてから再度オンにすることでのみ可能です。 Re: P3S0200做I2C切换应用时,OE接GND,S不能实现切换 以下は概略図です。 微信图片_20260409141630_225_32.png   Re: P3S0200做I2C切换应用时,OE接GND,S不能实现切换 回路図を共有していただけますか? 回复: P3S0200做I2C切换应用时,OE接GND,S不能实现切换 回路図をお送りしました。状況をご確認いただけますでしょうか?よろしくお願いいたします。 回复: P3S0200做I2C切换应用时,OE接GND,S不能实现切换 申し訳ありませんが、フォーラムの更新情報に問題があるようです。あなたの返信の通知が表示されません。 OE/S/A/Anを含む波形をキャプチャして、具体的な問題点を確認していただけますか? 例えば、切り替えるとき
View full article
利用 AAOS 14 在 i.MX8QuadMax 上启用双显示器 嗨,团队、 我正在使用 AAOS 14 在 i.MX8QuadMax 上启用多显示器,需要您的帮助。 目前,我连接了两个外部显示器,并测试了以下组合: 情况 i:LVDS0_CH0 + MIPI_DSI0 MIPI_DSI0 上出现 Android 屏幕 LVDS0_CH0 显示空白屏幕 情况 ii:LVDS1_CH0 + MIPI_DSI0 MIPI_DSI0 上出现 Android 屏幕 LVDS1_CH0 显示空白屏幕 情况 iii:LVDS0_CH0 + MIPI_DSI1 LVDS0_CH0 上出现 Android 屏幕 MIPI_DSI1 显示空白屏幕 情况 iv:LVDS1_CH0 + MIPI_DSI1 MIPI_DSI1 上出现 Android 屏幕 LVDS1_CH0 显示空白屏幕 要求: 我们需要任意两个端口(LVDS0_CH0、LVDS1_CH0、MIPI_DSI0、MIPI_DSI1)来同时显示 Android 屏幕。 此外,我还检查了 DRM 的状态: write /sys/class/drm/card0-HDMI-A-2/status on write /sys/class/drm/card1-HDMI-A-2/status on 输出显示已连接,但仍只有一个显示屏处于活动状态。 能否请您帮助我们了解启用双屏显示输出需要哪些配置或更改? 谢谢。 Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 您好@harshi03 ,能否分享一下您使用的是哪张 dtb 图像? 致敬, Zhiming Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 嗨,感谢您的回复 我附上了截图,显示了用于在 imx8qm 上闪烁的 dtbo 映像。 谢谢! Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14     您好, 感谢您的反馈, 按照要求,我分享了用于 i.MX8QM 闪存的 DTBO 映像。能否请您帮助我们了解启用双屏显示输出所需的正确配置步骤? 具体来说,我们希望得到以下方面的指导 启用两个活动显示管道 (LVDS/MIPI) 所需的设备树 (DTB/DTBO) 正确路由显示接口 (DCSS/LCDIF) 以实现同步输出 AAOS 14 支持多显示器所需的任何内核或 DRM 配置 是否需要对 init.rc 或显示服务配置进行额外更改 目前,虽然两个显示屏在 DRM 中都显示为"connected" ,但同时只有一个显示屏处于活动状态。 如果您能在 i.MX8QM 上共享支持双显示器的参考配置或示例设置,那将非常有帮助。 谢谢     Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 你好@harshi03 AAOS 14 支持多显示器,dts 文件是 imx8qm-mek-car-m d.dts,请根据此 dts 进行修改。 android-imx_device_fsl/imx8q/mek_8q/BoardConfig.mk at android-14.0.0_2.2.0 - nxp-imx-android/android-imx_device_fsl - GitHub 致敬, Zhiming Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 你好@刘志明、 要使用 AAOS 14 源代码在 imx8qm 上显示两个显示器,需要做哪些更改,请提供步骤。 谢谢& Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 你好@刘志明、 我附上了 imx8qm-mek.dts 文件以供审查,显示映射是否正确,附上的 dtb 图像也请查看并指导我是否需要对第二台显示器进行任何更改。请尽快回复。 谢谢& Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 您好@harshi03 您使用的是 AOSP 还是汽车 AOSP? 最美好的祝愿, Zhiming Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 你好@刘志明、 我使用的是汽车 AOSP(i.MX8 quad max 平台上的 AAOS 14)。 谢谢& 。 Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 你好@刘志明、 感谢您的回复 按照建议,我们检查了 imx8qm-mek-car-md.dts 和 BoardConfig.mk(android-14.0.0_2. 2.0),并相应地更新了设置。 但是, imx8qm-mek-car-md.dts 文件似乎与源代码中已经存在的文件相同,我们 不清楚需要进行哪些具体修改。 即使验证了这一点,我们仍然只能看到一个活动的显示屏。请说明需要对 DTS 或配置进行哪些具体更改才能启用多显示器? 感谢并致意。 Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 你好@刘志明、 我已经通过 MIPI_DSI0 将 LVDS0_CH0 和 MIPI_DSI0 连接到主板上,它显示的是主显示器,但是通过 LVDS0_CH0 它将其视为 HDMI 显示器。 DRM、HWC 和 SurfaceFlinger 都能正确检测到 HDMI 显示屏, adb shell dumpsys SurfaceFlinger --display-id 显示 了端口 0 和端口 1 的 显示屏。 logcat 还显示了 分辨率为 1920x1080 的 DisplayDeviceInfo{"HDMI 屏幕"}。 但是,重启后, adb shell dumpsys 显示 屏显示 HDMI, mIsEnabled=false。我启用了 config_enableMultiDisplay=true 和 config_enableDisplayPortInDisplayLayout=true,将占用映射从 INSTRUMENT_CLUSTER 改为 MAIN,添加了 /vendor/etc/displayconfig/display_layout_configuration.xml,并在 config_localPrivateDisplayPorts 中添加了端口 1 。我尝试了 和 XML 格式,但 LogicalDisplayMapper 仍然只应用了包含端口 0 的布局,因此 HDMI 端口 1 从未添加到活动布局中。 有时第二个显示屏会变成 mIsEnabled=true,但重启后 又会 变成 false 。您能否确认 display_layout_configuration.xml 的 XML 模式 是否 正确 ,以及 LogicalDisplayMapper/DeviceStateToLayoutMap 是否需要任何额外的框架覆盖、DTS 配置或 NXP 特定补丁才能永久启用 HDMI 逻辑显示? 谢谢,并致以问候。 Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 你好@刘志明、 现在我使用的是午餐 mek_8q_car-trunk_staging-userdebug 您能建议我们应该选择什么特定的午餐命令来启用多显示器功能吗? 谢谢!
View full article
[フィルター: スパム] dexter_travis の投稿本文が「loan」、ボード「1007forum-board」に一致しました。 [フィルター: スパム] dexter_travis の投稿本文が「loan」、ボード「1007forum-board」に一致しました。 投稿件名: Re: i.MX95 EVK と SJA1105Q-EVB の接続 投稿本文: 残念ながら、私はお客様に SJA1105 ボードを貸与しなければなりませんでした。彼らは、DSA 実装がニーズに適しているかどうかを確認するために、93 車載 EVK でこれをテストして使用しています。 現時点では 95 の結果を確認することはできません。 テストと検証をしていただきありがとうございます。ボードが戻ってきたら、あなたの結果を再現してみます。それまではこのチケットを閉じておけます。 本文のテキスト「loan」がフィルター パターン「loan」と一致しました。 ユーザー[id=241378,login=dexter_travis]による投稿は、エンドユーザー側で発生する次のエラーのため拒否されました: メッセージ本文にローンが含まれていますが、このコミュニティでは許可されていません。投稿を送信する前にこのコンテンツを削除してください。
View full article