Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
Porting PN7160 to Android 14 on i.MX8M Nano board Recently NXP released a combined NCI stack for both PN7160 and Pn7220. The newest Android 14 porting guide AN14430 brings the two (PN7160 and PN7220) together.   The pros are it is easy to maintain, and faster integration and switching between products.  The cons are when you are using PN7160, you will see for APIs for PN7220, including EMVCo and TDA API. When you are using PN7220 also APIs for PN7160 can be seen (card emulation on PN7160).  This article is a step-by-step guide on how to build AOSP for PN7160 with the new combined NCI stack.  1  Hardware setup   i.MX 8M Nano Evaluation Kit | NXP Semiconductors   OM27160| Development Kits for PN7160 Plug’n Play NFC Controller | NXP Semiconductors   The connection between i.MX8M Nano and PN7160 OM29110ARD-B i.MX8M Nano EVK pin PN7160  OM29110ARD-B 3.3V J1003-1 VDD(3.3v) J1-4 5V J1003-2 VBAT (5v) J1-5  SDA.1 J1003-3 SDA J2-2 SCL.1 J1003-5 SCL J2-1 GPIO.25 J1003-37 IRQ J2-10 GPIO.28 J1003-38 REQ J4-2 GND J1003-39 GND J1-6 GPIO.29 J1003-40 VEN J4-1 2    Get AOSP for i.MX Nano Follow Android porting guide. https://www.nxp.com/docs/en/user-guide/ANDROID_USERS_GUIDE.pdf .2.1  Download i.MX Android BSP (Android14.0.0_1.2.0) from below link.  Android OS for i.MX Applications Processors | NXP Semiconductors   You will get the package imx-android-14.0.0_1.2.0.tar.gz    .2.2 Decompressing android BSP # tar -xvzf imx-android-1c4.0.0_1.2.0.tar.gz  When decompression is done, imx-android-14.0.0_1.2.0 subdirectory is created, in the folder, we can find imx_android_setup.sh, which is script for downloading android source code and commands for patching i.MX android bsp to AOSP. .2.3 Downloading Android source code # source ./imx-android-14.0.0_1.2.0/imx_android_setup.sh  The folder structure after AOSP downloading complete.  3     AOSP Adaptation NXP adds modifications to the AOSP code. Next, we add them step by step according to AN14430, move the content of them into correct folder in AOSP code base. .3.1  nxp_nci_hal_nfc #git clone "https://github.com/nxp-nfc-infra/nxp_nci_hal_nfc.git" #cd nxp_nci_hal_nfc #git checkout br_ar_14_comm_infra_dev #cp -rf *  ../android_build/packages/apps/Nfc/ #cd .. .3.2 nxp_nci_hal_libnfc-nci #git clone "https://github.com/nxp-nfc-infra/nxp_nci_hal_libnfc-nci.git" #cd nxp_nci_hal_libnfc-nci #git checkout br_ar_14_comm_infra_dev #cp -rf *  ../android_build/system/nfc/ #cd .. .3.3 nfcandroid_nfc_hidlimpl #git clone "https://github.com/nxp-nfc-infra/nfcandroid_nfc_hidlimpl.git" #cd nfcandroid_nfc_hidlimpl #git checkout br_ar_14_comm_infra_dev #cp -rf *  ../android_build/hardware/nxp/nfc #cd .. .3.4 nfcandroid_frameworks #git clone "https://github.com/nxp-nfc-infra/nfcandroid_frameworks.git" #cd nfcandroid_frameworks #git checkout br_ar_14_comm_infra_dev #mkdir ../android_build/vendor/nxp/frameworks #cp -rf * ../android_build/vendor/nxp/frameworks #cd .. .3.5 nfcandroid_emvco_aidlimpl #git clone "https://github.com/nxp-nfc-infra/nfcandroid_emvco_aidlimpl.git" #cd nfcandroid_emvco_aidlimpl #git checkout br_ar_14_comm_infra_dev #mkdir  ../android_build/hardware/nxp/emvco #cp -rf *  ../android_build/hardware/nxp/emvco #cd .. .3.6   nfcandroid_platform_reference #git clone "https://github.com/nxp-nfc-infra/nfcandroid_platform_reference.git" #cd nfcandroid_platform_reference #git checkout br_ar_14_comm_infra_dev #cp -rf vendor/nxp/*   ../android_build/vendor/nxp/ #cd .. .3.7 nfcandroid_infra_test_apps # git clone https://github.com/nxp-nfc-infra/nfcandroid_infra_test_apps.git # cd nfcandroid_infra_test_apps/ # git checkout br_ar_14_comm_infra_dev # cd test_apps/ # cp -rf SMCU_Switch/  ../../android_build/packages/apps/ # cp -rf EMVCoModeSwitchApp/  ../../android_build/packages/apps/Nfc/ # cd ../.. .3.8  nfcandroid_infra_comm_libs #git clone "https://github.com/nxp-nfc-infra/nfcandroid_infra_comm_libs.git" #cd nfcandroid_infra_comm_libs #git checkout br_ar_14_comm_infra_dev #cp -rf nfc_tda/  ../android_build/system/ #cp -rf emvco_tda/ emvco_tda_test/  ../android_build/hardware/nxp/emvco/ #cp -rf NfcTdaTestApp/  ../android_build/packages/apps/Nfc/ #cd .. After AOSP adaptation, folder is like below.  4   Apply AOSP patches please see AN14430, page10   # patch -p1 <  ../../../nfcandroid_platform_reference/build_cfg/build_pf_patches/AROOT_build_bazel.patch #patch -p1 < ../../../nfcandroid_platform_reference/build_cfg/build_pf_patches/AROOT_build_make.patch # patch -p1 < ../../../nfcandroid_platform_reference/build_cfg/build_pf_patches/AROOT_build_soong.patch # patch -p1 < ../../../nfcandroid_platform_reference/build_cfg/build_pf_patches/AROOT_frameworks_base.patch #patch -p1 < ../../../nfcandroid_platform_reference/build_cfg/build_pf_patches/AROOT_frameworks_native.patch #patch -p1 < ../../../nfcandroid_platform_reference/build_cfg/build_pf_patches/AROOT_frameworks_proto_logging.patch #patch -p1 < ../../../nfcandroid_platform_reference/build_cfg/build_pf_patches/AROOT_system_logging.patch #patch -p1 < ../../../../nfcandroid_platform_reference/build_cfg/build_pf_patches/AROOT_packages_modules_Bluetooth.patch  5    Adding the driver support. .5.1  get nfcandroid_platform_drivers from github #git clone "https://github.com/nxp-nfc-infra/nfcandroid_platform_drivers.git" #cd nfcandroid_platform_drivers #git checkout br_ar_14_comm_infra_dev #cd .. .5.2Create a folder named pn7160 under android_build/vendor/nxp-opensource/kernel_imx/drivers/nfc Copy below kernel drivers file from “nfcandroid_platform_drivers/drivers/pn7160/nfc/nfc “ into  “android_build/vendor/nxp-opensource/kernel_imx/drivers/nfc/pn7160/” Common.c  common.h   i2c_drv.c  i2c_drv.h spi_drv.h  spi_drv.c  Makefile  Kconfig Result of copying: .5.3 Modify makefile Replace Makefile default code with following code,  only add i2c for simplifying.  Now we need to add pn7160 Makefile and Kconfig to main Makefile and Kconfig Makefile Kconfig 6   Adding device tree Device tree is important since we need to tell our controller which pins we want to use for communication (this is always different between host controllers) The device tree need to be added into: “vendor/nxp-opensource/kernel_imx/arch/arm64/boot/dts/freescale” Create file with name “imx8mn-evk-pn7160.dts”, open the file and add following lines: Next task is to add .dts file into Makefile in the following location: . vendor/nxp-opensource/kernel_imx/arch/arm64/boot/dts/freescale Open Makefile and add: Final step is to add NXP_NCI_I2C as module in following file: . vendor/nxp-opensource/kernel_imx/arch/arm64/configs/imx8mn_gki.fragment Open imx8mn_gki.fragment and add: 7    Add device specific changes          The location of the device specific changes in under folder            . device/nxp/imx8m/evk_8mn 7.1 BoardConfig.mk        7.2 ShareBoardConfig.mk  7.3 compatibility_matrix.xml  7.4 device_framework_matrix.xml  7.5 evk_8mn.mk Add .mk files to specific device.mk and some product package directly to device.mk file so everything is build together with Android.   7.6 init.rc 7.7manifest.xml 7.8 ueventd.nxp.rc        Add permissions for drivers    8    Additional change in compatibility matrix Put changes into hardware/interfaces/compatibility_matrices Compatibility_matrix_8.xml  9    add changes into NXP mk files . android_build/vendor/nxp/nfc/device-nfc.mk  .android_build/vendor/nxp/emvco/device-emvco.mk    10    Build Android First , the source build/envsetup.sh command is executed to import shell functions that are defined in ${MY_ANDROID}/build/envsetup.sh. Then, the lunch evk_8mn-userdebug command is executed to set up the build configuration. #source build/envsetup.sh #lunch evk_8mn-userdebug   Possible build failures This error resulted from the incompatibility of file Kconfig, please use dos2unix command to fix it.  For some other redefine issues, please do the following. Go into file hardware/nxp/nfc/snxx/ Name Android.bp to _Android.bp Go into hardware/nxp/nfc/snxx/halimpl/power-tracker/ Name Android.bp to _Android.bp Go into file hardware/nxp/secure_element/snxxx/aidl/ Name Android.bp to _Android.bp Remove : pn8xx from hardware/nxp/ Remove : frameworks/base/core/res/res/values/config.xml.orig 11   Download build and flash images Go into “android_build/out/target/product/evk_8mn” and download all files without folders . When downloaded, open following two files and add: .in fastboot_imx_flashall.bat   .in uuu_imx_android_flash.bat   Change switches on i.MX8M Nano .    Flashing Android: when flashing Android images .    Running Android:  when images are flashed, put switches to Running Android and Android OS will start. Flash images .  Put i.MX8 to “Flash Android” .  Open a PowerShell as admin in the location where download images are .  Running following command .  ./uuu_imx_android_flash.bat -f imx8mn -a -d pn7160 12  Firmware update Download the FW from Github Open terminal at the FW location Run the following commands • adb push libpn7160_fw.so vendor/lib64/libpn7160_fw.so (for 64-bit version) and adb                  push libpn7160_fw.so vendor/lib/libpn7160_fw.so (for 32-bit version) • adb shell svc nfc disable • adb shell svc nfc enable    References: PN7160/PN7220 – Android 14 porting guide UG10156 : Android User’s Guide  Build Andriod image for PN7160 on i.MX8M Nano:  Andraz this is a step by step guider to port PN7160 to Android 14 on i.MX 8M Nano board NFC Controller Solutions
View full article
LINが通信のスレーブとして動作する場合の切断の問題 こんにちは。LPUART1をLINスレーブデバイスとして使用すると、一定時間後に通信が途切れてしまいます。この時点では、データの受信と送信は不可能です。受信したフレーム数をカウントするためにカウンターを使用しました。接続が中断されるたびに、カウンターの値は異なっていた。中断するまでに700フレーム以上かかる場合もあれば、3000フレームかかる場合もあった。以下の図は、割り込み発生後のLPUART1のレジスタ値を示しています。レジスタのどこに問題があるのか分析するのを手伝ってください。ご協力ありがとうございました。 Re: The problem of disconnection when LIN acts as a slave for communication こんにちは、 @Aoyng さん。 このトピックに関する以下のスレッドに返信しました。 https://community.nxp.com/t5/S32K/The-S32K314-uses-the-LPUART-to-configure-as-a-LIN-slave/mp/2365972/highlight/false#M58611 https://community.nxp.com/t5/S32K/The-LIN-communication-issue-using-the-FS6500-chip/mp/2366021/highlight/false#M58615 よろしくお願いいたします。 ダニエル Re: The problem of disconnection when LIN acts as a slave for communication LINのボーレートを変更して、その違いを確認してみましたか?
View full article
imx93evk 板可以支持 GNOME 吗? 亲爱的先生 我下载了 https://www.nxp.com/lgfiles/sdk/lsdk2512/nxp_apps_debian_lsdk2512_imx93evk.deb 然后在 imx93evk 板上安装了 nxp_apps_debian_lsdk2512_imx93evk.deb。安装后,没有 GNOME + GDM3。因此,我使用以下命令安装了它们: apt update apt install gdm3 task-gnome-desktop systemctl enable gdm3 systemctl start gdm3 安装 GNOME + GDM3 后,重启通常会挂起。我的疑问GNOME + GDM3 无法运行 imx93evk。为什么? 看来 LSDK-24.12_DEBIAN-12_LF-6.6.36 没有这个问题。 我在 imx8mpevk 上安装了 nxp_apps_debian_lsdk2512_imx8mpevk.deb,出现了 GNOME + GDM3,一切正常。 谢谢。 Re: Can imx93evk board support GNOME? 在我们较新的软件版本中,我们不再专注于在 imx93 主板上支持 GNOME。主要原因是i.MX93不包含显卡。当纯粹在 CPU 上运行 GNOME 和 GDM 时,系统资源消耗会变得非常高,整体用户体验也会明显下降。但是你使用旧版本在 imx93 主板上使用 gnome。 如果您想继续使用 GNOME 并获得更好的性能,我们建议您评估我们的 i.MX8MP 平台,该平台包含 GPU,可提供更加流畅的 GNOME 体验。 如有任何问题,请告诉我。
View full article
RT1060 LVGL-导向器-带旋转的示例 大家好 🙂 我正在评估配备 RK043FN66HS 显示屏的 MIMXRT1060-EVKB 主板。我从evkbmimxrt1060_lvgl_guider示例开始。我以纵向模式(272x480)生成了 GuiGuider 代码,并将其复制到 MCU 示例项目中。 为了旋转屏幕,我将定义DEMO_USE_ROTATE设为1。此时,一切正常。只是性能不是很好。你可以看到画面在更新(见图片一--黄色条正常横跨整个屏幕)。 框架结构 因此,我使用了CONFIG_LV_USE_ROTATE_PXP定义,并将其设置为1。但在此之后,许多文物开始出现(见图二)。 PXP 手工艺品 我到底做错了什么?PXP 是否与我的设置不兼容?如何提高性能--PXP 是正确的方法吗? 此致 乌韦
View full article
IMX8MP 远程核心共享内存驱动程序 日安 我正在尝试使用 DDR 缓冲区实现内核间的数据交换,以处理大量数据。我在 IMX8MP 上使用的是 Verdin devkit。内核版本 5.15我已经使用"/dev/rpmsg_ctrl0 "通过 RPMSG 实现了通信。 现在,我想从 CMA 空间分配 DDR 中的内存,并通过 RPMSG 消息将地址发送给 CortexM。为此,我使用了恩智浦的 "低功耗音频应用 - AN12195SW "示例。我从补丁中提取了 "rmtcore_shm "驱动程序代码,并通过 devshell 在内核环境中进行了编译。 然后,我在系统中安装了模块 "rmtcore-shm.ko"。 root@verdin-imx8mp-14762892:~# insmod ./rmtcore-shm.ko [ 235.945223] RMTCORE module started! root@verdin-imx8mp-14762892:~# 但是新设备 “/dev/rmtcore_shm” 没有出现在系统中。而当我试图打开它时,却出现了错误: rmtcore_shm_fd = open(RMTCORE_SHM_DEV, O_RDWR); ******************* "Unable to open device /dev/rmtcore_shm" ******************* 我可能需要更改设备文件。现在,我的 RPMSG 覆盖图是这样的: /dts-v1/; /plugin/; #include / { compatible = "toradex,verdin-imx8mp"; rmtcore_shm { compatible = "fsl,rmtcore-shm"; status = "ok"; }; }; &{/} { imx8mp-cm7 { compatible = "fsl,imx8mp-cm7"; clocks = <&clk IMX8MP_CLK_M7_DIV>; mbox-names = "tx", "rx", "rxdb"; mboxes = <μ 0 1 μ 1 1 μ 3 1>; memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>, <&rsc_table>, <&m7_reserved>; rsc-da = <0x55000000>; syscon = <&src>; fsl,startup-delay-ms = <500>; }; }; &i2c3 { status = "disabled"; }; &pwm4 { status = "disabled"; }; &resmem { #address-cells = <2>; #size-cells = <2>; m7_reserved: m7@0x80000000 { no-map; reg = <0 0x80000000 0 0x1000000>; }; vdev0vring0: vdev0vring0@55000000 { no-map; reg = <0 0x55000000 0 0x8000>; }; vdev0vring1: vdev0vring1@55008000 { no-map; reg = <0 0x55008000 0 0x8000>; }; vdevbuffer: vdevbuffer@55400000 { compatible = "shared-dma-pool"; no-map; reg = <0 0x55400000 0 0x100000>; }; rsc_table: rsc_table@550ff000 { no-map; reg = <0 0x550ff000 0 0x1000>; }; }; &sai3 { status = "disabled"; }; &sdma3 { status = "disabled"; }; μ { status = "okay"; }; &uart4 { status = "disabled"; }; 请告诉我需要做哪些更改,才能使 /dev/rmtcore_shm 出现在系统中,并能访问 DDR 中的内存分配?如果有人已经遇到过这种解决方案和示例。 感谢您的帮助。 Re: IMX8MP Remote core share memory driver 你好@Stan88 你查清楚了吗? 谢谢! 安迪 Re: IMX8MP Remote core share memory driver 是的,我也试过了 - 我在内核中编译了它,在内核菜单配置中看到了它 -"Remote Core Share Memory Driver" ,并激活了它。编译并部署了内核,构建了镜像并将其安装在板上。 lsmod无法显示该驱动程序,因为它不是动态加载的,而是内置模块。 dmseg也不包含有关该驱动程序的任何信息。尝试卸载模块时会出现错误,提示系统中存在此类模块: root@verdin-imx8mp-14762892:~# modprobe -r rmtcore-shm modprobe: FATAL: Module rmtcore_shm is builtin. Re: IMX8MP Remote core share memory driver 你好 如果你编译模块,你必须编译内核本身才能使其正常运行,并在 dmseg 输出中查看。 此致 Re: IMX8MP Remote core share memory driver 您需要: rmtcore_shm { compatible ="fsl,rmtcore-shm"; status ="ok"; }; 如果有其他人想要 FRDM_IMX8MPLUS 的这个版本,请在这里查看: https://github.com/AndrewCapon/rmtcore-shm/tree/main
View full article
DMS on iMX93 FRDM Hi Team, Has anyone implemented or evaluated a Driver Monitoring System (DMS) demo on the i.MX93 FRDM platform? I am specifically looking for details or references related to the following features: Face detection Face landmark detection Iris / eye landmark detection Driver behavior detection such as smoking and phone usage If any demo, reference design, SDK example, or partner solution is available, please share the details or relevant documentation. Thanks in advance for your support. Best regards, Ajnas FRDM-Training Re: DMS on iMX93 FRDM Hi @ajnas-c, Thank you for contacting NXP Support! You can check a detailed information and source code about this demo in the link below: https://github.com/nxp-imx-support/nxp-demo-experience-demos-list/tree/lf-6.12.3_1.0.0/scripts/machine_learning/dms Best Regards, Chavira
View full article
如何替换自定义板的 Yocto 电路板支持包中的 DDR 二进制文件? 你好 正在尝试替换自定义板的 Yocto 电路板支持包 中的 DDR 二进制。 新计算机已创建,配方 ddr-firmware 的目录也是在自定义元层中创建的,其中包含所需的文件。但是,为 SRC_URI 分配新值并删除配方附加中的原始值并不能阻止 Bitbake 在评估板的原始路径中搜索。不使用配方追加也不会改变本次搜索的任何内容。 似乎唯一有效的方法是掩盖原始配方并在自定义层中创建新配方。 但我不认为这是一种可取的方式。使用为自定义计算机创建的 DDR 二进制文件应该很容易做到这一点。这里可能遗漏了什么? 谢谢您! 起重机 Re: How to replace DDR binaries in Yocto BSP for the custom board? 好的,它能用。似乎与 NXP_FIRMWARE_LOCAL_DIR 中设置的文件夹不一致。但不管怎么说,它还是有用的。 还有一个问题,如何关闭自定义层 .bbappend 中的 NXP-EULA 许可证? 此致, 起重机 Re: How to replace DDR binaries in Yocto BSP for the custom board? 嗨,仙鹤 感谢您的回复。 客户的 DDR 还应该有 DDR 固件,你能否尝试参考 S32G3_Linuxbsp_44.0_user_Manual.pdf 在 Yocto 中版本电路板支持包期间添加 DDR 固件。 BR 乔伊 Re: How to replace DDR binaries in Yocto BSP for the custom board? 你好,乔伊、 感谢您的回复。 它是 S32G3,电路板支持包 是 "bsp44.0"。 此致, 起重机 Re: How to replace DDR binaries in Yocto BSP for the custom board? 嗨,起重机 感谢您与我们联系。 你使用的是哪个版本的电路板支持包? 您使用的是 S32G3 还是 S32G2 芯片? BR 乔伊 Re: How to replace DDR binaries in Yocto BSP for the custom board? 嗨,乔伊、 添加 .bbappend 时尝试过,但不起作用用于定制板。 ERROR: /home/crane/work/yocto/sources/meta-alb/meta-alb-bsp/recipes-bsp/ddr-firmware/ddr-firmware.bb: Unable to get checksum for ddr-firmware SRC_URI entry NXP-EULA: file could not be found The following paths were searched: 尝试了 .bbappend只有 SUMMARY,LICENSE ="CLOSED" 和 LIC_FILES_CHKSUM ="" ,也试过不使用 .bbappend、都得到了相同的错误信息。 这是处理自定义 DDR 二进制文件的唯一方法是掩盖恩智浦的原始配方并创建自定义配方,而不是根据原始配方添加配方附加吗? 此致, 起重机 Re: How to replace DDR binaries in Yocto BSP for the custom board? 嗨,仙鹤 请尝试修改文件夹 (fsl-auto-yocto-电路板支持包-build_s32g274ardb2/conf) 中 local.conf 文件。 accept_fsl_eula ="1" BR 乔伊 Re: How to replace DDR binaries in Yocto BSP for the custom board? 嗨,起重机 您是否在文件夹中添加了 NXP-EULA 文件? BR 乔伊 Re: How to replace DDR binaries in Yocto BSP for the custom board? 嗨,乔伊、 我试图将这个文件复制到原始配方或自定义配方中,但都不起作用。两种方法都能找到文件,但都会产生以下错误信息: ERROR: No recipes in default available for: /home/crane/work/yocto/sources/meta-crane/recipes-bsp/ddr-firmware/ddr-firmware_%.bbappend 由于我没有使用恩智浦的DDR二进制文件,我认为使用恩智浦生成的NXP-EULA没有意义。禁用检查 NXP-EULA 是感知的,对吧? 此致, 起重机 Re: How to replace DDR binaries in Yocto BSP for the custom board? 嗨,起重机 感谢您的回复。 我们应该找到问题的根源。请尝试在 Yocto 中版本 BSP44 以使用恩智浦的 DDR 固件和 NXP-EULA 文件。如果你能成功版本 BSP44,你可以尝试更换 DDR 固件,然后重新版本。 BR 乔伊
View full article
S32K312:如何设置芯片的低电压检测 你好,NXT 团队   我只能找到 LVRBLPEN,描述如下   LVRBLP 在 LPM 期间启用位控制 VD D_HV_B 功率域上的低压 RESET 检测 (LVRBLP) 在 LPM 中处于活动状态还是非活动状态   然而,312 引脚上没有 VDD_HV_B,这让我很困惑   顺祝商祺! 赵 Re: S32K312:How to set low voltage detection for chips 你好,彼得 感谢您的回复 我能这样理解吗,低压检测只能在 LPM 模式下关闭? 如果不能关闭,能否配置这个阈值? 我目前正在测试RESET将在2.8V左右触发信号 顺祝商祺! 赵 Re: S32K312:How to set low voltage detection for chips 你好 请问我是否要禁用低电压RESET功能,我需要操作哪个寄存器? 您无法在此设备上禁用低压检测。它会导致意想不到的行为,最后肯定会RESET。 我也认为没有理由这样做,因为我们只保证 uC 的运行符合规范。 顺祝商祺! Peter Re: S32K312:How to set low voltage detection for chips 你好,彼得 感谢您的回复请 问我是否要禁用低电压RESET功能,我需要操作 哪个寄存器? 看来将LVRBLPEN寄存器设置为0将阻止MCU在LPM模式下RESET,在其他模式下应该控制 哪个寄存器? 顺祝商祺! 赵 Re: S32K312:How to set low voltage detection for chips 你好 LVRBLPEN 控制 VDD_HV_B 功能域的低电压 RESET 检测在电源模式 (LPM) 期间是否保持活动状态。 术语 VDD_HV_B 是指内部电源功能域,而不是物理引脚。它是 MCU 内部高压功能域的一部分,为某些外设和逻辑模块供电。 以下是 S32K312 的功率域: 和 S32K312 的耗材表: 该手册在 S32K3xx 系列中很常见。因此,通常所有功能都是笼统描述的,然后有必要注意哪些功能对您的设备衍生产品真正有效。 顺祝商祺! Peter Re: S32K312:How to set low voltage detection for chips 你好,彼得 感谢您的回复 我目前的检测结果是 该芯片将直接在2.8V左右RESET,这是预期的 但是 5.8V 无法RESET 此中断必须配对,并且必须在中断本身内调用RESET函数 请问高低压RESET的不同表现是否归因于芯片的特殊设计 顺祝商祺! 赵 Re: S32K312:How to set low voltage detection for chips 你好 我能这样理解吗,低压检测只能在 LPM 模式下关闭?如果无法将其关闭,我们可以配置这个阈值吗? 我目前正在测试RESET将在2.8V左右触发信号 不能配置其阈值。恩智浦工厂对其进行了微调。 请遵守数据表中规定的操作条件。 顺祝商祺! Peter Re: S32K312:How to set low voltage detection for chips 你好 即使禁用了 LVDIE,设备仍将 RESET 为相同的 2.8 V 阈值。 这种行为(没有 ISR 输入并在低电压跳闸点立即 RESET)是预期的操作,还是低压检测应该能够在 RESET 之前执行其中断处理程序? 这是意料之中的行为。我不清楚 S32K3 是如何实现的,但通常有两套 LVD。一种触发信号中断,另一种在电压下降时触发信号RESET。 这就是你的 2.8 伏电压。因为中断没有意义。因为你的内存、内核执行、寄存器设置可能已经损坏。你也不会因为故障而中断任何操作。 顺祝商祺! Peter Re: S32K312:How to set low voltage detection for chips 你好 请问高低压RESET的不同表现是否归因于芯片的特殊设计 我不明白这个问题。 您可以在低压检测或 HVD 支持的标志上配置中断: 但是 5.8V 无法RESET 但是为什么要RESET呢?高电压不会像低电压一样导致设备故障。 1* - 最高 6.0 伏,使用寿命 10 小时;最高 7.0 伏,使用寿命 60 秒。 甚至可以在 7V 电压下运行。 请遵守数据表的绝对最大额定值。 顺祝商祺! Peter Re: S32K312:How to set low voltage detection for chips 你好 Peter 谢谢你的回复,抱歉,我之前可能没有明确我的问题。 当我启用高压检测中断启用 (HVDIE) 时,调试器可以在中断服务例程的电压约为 5.8 V 时停止。 但是,当我启用低压检测中断启用 (LVDIE) 时,MCU 会立即 RESET 于 ≈ 2.8 V,我永远无法进入 ISR。 即使禁用了 LVDIE,设备仍会在相同的 2.8 V 阈值处触发 RESET。 这种行为(没有 ISR 输入并在低压检测低电压跳闸点立即 RESET)是预期的操作,还是低压检测应该能够在 RESET 之前执行其中断处理程序? 致以最崇高的敬意 Zhao Re: S32K312:How to set low voltage detection for chips 你好 对于 RESET 级别的低压检测(在我的测试中以 2.8 V 跳闸的那个),数据表中是否列出了任何允许我移动其阈值的用户可见的微调位、寄存器字段或出厂配置选项,还是固定、不可屏蔽的电压监测? 客户看不到。此外,每个芯片都有自己的调节器校准值,这些校准值在恩智浦工厂进行修整,以满足规范要求。 对于中断级低压检测(应该更早触发的那个,在 3 V—4 V 左右),手册是否提供了可编程的寄存器场(例如LVDVSEL、LVDSEL 或类似),让我选择其确切的跳变点,如果可以,允许的步长/分钟-最大范围是多少? S32K3 (PMC‑LVDSC1) 上的中断级低压检测不提供 LVDVSEL 或 LVDSEL 等可编程阈值场。其跳闸点在出厂前已校准,无法通过软件进行调整。 如果两个阈值都有记录,请注明寄存器名称和位域;如果其中一个是硬接线,请说明哪一个是固定的 两者都无法让用户访问。 两个跳闸点都是硬接线。 顺祝商祺! Peter Re: S32K312:How to set low voltage detection for chips 你好, 我将 VDD 从 5 V 慢慢降低, 我预计中断电平低压检测将会在更高的阈值(3 V,3.2 V,不管配置如何)下触发,这样我的 ISR 才能在电源变得临界之前运行,只有在导轨最终达到 2.8 V 硬复位跳闸点时,MCU 才会 RESET。 对于 RESET 级别的低压检测(在我的测试中以 2.8 V 跳闸的那个),数据表中是否列出了任何允许我移动其阈值的用户可见的微调位、寄存器字段或出厂配置选项,还是固定、不可屏蔽的电压监测? 对于中断级低压检测(应该更早触发的那个,在 3 V—4 V 左右),手册是否提供了可编程的寄存器场(例如LVDVSEL、LVDSEL 或类似),让我选择其确切的跳变点,如果可以,允许的步长/分钟-最大范围是多少? 如果两个阈值都有文件记录,请注明寄存器名称和位字段;如果其中一个是硬连线,请说明哪个是固定的 最佳问候, Zhao Re: S32K312:How to set low voltage detection for chips 您好 以HVD为例,电压调节至6V,根据MCAL配置项的描述,PMC中断会在HVDAF寄存器被置1时触发,我在触发POWER_IP_E_ISR_HIGH_VOLTAGE事件后在McuErrorIsrNotification回调函数中执行了复位操作,复位后看到HVDAF寄存器被清0,但不会再被置1,所以PMC中断只会触发一次,只执行了一次复位操作,请问这个现象是正常的吗 顺祝商祺 liao
View full article
コア n のセカンダリ Thread のプログラム エントリを設定する方法は何ですか? コア n の 2 つの Thread (仮想コア) で 2 つの異なる OS を実行したいと考えています。しかし、Thread 0 は 0xffff_fffc からエントリを取得することはわかっています。しかし、Thread 1 の入り口を設定する方法がわかりません。この目的のためのレジスターまたは特別なアドレスはありますか? Re: What's the way to set program entrance of secondary thread of core n? 迅速なサポート誠にありがとうございました。 これをT4240/e6500に実装したいです。ここでは特定のレジスターが見つかりません。これに関して何か提案はありますか。 Re: What's the way to set program entrance of secondary thread of core n? こんにちは、 マルチコア/マルチスレッド プロセッサの場合、コアのThread 0 は通常、ブート時にアドレス 0xFFFF_FFFC からエントリ ポイントを取得します。ただし、Thread 1 の場合は、通常、異なるメカニズムが存在します。 スレッド 1 のプログラム エントリを設定するには: 1.プライマリThread(Thread 0)は、Thread 1のセットアップと起動を担当します。 これは通常、セカンダリThreadのリセットベクターまたはエントリポイントアドレスを制御する特定のレジスタを通じて行われます。 正確な実装は特定の NXP プロセッサによって異なりますが、一般的には次のようになります。 1. Thread 1のアプリケーションコードを適切なメモリ位置にロードする 2. Thread 1のエントリポイントレジスタをこの位置を指すように設定する 3. Thread 1をリセットから解放して実行を開始する Arm Cortex アーキテクチャのプロセッサを使用している場合、多くの場合、次の処理が行われます。 - リセットベクターアドレスを特定のSRC(System Reset Controller)レジスタに書き込む - 制御ビットを設定してセカンダリThreadをリセットから解放する よろしくお願いします。
View full article
无法将 iMX93EVK 中的 lpuart1 更改为 lpuart7 在过去的一个多月里,我一直在尝试将默认控制台从 lpuart1 更改为 lpuart7。我想更改 linux 控制台和 u-boot 控制台,或者至少我想查看日志。这是为了让 iMX93EVk 的 SOC 在新的载体上工作。然而,我却无法做到这一点。这是我尝试使用的补丁。还有我发现的所有我认为可以帮助我的帖子。我错过了什么? i-MX-93-91-使用yocto项目调试控制台重定位 i-MX-Processors/Change-UART-for-imx93-in-uboot-and-kernel i-MX 处理器/imx8ULP 将 u-boot 串行控制台从 UART5 更改为 UART4 非常感谢你们的帮助,谢谢 Linux Re: Cant change lpuart1 to lpuart7 in iMX93EVK 你好 要成功地将调试控制台从 lpuart1 更改为 lpuart7,你需要修改三个关键元器件:U-启动、Arm 可信固件和 Linux 内核配置。 完整解决方案: 1.对于 U-Boot(lf_v2024.04 分支): - 修改设备树文件以更新控制台路径和引脚配置 - 更新板配置以指向 lpuart7 - 使用 imx93_11x11_evk_defconfig 作为配置基础 2. 对于 Arm 可信固件(lf_v2.10 分支): - 更改 ATF 源中的 UART 控制台位置 - 更新 IMX_LPUART_BASE 以指向 lpuart7 的基址 - 在取消设置 LDFLAGS 后使用 "make plat=imx93" 构建 3. 对于 Linux 内核: -将 bootargs 更新为引用 ttylP6(对应于 lpuart7) -更新设备树中的选定部分 该过程需要使用这些修改后的元器件重建 flash.bin 映像。另一位客户需要将 i.MX93 上的 UART1 重新映射到 UART8,也成功解决了类似问题。 此致 Re: Cant change lpuart1 to lpuart7 in iMX93EVK 谢谢,我无法确认该解决方案是否有效。我已经执行了您的所有更改,但发现错误出在硬件本身。一旦定制载体修好了,一切都测试好了,我就可以确认了。 感谢您的回复
View full article
HashDataDefSrv 返回参数无效 你好,@lukaszadrapa ,我正在使用 HseResponse = HashDataDefSrv(HSE_HASH_ALGO_SHA2_256,(uint32_t) sizeof(test)、test,&image_hash_length,image_hash,HSE_SGT_OPTION_NONE); 函数来计算存储为 const uint_8 [] 的图像的 HASH,但我得到的返回结果是 Parameter Invalid(参数无效)。于是我决定在一个更小的数组上测试哈希值,但也遇到了类似的问题。 请帮助解决这个问题! 此外,在使用 HSE 和 RTD 3.0.0 时,我还发现了一个小问题、即:- 当我在没有任何断点的情况下运行代码时,我的 HSE 应用程序接口总是响应 NOT_OK(not ok 意味着除了 HSE_OK 或 HSE_SUCCESS 之外的任何其他意思),但当我手动跳过这些应用程序接口时,我得到的是 HSE_SUCCESS Re: HashDataDefSrv returns Paramter Invalid 你好@lukaszadrapa 我试过你的解决方案(禁用 D_CACHE_ENABLE),但没有用。 而你却只字未提我的附加问题。 Re: HashDataDefSrv returns Paramter Invalid 你好@R_S002 第一步,您是否可以尝试禁用项目中的数据缓存?这是 HSE_SRV_RSP_INVALID_PARAM 错误的常见原因 。用于与 HSE 通信的所有数据对象必须强制使用非高速缓存内存。禁用数据缓存可以快速确认是否存在这种情况。 此致, Lukas Re: HashDataDefSrv returns Paramter Invalid 如果不是数据缓存造成的,我需要这两个问题的更多细节。 关于哈希服务,您能否在将其发送给 HSE 之前截取一张服务描述符的截图? 关于第二个问题,您能否检查一下 HSE 返回的错误代码是什么?如果步进代码时能正常工作,则可能是某种时间问题或一致性问题。在执行这些 HSE 服务时,您是否尝试过禁用中断? Re: HashDataDefSrv returns Paramter Invalid hi@lukaszadrapa 我一回到办公室就会提供服务描述符 第二个问题返回 HSE_SRV_RSP_NOT_SUPPORTED。您能更准确地说明"禁用中断" 吗? Re: HashDataDefSrv returns Paramter Invalid 你好@lukaszadrapa HASH 函数执行前的图像 Re: HashDataDefSrv returns Paramter Invalid 我在板上做了非常快的测试,我能看到同样的问题。我从未遇到过散列问题,让我检查一下是怎么回事。我今天没时间,下周再检查。 此致, Lukas Re: HashDataDefSrv returns Paramter Invalid 好吧,很可能是 pHashLength 导致的。该指针指向的变量必须初始化为哈希缓冲区的大小。不能为零。HSE 服务 API 参考手册说: " 输入/输出:指向存储以字节为单位的哈希长度的 uint32_t 位置的指针。 在调用此服务时,此参数应包含主机提供的缓冲区大小。 主机提供的缓冲区大小。请求完成后,应存储 返回值的实际长度。如果缓冲区 小于散列大小,散列将被截断" 因此,请检查该参数的内容。 Re: HashDataDefSrv returns Paramter Invalid 能否举例说明您是如何尝试并验证 HASH 函数的? Re: HashDataDefSrv returns Paramter Invalid 下面是我过去用过的一个简单例子: int main(void) { hseSrvResponse_t HseResponse; uint8_t hash_result[64] = {0U}; uint32_thash_length = 64U; /* 检查 Fw 安装状态*/ WaitForHSEFWInitToFinish(); /* 使用的测试向量:https://www.di-mgt.com.au/sha_testvectors.html*/ /* 输入信息:一百万 (1,000,000) 次重复字符"a" (0x61)。*/ /* SHA-512 */ /* 预期结果:*/ /* e718483d0ce76964 4e2e42c7bc7bc15b463 8e1f98b13b204428 5632a803afa973eb de0ff 244877e60a 4cb0432c577c31b eb009c5c2c249a2e 4edb2c49a2e 4ead0f2477e60a 4c0432c5c2c49a2e 4edb2c49a2e 4ead0f2477ea 60a 4c0432c5c2c49a2e 4ead9a2e 17ad8cc09b */ HseResponse = HSE_HashDataBlocking ( MU0, HSE_ACCESS_MODE_ONE_PASS, 0, HSE_HASH_ALGO_SHA2_512, 0x408000U、/* 使用附带的 cmm 脚本将 100 万个 "a "字符编程到此地址 */ 1000000, /* 数据长度 100 万 */ hash_result, & hash_length ); for (;;) { } } 要散列的数据是通过外部脚本编程到闪存中的。
View full article
Trace32デバッグを使用したS32K388 拝啓、 Trace32 を使用して S32K388 をデバッグしたいと思います。Trace32 プラグインをインストールするには、以下のリンクにアクセスしました。 https://community.nxp.com/t5/S32-Design-Studio-Knowledge-Base/HOWTO-Install-Lauterbach-TRACE32-debugger-plug-in-into-S32/ta-p/1112237 その後、Trace32 デバッグ構成を使用して、シングルコア プロジェクトとマルチコア プロジェクトの両方の新しいプロジェクトを作成しました。 しかし、Trace32 を使用してデバッグしようとすると、常にエラー メッセージが表示されます。 また、複数のコアをデバッグする場合、 M7_1_0.elfとM7_2_0.elfをプログラムできないという問題が発生します。 これをテストするのを手伝っていただけますか? ありがとうございます。 BR、 ショーン・ウー Re: S32K388 using Trace32 debug こんにちは、 S32DS から直接どのように動作するのかはわかりません。動作させることができなかったからです。 しかし、私はS32DSを使ってTrace32 powerviewを起動したことがありませんでした。 T32 フォルダーから PowerView を起動し、メニューからプログラミング スクリプトを実行するだけです。 ここにはプログラミング スクリプトがあります。Powerview で実行し、デバイスをプログラムするだけです。 その間に、S32DS 経由で CAN を使って起動して実行できるかどうかを確認します。 よろしくお願いいたします。 ピーター Re: S32K388 using Trace32 debug こんにちは、 petervlnaさん s32k38x.cmmとs32k38x.bin(おそらくあなたのフォルダ内のこの名前を私に知らせてもらえますか?このファイルはありません。 ありがとうございます。 BR、 ショーン・ウー Re: S32K388 using Trace32 debug こんにちは、 プライベートメッセージで送信しました。 よろしくお願いいたします。 ピーター Re: S32K388 using Trace32 debug 親愛なるペテヴルナ様 ご協力いただきありがとうございます。 BR、 ショーン・ウー Re: S32K388 using Trace32 debug 親愛なるpetervlna様 私はあなたの s32k38x.cmm を使用していますが、うまく動作します。ご協力いただきありがとうございます。 BR、 ショーン・ウー
View full article
RFID Discover 上的 Mifare Desfire EV3 实践指南 在日常工作中,许多客户询问如何开发 MIFARE DESFire EV3。是的,Mifare Desfire EV3 确实是一款安全性很高的产品,但相关的应用文档复杂且难以使用,客户可能需要花费大量时间进行研究,因此我想与您分享这些内容。
View full article
适用于 ARM 2.2 的 S32 设计工作室 — Windows/Linux 激活码电子邮件 你好! 我想下载适用于 ARM 2.2 的 " S32 Design Studio — Windows/Linux " 然后通过电子邮件将激活码发送给我。 当我在恩智浦网站上点击 " S32 Design Studio for Arm 2.2 — Windows/Linux " 的 " 下载 " 按钮时,我会被带到恩智浦的 “我的” 页面,但下载从未发生过。 我已经登录了我的恩智浦账户,并且已经完成了几十次步骤。 感谢您抽出宝贵时间! -里奇 S32K1系列的S32SDK Re: S32 Design Studio for ARM 2.2 – Windows/Linux activation code email 嗨,彼得,我确实下载过一次,但我从未收到过激活码。 。 如果激活码是通过电子邮件发送的,我没有收到。可能是我们的电子邮件过滤器出了问题,不过我现在似乎可以正常接收恩智浦的电子邮件了。 他们能重新发送激活码吗?感谢您的宝贵时间! 诚挚的 Rich Mullen Re: S32 Design Studio for ARM 2.2 – Windows/Linux activation code email 你好 我又与 SW 团队进行了交谈,他们告诉我,看起来你已经成功下载,而且还分配了激活密钥。 这个问题还有效吗? 顺祝商祺! Peter Re: S32 Design Studio for ARM 2.2 – Windows/Linux activation code email 你好 好的、 以下是您机器的激活代码:A07C-4C9E-C3B9-A436 顺祝商祺! Peter Re: S32 Design Studio for ARM 2.2 – Windows/Linux activation code email 谢谢你,彼得!我拿到了代码,感谢您抽出时间处理此事!
View full article
eIQ NXP 微控制器入门指南 eIQ® 由多个硬件和软件组件构成,旨在使用户能够在嵌入式设备上运行机器学习模型。NXP 微控制器 eIQ 的一些关键组件包括: eIQ Time Series Studio- 用于创建和部署用于时间序列分析的经典机器学习和神经网络模型的 PC 工具 eIQ 推理引擎——作为 MCUXpresso SDK 或 Yocto Linux 的一部分,用于在嵌入式设备上对预训练模型进行推理。MCU 的选项包括 TensorFlow Lite,以及即将推出的 ExecuTorch。 eIQ Neutron NPU- 一种加速器核心架构,嵌入在特定的 NXP 设备中,例如MCX N和i.MX RT700,用于加速神经网络模型的推理 eIQ Neutron SDK-包含中子变流器工具,用于使用 eIQ Neutron NPU 加速模型 eIQ Model Zoo- 浏览在 NXP 芯片上测试过的模型 eIQ Model Watermarking Extension——增强自定义模型的版权保护 eIQ Model Creator - 与 ModelCat 合作进行基于视觉的模型开发 在NXP设备上使用AI/ML有两条主要路径。 使用eIQ Time Series Studio为时间序列应用生成并部署模型 使用 eIQ 推理引擎部署预训练的神经网络模型 本附带的实验将涵盖第 2 种选项,展示如何运行 MCUXpresso SDK 中的 TensorFlow Lite for Microcontrollers(TFLM)推理引擎示例。在 MCUXpresso SDK 中,以下 NXP 设备支持 TFLM: MCX N i.MX RT500 i.MX RT600 i.MX RT700 i.MX RT1050 i.MX RT1060 i.MX RT1064 i.MX RT1160 i.MX RT1170 i.MX RT1180 有关如何下载 eIQ 推理引擎软件库以及使用 VS Code、MCUXpresso IDE、IAR、Keil MDK 或 ARM GCC 运行该库的完整详细信息,请参阅附带的入门指南。 欲了解有关 eIQ 及 i.MX RT 系列的一些实操实验室的更多信息,请参阅以下链接: 适用于 MCU 的 eIQ 软件: MCU的eIQ库在MCUXpresso SDK Builder或Github上 用于时间序列应用的 eIQ Time Series Studio(TSS) eIQ Neutron SDK(用于中子变流器工具) MCU 动手实验室 eIQ Time Series Studio 入门实验室 i.MX RT700 NPU 入门实验室 MCX N NPU 入门实验室 TFLite for Microcontrollers 入门实验室   相关资源: eIQ TSS 文档 eIQ MCUXpresso SDK 文档 eIQ 常见问题解答 用于 AI/ML 示例的 Application Code Hub 用于 i.MX 应用处理器的 GoPoint 由 ModelCat.ai 提供的 eIQ Model Creator eIQ模型库 eIQ Neutron NPU 研究论文 eIQ 应用说明 i.MX RT700 eIQ Neutron NPU 启用和性能 (AN14700) i.MX RT700 USB 摄像机对象检测(AN14718),带软件 深入探索 TensorFlow 量化器调试器工具 (AN14493) 使用 TF-Lite 中的 K-Means 聚类进行 eIQ 异常检测 (AN12766) 迁移学习和数据集 (AN12892) 使用TensorFlow Lite进行手写数字识别 (AN12603) 使用 CMSIS-NN 库在 MNIST 数据集上开发 Caffe 模型 (AN12781) 带 TensorFlow Lite 推理功能的性别语音识别(AN13065) i.MX RT
View full article
如何使 ATF 装载地址恒定? 我正在开发一款自定义 s32g3 板,我使用的是 yocto BSP43,每当我添加任何主要功能(例如:-HSE、SECURE 启动)时,ATF 的负载地址都会动态变化,这会导致引导加载程序更改以配置新的负载地址。因此,只要 A-CORE 或 ATF 有更新,我就会同时更新引导加载器。那么,有没有办法可以将加载地址设置为 ATF,这样即使在多次版本或添加新功能之后,加载地址也保持不变,其余的将与设置的加载地址对齐。 注意:这样做的主要目的是避免每次 ATF 更新时都更改引导加载程序 Re: how to make ATF load address constant ? 你好 Chenyin, 我已经更改了 BL2_BASE,它可以正常工作,但是负载地址仍在动态变化,例如,如果我添加 HSE 模块,我得到的负载地址与没有 HSE 模块的代码包不同,我们如何将负载地址设为静态?考虑到 BL2_BASE 在所有情况下都是一样的。 谢谢 sandeep Re: how to make ATF load address constant ? 你好,@sandeep3 谢谢你的帖子。 我建议在构建 TFA 时添加 BL2_BASE=$Address_Specified,然后可以计算出加载地址,你可以参考 s32_common.mk 了解详情。 BR 切宁
View full article
在应用定时测量过程中发生低于阈值的意外 VC_OV 事件 您好,      我使用的是采样率为 24 的应用定时测量模式,并将过压 (OV) 阈值设置为 4250 mV。 但是,在充电过程中,当电池电量达到80%左右(约4077 mV)时,某些电池偶尔会触发信号 VC_OV 事件。手动测量后,实际电池电压不会超过 OV 临界值。 是什么原因导致了这种行为,即即使测量电压明显低于阈值,也会发生 VC_OV 事件? 感谢您的帮助。 Mark 回复: Unexpected VC_OV Events Below Threshold during Application Timed Measurement 您好,马克, 请下载 MC33774A 功能安全手册并参阅其中的第 10、11 节。有一种 FTME(容错测量误差)的描述就是针对你这种情况的。 请从 MC33774A 产品页面的 “功能安全” 部分下下载功能安全手册。 致以最崇高的敬意 约瑟夫 回复: Unexpected VC_OV Events Below Threshold during Application Timed Measurement 你好,约瑟夫、 非常感谢你们一如既往的支持。 硬件设计已经过当地 FAE 的审查和确认。由于 MC33774A 已完全集成到电池模块中,我们无法使用示波器直接探测单个电池的电压,这一点令人遗憾。 我们还怀疑,对充电电流的控制不足可能会导致瞬态尖峰,进而引发零星的过电压(OV)事件。您的专业解释进一步证实了我们的假设,即这些事件很可能是由瞬态行为引起的。 作为后续问题,我们想问: 您是否推荐任何基于软件的方法来帮助识别由瞬态峰值引起的 OV 事件? 再次感谢您的宝贵帮助。 致以最崇高的敬意, Mark 回复: Unexpected VC_OV Events Below Threshold during Application Timed Measurement 您好,马克, 感谢您提供零件编号和示意图。但是,在原理图中,我看不出你是否在Cells和CTx CBx引脚之间使用了推荐的元器件。有关这些推荐元器件,请参阅 MC33774A 完整数据表中的第 11.1.1.2 节。 请从 MC33774A 产品页面 的 "安全 "部分下载 MC33774A 的 完整数据表。 在快速充电过程中,可能会出现短暂超过 OV 门限的瞬态电压。这些峰值可能无法通过手动测量捕获,但可以由 MC33774A 检测到。请使用示波器测量触发信号 OV 的单个电池的电压,以检查是否存在瞬态电压。 请确保在充电/测量过程中没有打开平衡装置。在平衡过程中,不保证测量电压。 致以最崇高的敬意 约瑟夫 回复: Unexpected VC_OV Events Below Threshold during Application Timed Measurement 你好,约瑟夫、 谢谢您的答复。 很抱歉之前没有提供足够的信息。 我们使用 MC33774ATP1AE。 这里是零件示意图。 感谢您的帮助。 致以最崇高的敬意 Mark Re: Unexpected VC_OV Events Below Threshold during Application Timed Measurement 您好,马克, 请分享您正在使用的元器件的完整部件号。 请分享您的示意图,包括电压等级和部件值。 致以最崇高的敬意 约瑟夫
View full article
在 SNVS 内的 HPRTC 上定期& 警报中断 您好,NXP团队: 我正试图配置每 1 秒一次的周期性中断和 30 秒后的警报中断。我的 ISR 看起来是这样的 void SNVS_HP_NON_TZ_IRQHandler(void) { volatile uint32_t flagStatus = SNVS_HP_RTC_GetStatusFlags(SNVS); volatile uint32_t result = flagStatus & kSNVS_RTC_PeriodicInterruptFlag; snvs_hp_rtc_datetime_t rtcDate; if (result) { __asm(" NOP"); SNVS_HP_RTC_GetDatetime(SNVS, &rtcDate); dbg_info("Periodic Interrupt @ %04hd-%02hd-%02hd %02hd:%02hd:%02hd\r\n", rtcDate.year, rtcDate.month, rtcDate.day, rtcDate.hour, rtcDate.minute, rtcDate.second); if (rtcDate.second == 30U) { __asm(" NOP"); __asm(" NOP"); __asm(" NOP"); } SNVS_HP_RTC_ClearStatusFlags(SNVS, kSNVS_RTC_PeriodicInterruptFlag); } if (SNVS_HP_RTC_GetStatusFlags(SNVS) & kSNVS_RTC_AlarmInterruptFlag) { __asm(" NOP"); dbg_info("Alarm:\r\n"); /* Clear alarm flag */ SNVS_HP_RTC_ClearStatusFlags(SNVS, kSNVS_RTC_AlarmInterruptFlag); } SDK_ISR_EXIT_BARRIER; } 我的初始化过程是这样的 SNVS_HP_RTC_GetDefaultConfig(&snvsRtcConfig); snvsRtcConfig.periodicInterruptFreq = 15; SNVS_HP_RTC_Init(SNVS, &snvsRtcConfig); dbg_info("SNVS HP example:\r\n"); /* Set a start date time and start RT */ rtcDate.year = 2014U; rtcDate.month = 12U; rtcDate.day = 25U; rtcDate.hour = 19U; rtcDate.minute = 0; rtcDate.second = 0; /* Set RTC time to default time and date and start the RTC */ SNVS_HP_RTC_SetDatetime(SNVS, &rtcDate); SNVS_HP_RTC_StartTimer(SNVS); dbg_info("\r\n"); SNVS_HP_RTC_GetDatetime(SNVS, &rtcDate); rtcDate.second = 30u; SNVS_HP_RTC_SetAlarm(SNVS, &rtcDate); /* Get alarm time */ SNVS_HP_RTC_GetAlarm(SNVS, &rtcDate); /* Print alarm time */ dbg_info("Alarm will occur at: %04hd-%02hd-%02hd %02hd:%02hd:%02hd\r\n", rtcDate.year, rtcDate.month, rtcDate.day, rtcDate.hour, rtcDate.minute, rtcDate.second); /* Enable SNVS alarm interrupt */ SNVS_HP_RTC_EnableInterrupts(SNVS, kSNVS_RTC_AlarmInterrupt); SNVS_HP_RTC_EnableInterrupts(SNVS, kSNVS_RTC_PeriodicInterrupt); NVIC_EnableIRQ(SNVS_HP_NON_TZ_IRQn); 在我的 ISR 中,我观察到当警报中断和定期中断同时发生时(HPSR 中的两个位都被设置),定期定时器标志将在 ISR 中首先被清除,因为它具有隐含优先级(如果检查定期 ISR,则优先)。在 if 块中,当定期计时器状态标志被清除时,由于某种原因,我看到我的警报状态标志也被清除,而定期计时器的定时器标志将再次转换为 1。只有下一次才会清除。正因为如此,我的闹钟中断服务完全失灵了。 是否在实施过程中出了什么问题? 谢谢! Re: Periodic & alarm interrupts on HPRTC within SNVS 您好! 了解。目前,我将只使用周期定时器来充当警报中断的角色。 感谢您的及时支持! Re: Periodic & alarm interrupts on HPRTC within SNVS 你好@AmanKumbhani, ,我复制了你的问题。我将在内部进行检查,以确认这是否是一个错误,或者这两个功能是否相互排斥。这可能需要一些时间。 不过,就您的应用而言,我认为以下 if 条件可以起到警报中断的作用: if (rtcDate.second == 30U) { __asm(" NOP"); __ asm(" NOP"); __asm(" NOP"); } BR Habib Re: Periodic & alarm interrupts on HPRTC within SNVS 嗨,哈比卜 感谢您的回复。老实说,我没有固定的用途。我正在对此进行测试,以便通过包装器为应用程序层提供功能,因此遇到了这个问题。 您能在自己的电脑上重现这个问题吗? 谢谢您! Re: Periodic & alarm interrupts on HPRTC within SNVS 你好,@阿曼-库姆巴尼、 对延迟回复表示歉意。为了更好地为您提供支持,能否请您说明申请的目的? 在我看来,您似乎可以完全依赖于周期性中断,因为您已经在每秒钟输入一次中断。你可以像在以下几行代码中一样简单地轮询秒值:i f (rtcDate.Second == 30U) { __asm(" NOP"); __ asm (" NOP "); __asm (" NOP "); } 最终,两种方法都会触发信号相同的中断,因此仅使用定期中断可能会简化您的实现。 BR Habib. Re: Periodic & alarm interrupts on HPRTC within SNVS 您好@AmanKumbhani, ,我将运行测试来复制这一问题,并详细查看这一行为。感谢您的耐心等待。 BR Habib. Re: Periodic & alarm interrupts on HPRTC within SNVS 嘿、 谢谢你的澄清!我会研究一下,并按照您的建议进行一次测试。 最好的 安缦 Re: Periodic & alarm interrupts on HPRTC within SNVS 你好,@阿曼-库姆巴尼、 造成这一问题的根本原因有两个。第一个问题与您配置 RTC 警报的方式有关: SNVS_HP_RTC_EnableInterrupts(SNVS, kSNVS_RTC_AlarmInterrupt); SNVS_HP_RTC_EnableInterrupts(SNVS, kSNVS_RTC_PeriodicInterrupt); 如第 24.6.1.3 章所述在 RM 中的 "SNVS_HP 控制寄存器(HPCR)"中,使能警报 "HPTA_EN "的位与 32 kHz 时钟同步。这意味着,当您设置其值时,需要等待它的更新,因为内核的运行速度通常比 32 kHz 快得多。这种等待机制的一个示例可以在启用 "RTC_EN "位的函数"SNVS_HP_RTC_StartTimer" 中看到,如下图所示: 另一方面,第二个问题与函数 "SNVS_HP_RTC_ClearStatusFlags "的工作方式有关。该函数对寄存器执行 OR 运算。下面就是一个例子: 寄存器:11 (两个标志都已设置。) 屏蔽:10(kSNVS_RTC_PeriodicInterruptFlag) OR:11 因此,当调用 "SNVS_HP_RTC_ClearStatusFlags "时,它将向 HPSR 寄存器写入 "0b11",从而清除周期和警报标志,因为这些位通过写入 1 来清除。因此,在清除状态标志之前,必须先读取这两个状态标志。因此,以下代码将导致错误: if (SNVS_HP_RTC_GetStatusFlags(SNVS) & kSNVS_RTC_AlarmInterruptFlag) { __asm(" NOP"); dbg_info("Alarm:\r\n"); /* Clear alarm flag */ SNVS_HP_RTC_ClearStatusFlags(SNVS, kSNVS_RTC_AlarmInterruptFlag); } 希望对您有所帮助。 BR Habib
View full article
OpenAMP support for m33 core on i.mx93 Hey, I know this question has already been asked here Solved: Re: RPMsg support for m33 core on i.mx93 - NXP Community but I do not understand the accepted answer. In the NXP's Real-Time Edge software framework the RPSMG support is only listed for FreeRTOS. The i.mx95 A7 core, however, has already been added lately https://github.com/zephyrproject-rtos/zephyr/pull/86923 So my question is if NXP is planing to add also support for the m33. And if not what would be needed to add support manually? Re: OpenAMP support for m33 core on i.mx93 To enable inter-core communication between Linux (running on the A-core) and Zephyr (running on the M33 core), the recommended starting point is the openamp_rsc_table sample from Zephyr. This sample leverages: - OpenAMP on Zephyr - remoteproc and rpmsg on Linux Prerequisites Linux setup Linux BSP: use NXP's official BSP  https://github.com/nxp-imx/linux-imx/tree/lf-6.12.y Device tree: use the `-rpmsg` variant, e.g. imx93-11x11-evk-rpmsg.dts U-Boot: run `prepare_mcore` before booting Linux  Zephyr setup (M33 core) To run the openamp_rsc_table sample successfully, shared memory between the host and remote cores must be defined using the `zephyr,ipc_shm` property in a DTS overlay. Next, add the MU node in nxp_imx93_m33.dtsi: ``` mu1: mu1@44220000 {     compatible = "nxp,imx-mu";     reg = <0x44220000 DT_SIZE_K(64)>;     interrupts = <21 0>; }; ``` Then, linker script update - add the resource table section in `linker.ld`: ``` #if defined(CONFIG_OPENAMP_RSC_TABLE) SECTIONS {     SECTION_PROLOGUE(.resource_table,, SUBALIGN(8)) {         KEEP(*(.resource_table*))     } GROUP_LINK_IN(ROMABLE_REGION) } #endif ``` Configuration adjustments for i.MX93 The RX and TX IDs on i.MX93 differ from other boards. You must override the default values in the `.conf` overlay file: ``` CONFIG_IPM_IMX_MAX_DATA_SIZE_16=n CONFIG_IPM_IMX_MAX_DATA_SIZE_4=y CONFIG_OPENAMP_WITH_DCACHE=y CONFIG_LOG=y CONFIG_OPENAMP_RSC_TABLE_IPM_RX_ID=1 CONFIG_OPENAMP_RSC_TABLE_IPM_TX_ID=0 ``` Sample PRs https://github.com/zephyrproject-rtos/zephyr/tree/main/samples/subsys/ipc/openamp_rsc_table/boards https://github.com/zephyrproject-rtos/zephyr/pull/86923 https://github.com/zephyrproject-rtos/zephyr/pull/79220/commits Linux patch requirement For proper operation on i.MX93, apply the following Linux patch: https://lore.kernel.org/imx/CAEnQRZDoYvK-YXLjqbXsRAWDkHrWNOoR1OCCWxs+AfNUDuPB_w@mail.gmail.com/T/ Final steps before execution Before launching the application: Run `prepare_mcore` in U-Boot. Use the `-rpmsg` device tree blob. Follow the steps in the Application Note AN5317. Additional Resources i.MX Linux User Guide - https://www.nxp.com/docs/en/user-guide/UG10163.pdf Application Note AN5317 - https://www.nxp.com/docs/en/application-note/AN5317.pdf Details on the remoteproc, rpmsg, mailbox, and OpenAMP frameworks. It includes examples on how to create the DTS and configuration overlays. Please note that this is specifically an example for the HiFi4 core from the i.MX 8M Plus https://www.youtube.com/watch?v=JqwPljnm2_k&t=14s DTS API, on `zephyr,ipc_shm` - https://github.com/zephyrproject-rtos/zephyr/blob/main/doc/build/dts/api/api.rst?plain=1#L421 Re: OpenAMP support for m33 core on i.mx93 All zephyr IPC support here( Linux kernel OS on the main processor and a Zephyr application on the co-processor) https://github.com/zephyrproject-rtos/zephyr/tree/main/samples/subsys/ipc/openamp_rsc_table/boards Confirm from the internal team, this is no plan of supporting MPU cm33 now. But I have send your requirement to the internal team, if there is any update will let you know. I am sorry for that.
View full article
NXP iMX95 EVK - NPU TensorFlow Lite モデル こんにちは、 NPU で eIQ TensorFlow Lite サンプルモデルを実行しましたが、次のエラーが発生して失敗しました。 情報: モデル mobilenet_v1_1.0_224_quant.tflite がロードされました 情報: 解決済み報告者 情報: EXTERNAL デリゲートが作成されました。 remoteproc remoteproc0: FWイメージNeutronFirmware.elfを起動しています remoteproc remoteproc0: リモートプロセッサ neutron-rproc が起動しました 情報: NeutronDelegate デリゲート: 1 つのパーティションを持つ 31 ノードのうち 29 ノードが委任されました。 INFO: EXTERNAL デリゲートを適用しました。 情報: CPU 用の TensorFlow Lite XNNPACK デリゲートを作成しました。 Neutron 4ab00004.imx95-Neutron: 無効な ioctl。コマンド=1075577096、引数=549719032088 Neutron推論ジョブの作成に失敗しました エラー: コンポーネント='Neutron ドライバ'、カテゴリ='内部障害'、コード=442 エラー: ノード番号 31 (NeutronDelegate) の呼び出しに失敗しました。 エラー: tflite の呼び出しに失敗しました。 例は次のパッケージを使用して構築されました。 # AI/ML IMAGE_INSTALL:append = "tensorflow-lite-neutron-delegate" 現在、リモート プロセッサはオフラインとして表示されます。 root@toradex-smarc-imx95-12593622:/sys/class/remoteproc/remoteproc0# 猫の状態 オフライン リモート プロセッサを手動で起動しようとすると、権限エラーが発生します。 root@toradex-smarc-imx95-12593622:~# echo rproc-neutron-rproc-fw > /sys/class/remoteproc/remoteproc0/firmware -sh: /sys/class/remoteproc/remoteproc0/firmware: 権限が拒否されました root@toradex-smarc-imx95-12593622:~# echo start > /sys/class/remoteproc/remoteproc0/state -sh: /sys/class/remoteproc/remoteproc0/state: 権限が拒否されました 現在、IMX_ML_User_Guide を参照して、NPU 上で eIQ Toolkit TensorFlow Lite の例を実行する作業を行っていますが、マイクロコードの不一致エラーが発生しました。 私たちのセットアップでは、BSPバージョンscarthgap-6.6.36-2.1.0を使用しています。eIQ ツールキット バージョン 1.16.0。TensorFlow Liteモデルを.tfliteに変換しましたeIQ ツールキットを使用して NPU 最適化モデルに変換しましたが、実行中に次のエラーが発生します。 トラブルシューティングのために、複数のBSPとeIQツールキットのバージョンの組み合わせ(BSP 6.6.52_2.2.0、6.12.34_2.1.0)をテストしました。、lf-6.6.3_1.0.0 6.6.23_2.0.0 および 6.6.36_2.1.0eIQ 1.16.0では、1.15.1、および 1.14.0)。ただし、マイクロコードのバージョンはいずれも、予想されるバージョンと一致しません。 予想されるマイクロコードバイナリ(NeutromFirmware.elf)を提供してください変更の実行やアドバイスのため。 Re: NXP iMX95 EVK - NPU TensorFlow Lite Model こんにちは、 BSP バージョンが 6.12.20 から 6.12.34 にアップグレードされ、eIQ ツールキットのデフォルトの例が実行されました。添付のスクリーンショットは結果を示しています。この例は正常に実行され、NXP i.MX95 EVK でデフォルトの画像分類出力が生成されました。ただし、実行中に 31 個のノードのいずれも委任されませんでした。 .tfliteを変換しました最新の eIQ Toolkit バージョン 17 を使用したモデル。ただし、TensorFlow Lite バージョン 17 で例を実行すると、画像分類の結果が表示されません。この問題を示すスクリーンショットを添付しました。 上記の両方のCASEは、NXP i.MX95 EVK で実行されました。 ただし、私たちの主な目的は、これらの例を Toradex SMARC i.MX95 EVK で実行することです。 Toradex ボードの BSP バージョン アップグレードはまだ不安定で、Toradex i.MX95 EVK にバージョン 6.12.34 の安定した BSP リリースがまだないため、NPU で AI ワークロードを実行すると複数のエラーが発生します。 Re: NXP iMX95 EVK - NPU TensorFlow Lite Model こんにちは、 モデルを次のように変換する必要があります。 /opt/nxp/eIQ_Toolkit_v1.17.0/bin/neutron-converter/MCU_SDK_25.09.00+Linux_6.12.34_2.1.0/neutron-converter \ --input you_model_quant.tflite \ --output your_model_neutron.tflite \ --target imx95 \ --convert-inputs-uint8-to-int8 \ --convert-outputs-uint8-to-int8 YOLOv11 Nano を 27 FPS で実行できました。バージョン不一致の警告はまだ表示されますが、問題は発生していません。警告を受けるのは楽しいことではありませんが、今となってはそれについてCANことはあまりありません。 お役に立てれば幸いです。 乾杯! Re: NXP iMX95 EVK - NPU TensorFlow Lite Model こんにちは、 最新バージョン (6.12.34) では、さらに多くのノードとオペレーターを変換することができました。変換された演算子が 3% から 62 ドルに増加しました。これは、YOLOv11 ベースのモデルとしては非常に良好です。 今度はバージョンの不一致もあります。しかし、それは私のボードのバージョンによるものです。SO、6.12.20 から 6.12.34 にアップデートしようとしています。お持ちのバージョンと変換に使用したバージョンをご確認ください。 乾杯! Re: NXP iMX95 EVK - NPU TensorFlow Lite Model こんにちは、 このエラーについては分かりませんが、おそらく NXP の誰かが介入するはずです。 私もガイドに従って、カスタム 1 ステージ検出器 (CNN ベース) を変換することができました。残念ながら、デリゲートにロードされるノードは 1 つだけです (残りは、CPU 用の XNNPACK のままです)。 ====== V4L2ENC: 1.26.0 build on May 7 2025 08:46:20. ====== INFO: NeutronDelegate delegate: 1 nodes delegated out of 697 nodes with 1 partitions. INFO: Neutron delegate version: v1.0.0-a5d640e6, zerocp enabled. INFO: Created TensorFlow Lite XNNPACK delegate for CPU. これはおそらく、変換後に 697 個の Neutron Graph のうち 1 個だけ作成されるためです。変換された演算子は 27 個のみです。笑 Conversion statistics: Number of operators after import = 678 Number of operators after optimize = 723 Number of operators converted = 27 Number of operators NOT converted = 696 Number of operators after extract = 697 Number of Neutron graphs = 1 Number of operators NOT converted = 696 Operator conversion ratio = 27 / 723 = 0.0373444 Operators converted = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27, Variscite のサポートに再度お問い合わせし、何かアイデアが得られるか確認してみました。NXP がここで実際に返答しないのは残念です。 解決策が見つかることを願っています。引き続き調査を続け、何か見つかったらお知らせします。 乾杯! Re: NXP iMX95 EVK - NPU TensorFlow Lite Model こんにちは、 サポートありがとうございます。共有していただいたリンクを確認し、提供された手順に従いましたが、マイクロコード不一致エラーがまだ発生します。参考までにスクリーンショットを添付しました。 これを確認して問題解決にご協力いただけますでしょうか? Re: NXP iMX95 EVK - NPU TensorFlow Lite Model NXP のサポートは非常に悪く、ドキュメントには必要なものがすべて記載されていません。また、Neutron 準拠モデルが付属していないイメージについては言うまでもありません (変換されずにイメージに追加されなかったためです)。 私は、NXP iMX 95 が統合されたボードを提供しているNXPについてである Variscite に連絡し、支援してもらいました。これを動作させるには、NPX の例であっても、自分でモデルを変換する必要があります。次の手順に従ってください: https://dev.variscite.com/dart-mx95/mx95-yocto-walnascar-6.12.20_2.0.0-v1.2/machine-learning/ 他の作業で忙しいので、まだ変換は行っていません。 お役に立てれば幸いです。 Re: NXP iMX95 EVK - NPU TensorFlow Lite Model 最新の BSP リリースに更新しましたが、問題は依然として解決しません。この問題の解決にご協力いただけませんか? Re: NXP iMX95 EVK - NPU TensorFlow Lite Model こんにちは、 私も同じ問題に直面しており、CAN回避できません。 以下の例のように、画像に付属するサンプル コードをテストしました。NeutroDelegate がノードを適切に委任しないという同じ問題が発生します。私たちの検出モデルで試してみましたが、予想どおり同じ結果でした。 ====== V4L2ENC: 1.26.0 build on May 7 2025 08:46:20. ====== INFO: NeutronDelegate delegate: 0 nodes delegated out of 678 nodes with 0 partitions. Error in cpuinfo: prctl(PR_SVE_GET_VL) failed INFO: Created TensorFlow Lite XNNPACK delegate for CPU. これを実行しようとすると、 echo start > /sys/class/remoteproc/remoteproc0/state 結果としてアクセスが拒否されました。 多くの画像で試してみました: 6.12.20_2.0.0-v1.1:動作し、起動しますが、デリゲートが適切に割り当てられません。 6.6.52_2.2.0-v1.1:動作しません。起動すらしません。 6.6.23_2.0.0-v1.1:動作しません。起動すらしません。 6.6.1_1.0.0-v1..00: 動作しません - 起動すらしません。 Variscite DART DM95 に付属する NXP i.MX 95 をテスト中です (またはテストしようとしています)。画像は彼らのサイトからダウンロードされました。最新の NXP リリースでも試してみましたが、これも機能しませんでした。 この許可が拒否された理由は何でしょうか?特定の動作する画像をお持ちの場合は、それをダウンロードするためのリンクを共有していただけますか? サポートをよろしくお願いいたします。 乾杯! Re: NXP iMX95 EVK - NPU TensorFlow Lite Model こんにちは。 それは奇妙です。SO、最新の BSP を使用していることを確認し、ボードの Linux を消去して再度書き込んでください。ここでは問題なく動作しているので、これ以上言うことはCANません。 よろしくお願いします。 Re: NXP iMX95 EVK - NPU TensorFlow Lite Model こんにちは、 ご提案のとおり、以下のコマンドを試しましたが、依然としてアクセスが拒否されるなどのエラーが発生しました。ルートおよび sudo でもコマンドを試していますが、依然としてアクセス拒否の問題が発生しています。参考までにスクリーンショットを追加しました。 1.エコー停止 > /sys/class/remoteproc/remoteproc0/state 2.cat /sys/class/remoteproc/remoteproc0/state 3.ls /lib/ファームウェア 4.echo NeutronFirmware.elf > /sys/class/remoteproc/remoteproc0/firmware Re: NXP iMX95 EVK - NPU TensorFlow Lite Model こんにちは、 エラー メッセージによると、RemoteProc 権限の問題と NPU デリゲートの失敗の両方が発生しています。これらを段階的に解決するお手伝いをさせていただきます。 1. RemoteProc の権限の問題 リモート プロセッサを手動で制御しようとしたときに表示される権限エラーはよくあるものです。RemoteProc のドキュメントによると、変更を加える前にリモート プロセッサが正しい状態であることを確認する必要があります。 # cat /sys/class/remoteproc/remoteproc0/state 権限が拒否されたエラーが発生した場合は、まずリモート プロセッサを停止してみてください。 # エコー停止 > /sys/class/remoteproc/remoteproc0/state ( 次に、オフラインであることを確認します。 # cat /sys/class/remoteproc/remoteproc0/state オフライン 2. ファームウェアのロードプロセス ファームウェアをロードする場合、RemoteProc フレームワークはデフォルトで /lib/firmware 内に格納されている *.elf ファームウェアを検索します(1) 。ファームウェアを次の場所にコピーCAN: $ scp hello_world.elf root@ :/lib/firmware ファームウェアが他の場所に保存されている場合は、ファームウェア パスを更新CAN。 # echo -n new_path > /sys/module/firmware_class/parameters/path 3. リモートプロセッサのロードと起動 ファームウェアをロードするには、ファームウェア ファイルにその名前を書き込みます。 # echo.elf > /sys/class/remoteproc/remoteproc0/ファームウェア 重要: 必ず *.elf ファームウェアを実行してください。そうしないと動作しません。 新しいファームウェアでリモート プロセッサを起動するには: # エコー開始 > /sys/class/remoteproc/remoteproc0/state 次のような出力が表示されます。 [12594.692880] remoteproc remoteproc0: imx-rproc を起動しています [12594.698629]remoteproc remoteproc0: FWイメージhello_world.elfを起動しています。サイズ 240736 [12594.706192]remoteproc remoteproc0: dtb rsrc-table がありません [12594.761474]remoteproc remoteproc0: リモートプロセッサ imx-rproc が起動しました 4. NPU構成要件 コミュニティの議論に基づいて、NPU の設定にはいくつかの重要な考慮事項があります。 NPU サポートの確認: ハードウェアが NPU 実行をサポートしていること、および使用している TensorFlow Lite バージョンが NPU アクセラレーションと互換性があることを確認します。 NPUドライバのインストール: NPUドライバが正しくインストールされ、設定されていることを確認します 正しい TensorFlow Lite デリゲートを使用する: NPU 実行に適切なデリゲートを使用していることを確認します。 5. トラブルシューティングの手順 ハードウェアサポートの確認: ハードウェア構成がNPUデリゲートをサポートしていることを確認します。 ファームウェアの検証: 正しいNPUファームウェアがロードされていることを確認します ドライバステータス: Neutronドライバが正しくロードされ、アクセス可能かどうかを確認します デリゲート構成: TensorFlow Lite デリゲートが特定のハードウェアに対して正しく構成されていることを確認します。 6. 代替アプローチ 問題が引き続き発生する場合は、まず CPU のみの推論でテストして、問題が NPU アクセラレーションに特有のものかどうかを特定することを検討してください。ハードウェアアクセラレーションを一時的に無効にするには、 USE_HW_ACCELERATED_INFERENCE=0 よろしくお願いします。  
View full article