Multi Source Translation Content

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Multi Source Translation Content

ディスカッション

ソート順:
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
記事全体を表示
如何使 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 切宁
記事全体を表示
在 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
記事全体を表示
i.MX 8M Plus EVK で M7 の QSPI を使用する方法 皆さん、こんにちは i.MX 8M Plus EVKをQSPI NORで使い始めるのに苦労しています。 「uuu -b qspi firmware.bin」を使用して8M Miniをフラッシュする方法の説明を見つけました。しかし、これはうまくいかないようです 私のEVKには、NORフラッシュにロードされたブートイメージが付属しているようです。 u-boot=> sf probe SF: Detected n25q256ax1 with page size 256 Bytes, erase size 4 KiB, total 32 MiB u-boot=> sf read $loadaddr 0 0x100 device 0 offset 0x0, size 0x100 SF: 256 bytes @ 0x0 Read: OK u-boot=> md $loadaddr 40400000: 412000d1 007e1000 0005fc00 00000000 .. A..~......... 40400010: 007e0fe0 007e0fc0 0080b7c0 00000000 ..~...~......... 40400020: 007e0bc0 0002cc00 00000000 00000000 ..~............. 40400030: 00000000 00000000 00000000 00000000 ................ 40400040: 1400000a d503201f 40200000 00000000 ..... .... @.... QSPIのコードを使用してM7をフラッシュして起動する方法に関するアプリノートはありますか? Re:i.MX 8M Plus EVKでM7のQSPIを使用する方法 オフセット0にflash_debug/hello_world.binでフラッシュをプログラムしました。 u-boot=> load mmc 1 $loadaddr hello_world.bin 18664 bytes read in 4 ms (4.4 MiB/s) u-boot=> sf probe SF: Detected n25q256ax1 with page size 256 Bytes, erase size 4 KiB, total 32 MiB u-boot=> sf erase 0 0x5000 SF: 20480 bytes @ 0x0 Erased: OK u-boot=> sf write $loadaddr 0 $filesize device 0 offset 0x0, size 0x48e8 SF: 18664 bytes @ 0x0 Written: OK Re:i.MX 8M Plus EVKでM7のQSPIを使用する方法 私はそれを理解しました... .binのプログラミング後ファイルをフラッシュに送り、U-Boot で次のコマンドを発行すると、M7 hello_world アプリを実行できます。 u-boot=> sf probe SF: Detected n25q256ax1 with page size 256 Bytes, erase size 4 KiB, total 32 MiB u-boot=> bootaux 0x08000000 ## No elf image at address 0x08000000 ## Starting auxiliary core stack = 0x20020000, pc = 0x0800048D... そして、UART4 (/dev/ttyUSB3) に "hello world." と表示されます。
記事全体を表示
S32K142 の ECC を使用して SRAM のシングルビット エラーを修正するにはどうすればよいですか? SRAMでシングルビットエラーが発生しました。「AN12522 S32K1xx ECCエラー処理」ドキュメントには、エラー処理の3つの方法が紹介されています。シングルビットエラーの修正は自動で行われるのでしょうか?3つの処理方法はどのように設定すればよいでしょうか?ERMはエラー修正イベントの報告のみを行うのでしょうか?それとも、ERMが有効になっていなくてもシングルビットエラーを修正できるのでしょうか? S32K14x および S32K11x デバイスは、単一ビット エラーを同じ方法で処理します。エラー報告モジュール (ERM) は、(有効な場合) 割り込みを生成して、CR0[ESCIEx] ビットを 1 に設定することで有効にできる単一ビット訂正イベントを通知できます。イベントが発生した後にエラーを処理する方法は 3 つあります。 1.通常の MCU 動作: MCU は障害を検出し (障害検出時間)、それを修正します (障害反応時間)。この時点で、MCU は正常に動作し続けます。 2. 障害を管理するための適切な機能安全メカニズムを備えています。MCU は障害を検出し (障害検出時間)、それを修正します (障害反応時間)。この時点で、ソフトウェアは safe_state_system に切り替える必要があります (safe_state_system とは、人身傷害や健康被害が発生する可能性が不当に低い動作モードです)。safe_state_system はユーザーが定義する必要があります。 3. 適切な機能安全メカニズムがない場合: MCU は障害を検出し (障害検出時間)、その後修正しますが、ユーザーにはエラーが発生したことが通知されません。フォールト トレランス時間間隔 (FTTI) が経過した後に危険が発生する可能性があります。 Re: S32K142 ECC如何更正SRAM单比特错误 こんにちは@minsky SRAM 読み取り操作中、ECC デコード ロジックが自動的に動作し、シングル ビット エラー訂正とマルチ ビット訂正不可能な ECC エラー検出を実現します。 複数ビットの訂正不可能なエラーが検出されると、2 サイクルの AHB バス エラー応答が生成され、AHB バスのデータ転送は終了しますが、ターゲット アドレスの SRAM データは変更されません。 https://mp.weixin.qq.com/s?__biz=MzI0MDk0ODcxMw==&mid=2247485836&idx=1&sn=c34d036624606761ad8f67c279251183&chksm=e9124d0ade65c41c2a4d9f4b9fcc7c73b58bd3575828f4afb590646e405aae163765f81da942&scene=21#wechat_redirect https://mp.weixin.qq.com/s?__biz=MzI0MDk0ODcxMw==&mid=2247485852&idx=1&sn=a696a936e3645843e555e02d4355f1c4&chksm=e9124d1ade65c40c20ac22924a6c3109ed11706fc346fdeeeee4488411a714515e3700006213&scene=21#wechat_redirect
記事全体を表示
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.
記事全体を表示
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 よろしくお願いします。  
記事全体を表示
小さな非セキュアパーティションとセキュアパーティションを持つmcuboot用のファームウェアを生成する こんにちは、 このテストには frdm_rw612 ボードを使用しています。私の IDE は、MCUxpresso プラグインを備えた vscode です。私はファームウェアを「mcuboot 対応」になるようにコンパイルしようとしています。つまり、それを使用して OTA を実行できるようにしたいと考えています。 まず、このチュートリアルに従いました: https://community.nxp.com/t5/Zephyr-Project-Knowledge-Base/Zephyr-app-with-MCUboot-in-VS-Code/ta-p/2089541 期待通りに動作しています。現在のパーティション構成は、boards\nxp\frdm_rw612\frdm_rw612_common.dtsi ファイルで確認したとおりです。 partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; /* * Partition sizes must be aligned * to the flash security sub-region size of 128KB. */ boot_partition: partition@0 { label = "mcuboot"; reg = <0x00000000 DT_SIZE_K(128)>; }; slot0_partition: partition@20000 { label = "image-0"; reg = <0x00020000 DT_SIZE_K(640)>; }; slot0_ns_partition: partition@C0000 { label = "image-0-non-secure"; reg = <0x000C0000 DT_SIZE_M(3)>; }; slot1_partition: partition@3C0000 { label = "image-1"; reg = <0x003C0000 DT_SIZE_K(640)>; }; slot1_ns_partition: partition@460000 { label = "image-1-non-secure"; reg = <0x00460000 DT_SIZE_M(3)>; }; storage_partition: partition@760000 { label = "storage"; reg = <0x00760000 (DT_SIZE_M(57) - DT_SIZE_K(384))>; }; }; 私の理解では、hello-world の例は非常に小さいSO、小さな (640kB) セキュア パーティション内に収まります。 残念ながら、現在のファームウェア (Wi-Fi、Bluetooth など) で同じことを実行すると、パーティションがオーバーロードされるというメッセージが表示され、コンパイルできません。 [...]/arm-zephyr-eabi/bin/ld.bfd.exe: zephyr\zephyr_pre0.elf section `rodata' will not fit in region `FLASH' [...]/arm-zephyr-eabi/bin/ld.bfd.exe: region `FLASH' overflowed by 1682828 bytes 総括する: mcuboot をコンパイルしてフラッシュCAN。また、hello-world の例を正しくフラッシュすることもCAN (UART からこの hello-world アプリを正しくロードできることを確認できます)。一方、「大きな」ファームウェアをコンパイルすることはできません。 メインファームウェアが配置される非セキュア領域にのみジャンプする、最小限のセキュアパーティションを持つイメージを生成するにはどうすればよいでしょうか? FUTUREこの安全なパーティションを使用する予定なので、現在のパーティション構造を維持したいと考えています。 ありがとうございました。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ さん、お元気ですか。 パーティションのサイズを変更する場合は、パーティションの場合と同様にオーバーレイ ファイルで行うことができますが、MCUboot が対象のパーティション内のイメージを認識できるように構造を維持する必要があります。 さらに、フラッシュ パーティションを共有して使用する場合、これは TF-M スタックで使用することを意図しており、TF-M スタックでも MCUboot をセキュア ブートローダーとして使用して、安全な環境でイメージを検証およびロードすることになるため、注意してください。 保護されたストレージの詳細については、Zephyr リファレンス ドキュメントの「Secure Storage」を参照してください。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition 少しは進歩しました。短期的な解決策として、frdm_rw612_common.dtsi ファイル内の slotx_partition を slotx_ns_partition と反転し、より大きなセキュア パーティションをコンパイルしてCAN使用します。 オーバーレイ ファイルでこれを変更すると、コンパイルはCANますが、実行時に mcuboot はイメージにジャンプできなくなります。mcuboot が生成されると、現在のプロジェクトではオーバーレイ ファイルが使用されないと思われます。 とにかく、セキュアなパーティションと非セキュアなパーティションの違いがよく分かりません。ファームウェア全体をセキュアパーティションに格納することには、何か欠点がありますか? このプロジェクトに PSA_protected_storage を追加する方法がまだわかりません。この機能を追加すると、どのパーティションがこの機能に使用されますか? Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 問題はあなたのサンプルと同じです。フラッシュ サイズ 640kB (デフォルトのセキュア パーティション サイズ) を超えるとすぐに、コンパイル時に次のエラーが発生します。 領域「FLASH」が15872バイトオーバーフローしました このsmp_svrサンプルにBTとUDPのサポートを追加すると、エラーが表示されます。 SO、私のこれまでの質問はすべて、私の問題を理解し解決するために残っています。 メインファームウェアが配置される非セキュア領域にのみジャンプする、最小限のセキュアパーティションを持つイメージを生成するにはどうすればよいでしょうか? これら両方のパーティションを処理するファームウェアを生成するにはどうすればよいでしょうか? psa_protected_storage を使用する場合、暗号化されたデータはどこに保存されますか?この機能を使いたいです。 さらに、ファイル用のカスタムの不揮発性パーティションが必要になりますが、これは common.dtsi のパーティション テーブル定義の現在の storage_partition ですか? Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ 。 MCUboot を使用して OTA を実行する必要がある場合は、「smp_svr」サンプルを使用することをお勧めします。このサンプルの主な目的は、MCUmgr プロトコルで使用するファームウェアの更新を行い、Bluetooth、UDP、UART などを介して更新を可能にすることです。このサンプルは MCUboot と連携して、適切に署名されたバイナリを確認し、MCU に更新します。 サンプルをテストするには、ファームウェアのアップデートを行うために MCUmgr クライアントをダウンロードする必要があり、最初に MCUboot を個別にビルドしてフラッシュし、次に smp_svr サンプルの prj.conf ファイルに必要なマクロを追加して smp_svr サンプルをビルドしてフラッシュする必要があります (これは、使用する OTA トランスポートによって異なります)。これが完了すると、システムは MCUmgr クライアントと適切に通信して、アップロードされたイメージのリストを確認し、新しいイメージをロードできるようになります。 MCUboot の新しい有効なイメージをロードするには、ロードするサンプルの prj.conf ファイルに次の構成を追加することをお勧めします。 CONFIG_HEAP_MEM_POOL_SIZE=2048 次のようにすると、サンプルをビルディングするだけで、MCUboot の有効な署名付きイメージを生成できます。 CONFIG_MCUBOOT_SIGNATURE_KEY_FILE=" /root-rsa-2048.pem" CONFIG_MCUBOOT_GENERATE_CONFIRMED_IMAGE=y CONFIG_BOOTLOADER_MCUBOOT=y これがあなたにとって有効であり、あなたの要件を満たしているかどうかを教えてください。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こちらの投稿を読みました: https://community.nxp.com/t5/Wi-Fi-Bluetooth-802-15-4/Zephyr-MCUBoot-TFM-Demo-using-RW612/ta-p/2047528 tfm 構造をより深く理解するために、「psa_protected_storage」サンプルもダウンロードしましたが、イメージをどのようにパーティション分割するかはまだよくわかりません。 たとえば、psa_protected_storage の場合、暗号化されたデータを保存するために使用されるパーティションはどれですか?それは「storage_partition」にありますか? 上記の投稿では、fw_storage パーティションについて言及しています。このパーティションはありませんが、Wi-Fi は使用できます。 最新のドキュメントはどこにありますか?何か特別なことをしようとしているわけではなく、mcuboot を使用して OTA を実行できるようにしたいだけですが、その方法を理解するための正しいドキュメントを見つけるのに苦労しています。 ご回答をよろしくお願いします。 アーサー Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 正直に言うと、分かりません。最初の投稿で述べたように、frdm_rw612 パーティション分散が推奨される方法であると思われるため、それに従うことにしました。 まだプロトタイプなので、現時点では安全な機能は使用していませんが、間もなく製品版に取り組む予定であり、後で問題になるような選択を今日はしたくありません。 FRDM_RW612 には、640kB のセキュア パーティションと 3MB の非セキュア パーティションがあります。 現在のアプリケーションのサイズは 2.3 MB です (最適化はまったく行われていません)。 これら両方のパーティションを処理するファームウェアを生成するにはどうすればよいでしょうか? Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ さん、お元気ですか。 ご希望のパーティション配分をご確認ください。小さくて安全でないパーティションと大きくて安全なパーティションですか、それともその逆ですか?さらに、アプリケーションのサイズも共有していただけますか? いずれのCASEでも、各パーティション サイズ 128kB の配置を考慮して、オーバーレイ ファイルを使用してパーティション サイズを変更できるはずです。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition 親愛なるローマンへ 私の質問に答えてくれないので、完全に理解するのは困難です。 「ただし、構造を維持する必要があります」と言うとき、最初にセキュアなパーティションがあり、その後に非セキュアなパーティションがあることを意味しますか? このプロジェクトに PSA_protected_storage を追加する方法がまだわかりません。この機能を追加すると、どのパーティションがこの機能に使用されますか? メインファームウェアが配置される非セキュア領域にのみジャンプする、最小限のセキュアパーティションを持つイメージを生成するにはどうすればよいでしょうか? これら両方のパーティションを処理するファームウェアを生成するにはどうすればよいでしょうか? Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 ありがとう、よく理解できました。 このリンクはエンジニアリング チームによって作成されたものですか?https://community.nxp.com/t5/Wi-Fi-Bluetooth-802-15-4/Zephyr-MCUBoot-TFM-Demo-using-RW612/ta-p/2047528 それでも SDK をこのように変更する必要がありますか?「非セキュア イメージの変更」セクションで説明されているように、非セキュア イメージを変更できないためです。nxp_zephyr\zephyr\に「build」フォルダが存在しません さらに、frdm_rw612_rw612_ns.dts ファイルには、frdm_rw612_common.dtsi ですでに構成されているすべてのパーティションを削除する行があります。パーティション構造を維持するというアイデアには従いません。 とにかく、非セキュアボードを使用すると、ストレージパーティションを使用しているためコンパイルされず、/delete-node/行でストレージパーティションが存在しなくなります。 &w25q512jvfiq { /delete-node/ partitions; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; slot0_ns_partition: partition@080C0000 { label = "image-0-non-secure"; reg = <0x080C0000 DT_SIZE_M(3)>; }; /* This partition is reserved for connectivity firmwares storage * and shouldn't be moved. */ fw_storage: partition@400000 { label = "fw_storage"; reg = <0x400000 0x280000>; read-only; }; }; }; 「開発は独自で行う必要がある」とおっしゃるのは、TF-M を公式にサポートしていないということですか?それで、SDK を手動で変更する必要があるのですか? Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ 。 はい、そのガイドは当社のエンジニアリングチームによってZephyrバージョン4.0.0で使用するために作成されました。ただし、おっしゃるとおり、それ以降のバージョン (現時点では 4.2.0 および 4.3.0) では、ガイドに示されている TFM の例に BL2 統合 (セキュア ブートローダとしての MCUboot) がデフォルトで含まれているため、このガイドは必要ありません。したがって、バージョン 4.2.0 ダウンストリームおよびアップストリーム、および 4.3.0 では、この機能はすでにサポートされています。 これで疑問が解消されることを願っています。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 わかりました。理解が深まりました。 frdm_rw612_rw612_ns.dts ファイルでこれを削除すると、tfm を使用してファームウェアをコンパイルできます。 &w25q512jvfiq { /delete-node/ partitions; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; slot0_ns_partition: partition@080C0000 { label = "image-0-non-secure"; reg = <0x080C0000 DT_SIZE_M(3)>; }; /* This partition is reserved for connectivity firmwares storage * and shouldn't be moved. */ fw_storage: partition@400000 { label = "fw_storage"; reg = <0x400000 0x280000>; read-only; }; }; }; パーティション ノードを削除する目的がわかりません。 とにかく、「tfm_merged.hex」をフラッシュすると、次のような出力が得られます: [INF] Starting bootloader [WRN] This device was provisioned with dummy keys. This device is NOT SECURE [INF] PSA Crypto init done, sig_type: EC-P256, using builtin keys [INF] Image index: 1, Swap type: none [INF] Image index: 0, Swap type: none [INF] Bootloader chainload address offset: 0x20000 [INF] Image version: v0.0.0 [INF] Jumping to the first image slot Booting TF-M v2.2.0+g9a6c6f958 [WRN] This device was provisioned with dummy keys. This device is NOT SECURE [Sec Thread] Secure image initializing! [INF][PS] Encryption alg: 0x5500100 [INF][Crypto] Provision entropy seed... [INF][Crypto] Provision entropy seed... complete. bl2 は正常に起動しているように見えますが、その後何も起こりません。安全でないファームウェアが起動しません。 ファイル zephyr_ns_signed.hex もフラッシュしようとしましたが、結果は同じでした。 私がそう思うのは間違っているだろうか boot_partitionはbl2(mcuboot)があるパーティションです slot0_partitionはtfm(psa)のパーティションです slot0_ns_partitionはファームウェアのパーティションです   この安全でない構成は、sysbuild を有効にして mcuboot をビルドすることと互換性がないことを確認しますか?ここで説明されているように: https://community.nxp.com/t5/Zephyr-Project-Knowledge-Base/Zephyr-app-with-MCUboot-in-VS-Code/ta-p/2089541 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ 。 TF-MとBL2を使ってアプリケーションをビルドしてフラッシュする際に、どのような手順を踏んでいるのか教えていただけますか?MCUbootのビルドにはsysbuildを使用していますか? さらに、パーティションはおっしゃるとおり、セキュア パーティションは TF-M のセキュア サービスをホストするためのもので、非セキュア パーティションは非セキュア アプリケーション用になります。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition sysbuild の場合: tfm用に変更したプロジェクトでsysbuildを有効にし、このCmake Extra Args SB_CONFIG_BOOTLOADER_MCUBOOT='y'を追加します。 「純粋なビルド」をすると、さまざまなものがコンパイルされます 最後にこのメッセージが表示される image.py: sign the payload image.py: sign the payload Usage: imgtool.py sign [OPTIONS] INFILE OUTFILE Try 'imgtool.py sign -h' for help. Error: Image size (0x1ed91c) + trailer (0x1b0) exceeds requested size 0xa0000 image.py: sign the payload Batch file failed at line 12 with errorcode 2 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 sysbuild を使用するとさらに悪くなります。これは、hello_world の例 (つまり、mcuboot もパーティション分割も使用しない) から作成した現在のプロジェクト (Wifi、Bluetooth、イーサネット などの多くの機能がすでに実装されている) で行っていることです。 デバッグ構成では、ボードを frdm_rw612 から frdm_rw612/rw612/ns に変更します。そして、DTC_OVERLAY_FILE='boards/frdm_rw612.overlay' を明示的に設定します(現在のプロジェクトで使用しているオーバーレイファイルと同じものを保持するため)。 prj.confに以下の内容を追加します 前回のメッセージでお伝えした内容をfrdm_rw612_rw612_ns.dtsファイルから削除します プロジェクトを右クリックして「選択したターゲットをフラッシュ」し、tfm_merged.hexを選択します。 prj.confに追加する内容 CONFIG_BUILD_WITH_TFM=y CONFIG_WIFI_NXP=y CONFIG_NXP_RW610=y CONFIG_ETH_DRIVER=y # stack size CONFIG_SHELL_STACK_SIZE=6144 CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048 CONFIG_NET_MGMT_EVENT_STACK_SIZE=4608 CONFIG_NET_TCP_WORKQ_STACK_SIZE=2048 CONFIG_MAIN_STACK_SIZE=4096 CONFIG_IDLE_STACK_SIZE=1024 コンソールに表示される内容: [INF] Starting bootloader [WRN] This device was provisioned with dummy keys. This device is NOT SECURE [INF] PSA Crypto init done, sig_type: EC-P256, using builtin keys [INF] Image index: 1, Swap type: none [INF] Image index: 0, Swap type: none [INF] Bootloader chainload address offset: 0x20000 [INF] Image version: v0.0.0 [INF] Jumping to the first image slot Booting TF-M v2.2.0+g9a6c6f958 [WRN] This device was provisioned with dummy keys. This device is NOT SECURE [Sec Thread] Secure image initializing! [INF][PS] Encryption alg: 0x5500100 [INF][Crypto] Provision entropy seed... [INF][Crypto] Provision entropy seed... complete. 出力結果から判断すると、すでにブートローダーが存在するため、sysbuild を有効にしませんでした。 何が間違っているのか教えていただけますか? ご協力の程、よろしくお願い申し上げます。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 私が何を間違っているのか教えてもらえますか?今週ファームウェアを公開するためには、解決策を見つけることが私にとって非常に重要です。 ご協力いただきありがとうございます Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ 、遅くなってごめんなさい。 BL2 を搭載した TF-M で基本ファームウェアを生成してみましたが、正常に動作しています。frdm_rw612_rw612_ns.dts ファイルから、ご指摘のセクションを削除する理由は理解できますが、このオーバーレイはボードの非セキュア「バージョン」で TF-M が使用するパーティション構造を設定するものであるため、この手順は必須です。これを削除すると、互換性のない構造が生成され、アプリケーションが MCUboot の既知のアドレスにロードされない可能性があります。 プロジェクトで生成された dts ファイルを共有していただけますか?それとも、dts のパーティション セクションのスクリーンショットでしょうか?プロジェクト内の次のパスに配置する必要があります: debug/zephyr/zephyr.dts ご辛抱いただきありがとうございます。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 申し訳ありませんが、まだ同じ質問があります。 1. sysbuild を有効にする (および SB_CONFIG_BOOTLOADER_MCUBOOT="y" を設定する) 必要がありますか? 2. prj.conf に追加している内容は正しいですか? 3. すべてがコンパイルされたら何をフラッシュする必要がありますか? パーティション ノードの削除を維持する必要があると言われています。次に、このシナリオにおける私の問題点は次のとおりです。 現在のファームウェアでは、common.dtsi で定義された storage_partition を使用しています。非セキュア構成を使用すると、すべてのパーティションが削除されるため、storage_partition が定義されなくなり、コードをコンパイルできなくなります。4. この非セキュア構成で storage_partition を使用するにはどうすればよいですか? common.dtsi で定義された同じパーティション構造を維持する必要があると明示的に述べられました。5. では、なぜ fw_storage パーティションは 0x400000 に配置されているのでしょうか?common.dtsi 構造を調べてみると、これは slot1_partition にあります。 6. ところで、この fw_storage パーティションとは何でしょうか?なぜ「標準」の安全な構成ではないのですか? あまり時間がないのは承知していますが、私の 6 つの質問にご回答ください。それが私の理解を深め、自立するのに役立ちます。 storage_partition と Wifi/BLE コネクティビティを使用して標準ファームウェアをコンパイルおよびフラッシュするための、ステップバイステップの TF-M と BL2 の例を共有していただければ完璧です。ありがとう PS: 現状では意味をなさないため、DTS のパーティション セクションは共有しませんでした。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ 。 sysbuild を有効にする (および SB_CONFIG_BOOTLOADER_MCUBOOT="y" を設定する) 必要がありますか? いいえ、TF-M ビルド システムにはデフォルトで MCUboot が含まれているため、sysbuild を使用する必要はありません。 prj.conf に追加している内容は正しいですか? はい、観察してみると、ボードの非セキュア バージョン用のプロジェクトを作成するときに、「CONFIG_BUILD_WITH_TFM」がデフォルトで設定されます。 すべてがコンパイルされたら何をフラッシュする必要がありますか? それは状況によりますが、TF-M ビルド システム Zephyr ドキュメントのスクリーンショットには、生成された各ファイルのユーティリティに関する詳細な説明があります。 ただし、初めて使用する場合、MCUboot ブートローダ、TF-M セキュア イメージ、および非セキュア アプリケーションのマージを含む tfm_merged.hex ファイルをフラッシュする必要があることに注意してください。 この安全でない構成でストレージ パーティションを使用するにはどうすればよいですか? TF-M 構成のフラッシュ レイアウトではこのストレージ用のスペースが予約されているため、ユーザーは TF-M が提供する安全なストレージ サービスを使用することが予想されます。 ところで、この fw_storage とは何でしょうか? fw_storage パーティションは、Wi-Fi、BLE、および 802.15.4 ファームウェア ストレージ用に予約されています。 この情報があなたの開発に役立つことを願っています。ご辛抱いただきありがとうございます。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 明日ファームウェアを公開しなければならないのですが、返信を期待できますか?それとも、まだあなたの側で準備ができていないので、プラン B を見つける必要がありますか? ご回答をよろしくお願いします。 アーサー Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 フィードバックありがとうございます。パーティション構造に関する質問には回答しませんでした 5. では、なぜ fw_storage パーティションは 0x400000 に配置されているのでしょうか?common.dtsi 構造を調べてみると、これは slot1_partition にあります。 1.この fw_storage は重要と思われますが、なぜ「セキュア」構成で言及されないのでしょうか? 2. このパーティションに必要なファームウェアを配置するには、何か特別な操作を行う必要がありますか? Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ さん、お元気ですか。 ご質問にお答えすると、Wifi ファームウェアは自動的にロードされるものと予想されます。ただし、この問題については社内で確認中です。 ご辛抱いただきありがとうございます。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 コンパイルしてフラッシュしてみました(tfm_merged.hex)基本サンプル用。zephyr/samples/hello_world を使用すると次のようになります: [INF] Starting bootloader [WRN] This device was provisioned with dummy keys. This device is NOT SECURE [INF] PSA Crypto init done, sig_type: EC-P256, using builtin keys [INF] Image index: 1, Swap type: none [INF] Image index: 0, Swap type: none [INF] Bootloader chainload address offset: 0x20000 [INF] Image version: v0.0.0 [INF] Jumping to the first image slot Booting TF-M v2.2.0+g9a6c6f958 [WRN] This device was provisioned with dummy keys. This device is NOT SECURE [Sec Thread] Secure image initializing! [INF][PS] Encryption alg: 0x5500100 [INF][Crypto] Provision entropy seed... [INF][Crypto] Provision entropy seed... complete. *** Booting Zephyr OS build nxp-v4.1.0-23883-g5fbcfde7cfc2 *** Hello World! frdm_rw612/rw612/ns SO、すべてが期待どおりに機能しているようです。 ただし、zephyr/samples/net/wifi/shell のような WiFi を使用する例を使用すると、ファームウェア (WiFi と BLE を使用) と同じ出力が得られます。 [INF] Starting bootloader [WRN] This device was provisioned with dummy keys. This device is NOT SECURE [INF] PSA Crypto init done, sig_type: EC-P256, using builtin keys [INF] Image index: 1, Swap type: none [INF] Image index: 0, Swap type: none [INF] Bootloader chainload address offset: 0x20000 [INF] Image version: v0.0.0 [INF] Jumping to the first image slot Booting TF-M v2.2.0+g9a6c6f958 [WRN] This device was provisioned with dummy keys. This device is NOT SECURE [Sec Thread] Secure image initializing! [INF][PS] Encryption alg: 0x5500100 [INF][Crypto] Provision entropy seed... [INF][Crypto] Provision entropy seed... complete. したがって、問題の根本的な原因は Wi-Fi にあり、ファームウェア パーティションに関する私の質問に関連している可能性があります。Wifi と tf-m を使用してサンプルをコンパイルする手順を共有していただけますか? Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ 。 ホリデーシーズンのため、返答にかかるおおよその時間をお伝えすることはできませんが、何か分かり次第お知らせいたします。 ありがとう。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 ご協力いただきありがとうございます。到着予定時間はどれくらいですか?数日ですか、それとも数週間ですか? Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ さん、ありがとうございます。あなたにとっても 2026 年が幸せな年になりますように! このマターに関して社内チームからの返答をまだ待っていますので、返答が届き次第お知らせします。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 2026年もNXPとあなたの成功を祈っています このトピックに関して何かニュースはありますか? ありがとうございました。 アーサー Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、 @_arthur_ さん。この件についてお待たせして申し訳ありません。 ZephyrのWi-Fi ShellサンプルをTF-Mでビルドした際に、アプリケーションが正しく起動しないという問題が発生していた件について、prj.confファイルに以下の設定を追加してみてください。 # General CONFIG_HEAP_MEM_POOL_SIZE=122880 # TF-M S CONFIG_TFM_BL2=y CONFIG_BUILD_WITH_TFM=y CONFIG_TFM_PROFILE_TYPE_NOT_SET=y # Update the flash base address of ns image CONFIG_FLASH_BASE_ADDRESS=0x80C0000 # TF-M IPC CONFIG_TFM_IPC=y CONFIG_TFM_ISOLATION_LEVEL=2 # TF-M NS CONFIG_HWINFO=y # Networking (TF-M NS) CONFIG_NETWORKING=y CONFIG_NET_L2_ETHERNET=y CONFIG_NET_SOCKETS=y CONFIG_NET_DHCPV4=y CONFIG_NET_IPV4=y CONFIG_NET_TCP=y CONFIG_DNS_RESOLVER=y CONFIG_ETH_DRIVER=n CONFIG_WIFI=y # NXP Networking (TF-M NS) CONFIG_WIFI_NXP=y CONFIG_NXP_RW610=y CONFIG_NET_MGMT_EVENT_QUEUE_SIZE=20 CONFIG_NET_BUF_DATA_SIZE=1744 CONFIG_NET_SOCKETS_POLL_MAX=12 CONFIG_ZVFS_OPEN_MAX=30 CONFIG_PSA_CRYPTO_ENABLE_ALL=y これらの設定により、シェルアプリケーションが正常に起動するはずです。しかしながら、現在社内チームで確認中の動作として、「wifi scan」コマンドを使用するとアプリケーションがハードフォルト状態になるという問題があります。したがって、「wifi scan」の代わりに「nxp_wifi scan」コマンドを使用して、近くのネットワークをスキャンしてください。ただし、以下に示すように、デフォルトの「wifi connect…」コマンドを使用すれば、ネットワークに接続できるはずです。 これがあなたにとって有効かどうか教えてください。
記事全体を表示
非 XIP 通过 JTAG RT1176 根据这份应用笔记:https://www.nxp.com/docs/en/application-note/AN14069.pdf,非 XIP 图像只能通过 UART 和 USB 通过 MCU Boot Utility 加载。 我想确认在 MCUXpresso IDE 中是否无法通过 MCU Link 或 Jlink 将 XIP 映像加载到闪存中? 如果必须使用 MCU Link,我想确认这些是正确的 UART 引脚。我在数据表上看不到通过 USB 启动的选项:https://www.nxp.com/docs/en/data-sheet/IMXRT1170AEC.pdf(如果我错过了,请原谅)。我在网上看过几件事提到通过 USB 启动只是将 USB 连接到相同的 UART 引脚吗? 谢谢! 安特奥 Re: NON XIP via JTAG RT1176 你好@AnteoJ、 感谢您对 NXP MIMXRT 系列的关注! 非XIP映像,例如从SD卡启动的镜像,需要使用McubootUtility或恩智浦的官方MCUXpresso安全配置工具进行刷新。 如果映像是 XIP,则可通过 JLink/DAP 等调试器将其编程为闪存。这在 MCUXpressoIDE 或其他集成开发环境中都很容易实现。 如果您使用的是 RT1170-EVK/EVKB,您会发现电路上有一个 MCU-Link,它是一个板调试器,可以方便客户在不使用外部调试器的情况下直接通过板调试器刷新程序和进行调试。此外,通过对不同固件进行编程,MCU-Link 可更改为 JLink 或 CMSIS-DAP 调试器。 详情请查看 EVK/EVKB 硬件原理图。 致以最诚挚的问候, Gavin
記事全体を表示
LPC11UXX外部アクティブレベル割り込み 皆様、 #LPC11U35BFD# mcu を使用するときに、アクティブ レベル割り込みに関する問題が発生しました。コマンドを使用してEx-Interruptモードを制御し、トリガーします 同様の初期化コードでは、エッジ (上昇または下降) 割り込みとレベル割り込みは正常に機能しますが、アクティブ レベル (高または低) 割り込みは機能しません。 割り込みモード(立ち上がり、立ち下がり、高レベル、低レベル)をスイッチするコマンドを使用します。 NVIC_DisableIRQ ( FLEX_INT0_IRQn ); LPC_GPIO_PIN_INT -> ISEL |= ( 1UL << 0 ); //レベルセンシティブ LPC_GPIO_PIN_INT -> CIENR |= ( 1UL << 0 ); //レベル割り込みを閉じる //これら 2 つの構成は 1 つだけを実行します。 LPC_GPIO_PIN_INT -> IENF |= ( 1UL << 0 ); //高レベル割り込みを有効にする LPC_GPIO_PIN_INT -> IENF &= ~( 1UL << 0 ); //低レベル割り込みを有効にする   LPC_IOCON -> PIO0_2 |= 0x10 ; LPC_GPIO_PIN_INT -> RISE |= ( 1UL << 0 ); LPC_GPIO_PIN_INT ->フォール|= ( 1UL << 0 ); LPC_GPIO_PIN_INT -> IST |= ( 1UL << 0 ); NVIC_EnableIRQ ( FLEX_INT0_IRQn );   何かご提案がありましたら、ぜひ教えてください。 LPC11xx Re: LPC11UXX External active level interrupt こんにちは@Andy2022 3 つの API が CAN 見つかる LPCopen をダウンロードしてください。 https://www.nxp.com/design/design-center/software/software-library/lpcopen-software-development-platform-lpc11xx:LPCOPEN-SOFTWARE-FOR-LPC11XX さらに、参考として GPIO 割り込みデモも用意されています。 よろしくお願いします。 BR アリス Re: LPC11UXX External active level interrupt こんにちは、アリス: 申し訳ありませんが、まだ 3 つの API を使用していません。Keil.LPC1100_DFP.1.4.1.packを使用したためコードをコンパイルするには Keil 環境 (Keil IDE なし) が必要だったSO、3 つの API を直接使用できませんでした。これらの API のソースコードを提供してもらえますか? また、ロジカルアナライザでレベルを観察しました。SO、ハイアクティブ割り込みが設定されているときはレベルが高くなると確信できました。 ありがとう。 BR、 アンディ Re: LPC11UXX External active level interrupt こんにちは@Andy2022 上記の3つのAPIを使ってみてはいかがでしょうか? また、ハイアクティブ割り込みが設定されている場合には入力信号がハイになっていることを確認してください。 BR アリス Re: LPC11UXX External active level interrupt こんにちは、Alice_Yangさん: ご返信ありがとうございます。 レベル割り込みは正常に動作します (High -> Low と Low -> High の両方が割り込みをトリガーします)。 ただし、高レベル割り込みまたは低レベル割り込みのみを設定しているため、対応する操作で割り込みをトリガーできません。 どうもありがとうございます。 BR、 アンディ2022 Re: LPC11UXX External active level interrupt こんにちは@Andy2022 ご質問ありがとうございます。 「レベル割り込みは正常に動作しますが、アクティブレベル(高または低)割り込みは動作しません。 」 ->> SO 申し訳ありませんが、レベル割り込みは機能しますか? それでも動作しない場合は、LPCopen の pinint デモを参照して、まずステータスをクリアし、次に割り込みを設定することをお勧めします。 /* チャネル割り込みをエッジセンシティブおよび立ち下がりエッジ割り込みとして設定します */ Chip_PININT_ClearIntStatus(LPC_PININT、PININTCH(GPIO_PININT_INDEX)); Chip_PININT_SetPinModeEdge(LPC_PININT、PININTCH(GPIO_PININT_INDEX)); Chip_PININT_EnableIntLow (LPC_PININT、PININTCH(GPIO_PININT_INDEX)); よろしくお願いします。   BR アリス
記事全体を表示
eIQ Curriculum Documentation eIQ Machine Learning (ML) Software Development Environment Fact Sheet eIQ Toolkit User Guide-This link takes you to the eIQ web page on nxp.com. Once there, click on the Documentation tab or scroll down to the Documentation section This training currently covers the following areas: Getting Started with eIQ Includes in depth guides on how to get started on i.MX Applications Processors and Microcontrollers FAQs eIQ
記事全体を表示
スマートhome_infographic.pdfのためのNFC <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 今日、モバイルネットワーク事業者は、自分だけのスマートホームキットを簡単に手に入れることができます。多くの場合、複雑さは、それらが動作する標準と同じくらい多様なデバイスの最初のセットアップに伴って発生します。NFCは、このプロセスをタップアンドコネクトと同じくらい簡単にすることを約束します。このインフォグラフィックでは、スマートホームにNFCを装備する5つの理由と、エコシステムへのメリットが紹介されています。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 今日、モバイルネットワーク事業者は、自分だけのスマートホームキットを簡単に手に入れることができます。多くの場合、複雑さは、それらが動作する標準と同じくらい多様なデバイスの最初のセットアップに伴って発生します。NFCは、このプロセスをタップアンドコネクトと同じくらい簡単にすることを約束します。このインフォグラフィックでは、スマートホームにNFCを装備する5つの理由と、エコシステムへのメリットが紹介されています。
記事全体を表示
SDK1.9 でL2sw_binアプリケーションを変更する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> NXP T1040およびT1020 SoCには、デバイスに8ポートのギガビットイーサネットスイッチが統合されています。 QorIQ SDKには、L2スイッチ・ユーザー・スペース・ドライバと、スイッチ・ドライバが提供するAPIを使用する小規模なデモ・アプリケーションが含まれています。L2Switch デモ アプリケーションは、T1040 でスイッチを設定するのに役立ちます。 添付ドキュメントには、SDK1.9でソースコードを変更し、スイッチレジスタに読み取りまたは書き込みアクセスするコマンドを追加する手順が含まれています。これを行う前に、SDK1.9をインストールして使用できるようにする必要があります。SDKのマニュアルには、SDKのインストール方法、ホスト環境の準備方法、特定のターゲットに対するpokyの設定方法などが記載されています。
記事全体を表示
示例 MPC5777C-1b+2b_FLASH_ECC_error_injection GHS614 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** * 详细说明: * 该示例的目的是展示如何生成多位或单位 * 内部 FLASH 中的 ECC 错误(用户必须在 * 主要功能)。 * Flash 过度编程用于生成不可纠正的(或单位) * FLASH 中存在 ECC 错误。然后访问坏数据,因此 IVOR1 异常(或 * ERM组合中断服务程序)生成并处理。 * 示例还为 EIM 和 ERM 模块提供了有用的宏。 * 示例在终端窗口显示通知(USBtoUART 桥 J21) *(19200-8-无奇偶校验-1停止位-eSCI_A上无流量控制)。 * 无需其他外部连接。 * * ---------------------------------------------------------------------------------------------- * 测试硬件:MPC5777C-512DS Rev.A + MPC57xx 主板 Rev.C * 微控制器: PPC5777CMM03 2N45H CTZZS1521A *系统频率:PLL1 = core_clk = 264MHz,PLL0 = 192MHz * 调试器:Lauterbach Trace32 * 目标:internal_FLASH * 终端:19200-8-无奇偶校验-1 停止位-eSCI_A 上无流量控制 * EVB 连接:eSCI_A 是 USBtoUART 桥接器(连接器 J21) * ******************************************************************************** <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** * 详细说明: * 该示例的目的是展示如何生成多位或单位 * 内部 FLASH 中的 ECC 错误(用户必须在 * 主要功能)。 * Flash 过度编程用于生成不可纠正的(或单位) * FLASH 中存在 ECC 错误。然后访问坏数据,因此 IVOR1 异常(或 * ERM组合中断服务程序)生成并处理。 * 示例还为 EIM 和 ERM 模块提供了有用的宏。 * 示例在终端窗口显示通知(USBtoUART 桥 J21) *(19200-8-无奇偶校验-1停止位-eSCI_A上无流量控制)。 * 无需其他外部连接。 * * ---------------------------------------------------------------------------------------------- * 测试硬件:MPC5777C-512DS Rev.A + MPC57xx 主板 Rev.C * 微控制器: PPC5777CMM03 2N45H CTZZS1521A *系统频率:PLL1 = core_clk = 264MHz,PLL0 = 192MHz * 调试器:Lauterbach Trace32 * 目标:internal_FLASH * 终端:19200-8-无奇偶校验-1 停止位-eSCI_A 上无流量控制 * EVB 连接:eSCI_A 是 USBtoUART 桥接器(连接器 J21) * ******************************************************************************** 概述
記事全体を表示
HMB-N1905低成本雷达打造安全智能家居 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 先进的技术大大降低了 24 GHz 雷达系统的成本,带来了一系列新的应用。从历史上看,雷达由于应用成本高,一直纯粹用于军事和工业应用。随着最新一代 NXP BiCMOS 技术的出现,这种情况已经发生了改变。24 GHz 雷达前端现在可以完全集成到单个 IC 中,从而将成本和功耗降低到消费者水平。这开辟了一系列以前不可能实现的应用。本次讲座将展示雷达在不同应用领域的可能性,例如存在检测和消费级无人机防撞。将进行基于首批测试芯片与 ARM 处理器相结合的现场演示。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 先进的技术大大降低了 24 GHz 雷达系统的成本,带来了一系列新的应用。从历史上看,雷达由于应用成本高,一直纯粹用于军事和工业应用。随着最新一代 NXP BiCMOS 技术的出现,这种情况已经发生了改变。24 GHz 雷达前端现在可以完全集成到单个 IC 中,从而将成本和功耗降低到消费者水平。这开辟了一系列以前不可能实现的应用。本次讲座将展示雷达在不同应用领域的可能性,例如存在检测和消费级无人机防撞。将进行基于首批测试芯片与 ARM 处理器相结合的现场演示。 智能家居和智能建筑
記事全体を表示
How to locate i.MX6Q pfd issue(ERR006282) without JTAG tools When a board is brought up and  the ddr test by link of "https://community.nxp.com/docs/DOC-96412' hashttps://community.nxp.com/docs/DOC-96412' hashttps://community.freescale.com/docs/DOC-96412' hashttps://community.nxp.com/docs/DOC-96412' has been verified, some of boards will have pfd issue(ERR006282). It is suggested that below method could be used to check the issue.The detail steps are: As boards may have no jtag port, the internal usdhc4 root clock out needs to be remapped. When “CUP not initialized” issue has been seen and in download mode, DDR test tools can be used with the script to remap clock output. Please check the attached for test script and the empty the binary. Put the two files to DDR stress test tool folder “DDR_Stress_Tester\binary\”. The attached ddr-stress-test-mx6dq.bin is an empty file. Please backup the original file first. After eMMC boot failed and in download mode, run command “DDR_Stress_Tester.exe -t mx6x -df test.inc” on PC side. There is no clock output on GPIO19. For normal test, please erase the eMMC chip and boot the board. It will also fail to boot and run into download mode. After run “DDR_Stress_Tester.exe -t mx6x -df test.inc” , clock can be measured from GPIO19 if no PDF issue happens. Below is  the details: The script file. wait = on A: Config GPIO19(ENET_ RST_ PHY_B) as CLKO1 setmem /32 0x020E0254 = 0x3    // Config GPIO19(ENET_ RST_ PHY_B) as CLKO1      On your board, it is R112 for the test point. B: enabled, CKO1 output drives cko2 clock, divide by 5, usdhc4_clk_root setmem /32 0x020C4060 = 0x01820101  // CKO2 enabled, CKO1 output drives cko2 clock, divide by 5, usdhc4_clk_root Hex 0 1 8 2 0 1 0 1 Bits 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Binary 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 And for the normal boot, erase the emmc, and reboot to enter the download mode. There will be no signal output but high voltage on R112. After the script runs, 40Mhz clock will be seen. For the boot fail case, there will be no signal output but high voltage on R112 and 40Mhz clock will be pulled to low. 1: CKO2 enabled 2: divide by 5 3 usdhc4_clk_root 4: CKO1 output drives cko2 clock 5 Re: How to locate i.MX6Q pfd issue(ERR006282) without JTAG tools The attached file test.inc is missing for download. Could you please help upload again? Re: How to locate i.MX6Q pfd issue(ERR006282) without JTAG tools Lily and Johnli, I made modification on English wording and grammar. Please see if the meanings are accuracy. Thanks, Yixing
記事全体を表示
Video: Install S32R45 Development Package (view in My Videos)
記事全体を表示
Example S32K144 FlexCAN0 RXFIFO DMA nonSDK S32DS13 ******************************************************************************** Detailed Description: Configures the FlexCAN 0 to transmit and receive message into RXFIFO. LOOPBACK mode is enabled. Two IDs are set into RXFIFO ID table. DMA is configured to read the message from RXFIFO. Within DMA major interrupt the new message is send according to which Identifier Acceptance Filter was hit. ------------------------------------------------------------------------------  Test HW:         S32K144 EVB-Q100  MCU:             PS32K144HFVLL 0N77P  Fsys:            160MHz  Debugger:        Lauterbach  Target:          internal_FLASH ******************************************************************************** Revision History: 1.0     Sep-4-2017     Petr Stancik    Initial Version ******************************************************************************* General Re: Example S32K144 FlexCAN0 RXFIFO DMA nonSDK S32DS13 where did you added the above code ..I am also facing the same issue  Re: Example S32K144 FlexCAN0 RXFIFO DMA nonSDK S32DS13 solved after aligning the CAN software buffer memory. union {  uint8_t buffer[64];  struct  {   uint32_t Buff1;   uint32_t Buff2;   uint32_t Data1;   uint32_t Data2;  }MBS[8]; }CAN_RxData __attribute__((aligned(64)));; Re: Example S32K144 FlexCAN0 RXFIFO DMA nonSDK S32DS13 I have the same problem as you. Have you solved it yet Re: Example S32K144 FlexCAN0 RXFIFO DMA nonSDK S32DS13 Hi,     I am trying to do CAN using DMA in the s32K144 Eval kit. Softyware triggered DMA works fine but it is not working fine when I configured it for CAN RX FIFO. No DMA major loop complete interrupt is received. I am using SDK's and processor expert generated code to initialize the CAN and DMA. Did you have sample code with SDK's? The attached code is not working for me...it is entering the default ISR.
記事全体を表示
PMIC PF3000/3001 资源 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> PF3000 是一款电源管理集成电路 (PMIC),专为与 NXP i.MX 7 和 i.MX 6SL/SX/UL 应用处理器配合使用而设计。PF3000 配备最多四个降压转换器、六个线性稳压器、RTC 电源和纽扣电池充电器,可以为整个系统(包括应用处理器、内存和系统外设)供电。该设备采用 SMARTMOS 技术。 最新版本的数据表: https://www.nxp.com/docs/en/data-sheet/PF3000.pdf 应用笔记: https://www.nxp.com/docs/en/application-note/AN5132.pdf https://www.nxp.com/docs/en/application-note/AN5161.pdf https://www.nxp.com/docs/en/application-note/AN5094.pdf https://www.nxp.com/docs/en/application-note/AN5113.pdf 评估板用户指南: https://www.nxp.com/docs/en/user-guide/KTPF3000FRDMEVMUG.pdf PF 电源管理开发工具的 GUI: https://www.nxp.com/downloads/en/device-drivers/PF3000-HID-GUI.zip EVM 和工具: https://www.nxp.com/webapp/sps/download/license.jsp? colCode=KITPF3000FRDMEVM 更多信息: https://www.nxp.com/products/power-management/pmics/pmics-for-i.mx-application-processors/12-channel-configurable-pmic:PF3000 PF3000PF3001
記事全体を表示
下一代功能安全架构 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 概述 S32x 下一代安全架构,涵盖 ASIL B 至 ASIL D。有哪些新功能以及我们如何更好地为客户提供全套安全附属品,包括 MCU HW、SW 和 SBC HW。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 概述 S32x 下一代安全架构,涵盖 ASIL B 至 ASIL D。有哪些新功能以及我们如何更好地为客户提供全套安全附属品,包括 MCU HW、SW 和 SBC HW。
記事全体を表示