Multi Source Translation Content

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Multi Source Translation Content

讨论

排序依据:
カスタムボードの Yocto BSP の DDR バイナリを置き換えるにはどうすればよいでしょうか? こんにちは、 カスタム ボードの Yocto BSP 内の DDR バイナリを置き換えようとしています。 新しいマシンが作成され、必要なファイルを含むレシピ ddr-firmware のディレクトリもカスタム メタ レイヤーに作成されます。しかし、SRC_URI に新しい値を割り当て、レシピ追加で元の値を削除しても、Bitbake が評価ボードの元のパスを検索するのを止めることはできません。レシピ追加を使用しない場合も、この検索については何も変わりません。 唯一機能する方法は、元のレシピをマスクし、カスタム レイヤーに新しいレシピを作成することです。 しかし、それは好ましい方法ではないと思います。これは、カスタム マシン用に作成された DDR バイナリを使用するのに簡単に実行できるはずです。ここで何が見逃される可能性があるでしょうか? よろしくお願いします! クレーン Re: How to replace DDR binaries in Yocto BSP for the custom board? はい、うまくいきました。NXP_FIRMWARE_LOCAL_DIR に設定されているフォルダーと正確に一致しないようです。しかし、いずれにせよ、それは機能します。 もう 1 つ質問があります。カスタム レイヤーの .bbappend で NXP-EULA ライセンスを閉じるにはどうすればよいでしょうか? よろしくお願いいたします。 クレーン Re: How to replace DDR binaries in Yocto BSP for the custom board? こんにちは、鶴 ご返信よろしくお願いします。 お客様の DDR にも DDR ファームウェアが含まれている必要があります。Yocto で BSP をビルドするときに、S32G3_LinuxBSP_44.0_User_Manual.pdf を参照して DDR ファームウェアを追加していただけますか。 BR ジョーイ Re: How to replace DDR binaries in Yocto BSP for the custom board? こんにちは、ジョーイ。 ご返信よろしくお願いします。 S32G3で、BSPは「bsp44.0」です。 よろしくお願いいたします。 クレーン Re: How to replace DDR binaries in Yocto BSP for the custom board? こんにちは、クレーン お問い合わせいただきありがとうございます。 使用している BSP のバージョンはどれですか? S32G3 または S32G2 チップを使用していますか? BR ジョーイ Re: How to replace DDR binaries in Yocto BSP for the custom board? こんにちは、クレーン フォルダ(fsl-車載-Yocto-bsp/build_s32g274ardb2/conf)内のlocal.confファイルを変更してみてください。 ACCEPT_FSL_EULA = "1" 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を試してみたLICENSE = "CLOSED"、LIC_FILES_CHKSUM = "" で、SUMMARYのみ、.bbappendも試しませんでした。すべて同じエラーメッセージが表示されます。 元のレシピに基づいてレシピを追加するのではなく、NXP からの元のレシピをマスクしてカスタム レシピを作成するのが、カスタム DDR バイナリを処理する唯一の方法ですか? よろしくお願いいたします。 クレーン 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 私は NXP の DDR バイナリを使用していないので、NXP によって生成された NXP-EULA を使用するのは意味がないと思います。NXP-EULA のチェックを無効にするのが合理的ですよね? よろしくお願いいたします。 クレーン Re: How to replace DDR binaries in Yocto BSP for the custom board? こんにちは、クレーン ご返信よろしくお願いします。 この問題の根本原因を見つける必要があります。NXPのDDRファームウェアとNXP-EULAファイルを使用するには、YoctoでBSP44をビルドしてみてください。BSP44を正常にビルドできた場合は、DDRファームウェアを交換してから再度ビルドしてみてください。 BR ジョーイ
查看全文
S32K388CVB-Q289 Driving PTC21 Dear Team I am using S32K388CVB-Q289, and enabling the FlexCAN_0 along with the TJA1153 CAN0. I am connected a second node on the physical bus for testing porpose. But the FlexCAN_0 gets Ack errors upon transmission When I double check that the TJA1153 transceiver is enabled, I measure pin 5 in J95 But it reads ~2 Volts. And when I change the GPDO85 register between 0 and 1, the voltage read on the pin is not affected. Although I can see that pin is Set high in GPDO85 register, and that the Output driver is enabled in MSCR85 Configuration: Re: S32K388CVB-Q289 Driving PTC21 Hi, to check pin level simply remove J95.5-6 jumper and check MCU (5) and TJA1153 (6) side. Note TJA1153 has VIO connected to VDD_HV_B_PERH (VDD_HV_B 3.3V) using J804, while used MCU pins are on VDD_HV_A (5V) There is no need to drive EN pin, unless user want to switch between TJA1153 modes. Both EN and STB_N are pulled up to VIO by external resistors. STB_N should be driven low by MCU to allow local configuration if device is in Vanilla state. At the end of config TJA1153, STB is put back to Normal mode with EN, STB_N high. If you see message on the bus, but it is not ACKed, most probably it is due to inconsistent CAN bit timing between both nodes. Anyway, ready example for S32K388EVB is posted on  https://community.nxp.com/t5/S32K/Need-MCAL-working-CAN-Configuration-for-S32K388-EVB-bench/m-p/1923345/highlight/true#M38660   BR, Petr Re: S32K388CVB-Q289 Driving PTC21 Thanks for your response. The voltage levels seems now good. EN and nSTB go to high. Still I get Ack errors, with nothing appearing on the bus in my test measurement tool. Is it possible that my transceiver is in Vanilla state, and hence it is not operational till I configure it once? I read the example, but it would be way easier for my current setup to just send the CAN messages from test tool, rather than connecting the transceivers to each other. Can you share with me the initialization sequence, what I should send through CAN for a basic configuration that just send and receive (no security requirements needed)? Re: S32K388CVB-Q289 Driving PTC21 Hi, by default the device is in Vanilla state so must be configured, either from host or remotely. After configuration, the state can be changed, but in examples it is commonly kept in Vanilla state, so init is needed after each power on. If the posted example is working between FlexCAN modules on the board, it should work as well if just single one is connected to your CAN tool. In that example the ID being transmitted is added to the CAN0 transceiver's passlist, other configurations are left as default. You can refer to below example, done in IP level,  for another init sequence. https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K358-FlexCAN-TXRX-ISR-S32DS35-RTD400-500/ta-p/1981987 It expects transceiver in Vanilla state as well and set transceiver's passlist to pass all std and ext ID and do not block any message coming from bus. Finally leaving configuration mode without writing to non-volatile memory nor locking the transceiver (keeping Vanilla). BR, Petr
查看全文
LPC5536 和 Hyperram 你好 我在 LPC5536JBD100 上配置 FLEXSPI 外设时遇到了难题;hyperram 芯片是 S27KS0642GABHV020。该系统位于自定义板上,我们已经成功地在其中集成了其他功能。 我受到 AN12239 的启发,它适用于不同的处理器,但以一种与我正在使用的芯片非常相似的芯片为例:在我看来,主要区别在于 S27KS0642 的新节点技术,它比应用程序节点中使用的 S27KS0641 更快,但时序图(因此虚拟周期)和命令是相同的。 另一个灵感来源是这篇文章 https://community.nxp.com/t5/MCX-Microcontrollers-Knowledge/MCX-N947-FlexSPI-Connecting-to-HyperRAM-Analysis-and/ta-p/1988799 这与我使用的处理器不同,但解释了配置数据结构中某些字段的含义。 我还看了示例 lpcxpresso55s36_flexspi_octal_polling_transfer 来比较 FlexSPI 配置(知道必须进行某些更改,因为它针对的是闪存设备)。 我的症状是,当我尝试读取供应商 ID 时,函数不返回 kStatus_Success(返回值为 7001)。 我检查了时钟是否已连接: CLOCK_SetClkDiv(kCLOCK_DivFlexSpiClk, 0U, true); /*!< Reset FLEXSPICLKDIV divider counter and halt it */ CLOCK_SetClkDiv(kCLOCK_DivFlexSpiClk, 2U, false); /*!< Set FLEXSPICLKDIV divider to value 2 */ CLOCK_AttachClk(kPLL0_to_FLEXSPI); /*!< Switch FLEXSPI to PLL0 */ 并通过图形用户界面配置了引脚 周波的配置方式为 int config_hr(void) { flexspi_config_t config; uint32_t tempCustomLUT[ARRAY_SIZE(customLUT)] = {0U}; /* Copy LUT information from flash region into RAM region, because flash will be reset and back to single mode; In lately time, LUT table assignment maybe failed after flash reset due to LUT read entry is application's required mode(such as octal DDR mode) and flash is being in single SDR mode, they don't matched. */ memcpy(tempCustomLUT, customLUT, sizeof(tempCustomLUT)); /* Get FLEXSPI default settings and configure the flexspi. */ FLEXSPI_GetDefaultConfig(&config); /* Init FLEXSPI. */ config.rxSampleClock = kFLEXSPI_ReadSampleClkExternalInputFromDqsPad;//kFLEXSPI_ReadSampleClkLoopbackFromDqsPad;//kFLEXSPI_ReadSampleClkExternalInputFromDqsPad; //config.enableSckBDiffOpt = true; //config.enableCombination = true; config.ahbConfig.enableAHBPrefetch = true; config.ahbConfig.enableAHBBufferable = true; config.ahbConfig.enableAHBCachable = true; // config.enableDoze = false; FLEXSPI_Init(EXAMPLE_FLEXSPI, &config); /* Configure RAM settings according to serial RAM feature. */ FLEXSPI_SetFlashConfig(EXAMPLE_FLEXSPI, &deviceconfig, kFLEXSPI_PortA1); /* Update LUT table. */ FLEXSPI_UpdateLUT(EXAMPLE_FLEXSPI, 0, tempCustomLUT, ARRAY_SIZE(customLUT)); /* Do software reset. */ FLEXSPI_SoftwareReset(EXAMPLE_FLEXSPI); return 0; } 我检查过了,即使在读取供应商 ID 的函数中,我们使用的也是 A1 端口 status_t flexspi_hyper_ram_get_id(FLEXSPI_Type *base, uint32_t *vendorId) { flexspi_transfer_t flashXfer; status_t status; uint32_t id; /* Write data */ flashXfer.deviceAddress = 0x0U; flashXfer.port = kFLEXSPI_PortA1; flashXfer.cmdType = kFLEXSPI_Read; flashXfer.SeqNumber = 1; flashXfer.seqIndex = HYPERRAM_CMD_LUT_SEQ_IDX_READREG; flashXfer.data = &id; flashXfer.dataSize = 4; status = FLEXSPI_TransferBlocking(base, &flashXfer); *vendorId = id & 0xffffU; return status; } flexspi_device_config_t 结构的初始化过程如下 flexspi_device_config_t deviceconfig = { .flexspiRootClk = 75000000, /* 75MHZ SPI serial clock */ .isSck2Enabled = false, .flashSize = FLASH_SIZE, .CSIntervalUnit = kFLEXSPI_CsIntervalUnit1SckCycle, .CSInterval = 2, .CSHoldTime = 1, .CSSetupTime = 1, .dataValidTime = 1, .columnspace = 3, .enableWordAddress = true, .AWRSeqIndex = HYPERRAM_CMD_LUT_SEQ_IDX_WRITEDATA, .AWRSeqNumber = 1, .ARDSeqIndex =HYPERRAM_CMD_LUT_SEQ_IDX_READDATA, .ARDSeqNumber = 0, .AHBWriteWaitUnit = kFLEXSPI_AhbWriteWaitUnit2AhbCycle, .AHBWriteWaitInterval = 0, .enableWriteMask = true, }; LUT 值为 #define LATENCY (0x04) uint32_t customLUT[20] = { /* Read Data */ [4 * HYPERRAM_CMD_LUT_SEQ_IDX_READDATA] = FLEXSPI_LUT_SEQ(kFLEXSPI_Command_DDR, kFLEXSPI_8PAD, 0xA0,kFLEXSPI_Command_RADDR_DDR, kFLEXSPI_8PAD, 0x18), [4 * HYPERRAM_CMD_LUT_SEQ_IDX_READDATA + 1] = FLEXSPI_LUT_SEQ(kFLEXSPI_Command_CADDR_DDR, kFLEXSPI_8PAD, 0x10, kFLEXSPI_Command_DUMMY_RWDS_DDR, kFLEXSPI_8PAD, LATENCY), [4 * HYPERRAM_CMD_LUT_SEQ_IDX_READDATA + 2] = FLEXSPI_LUT_SEQ(kFLEXSPI_Command_READ_DDR, kFLEXSPI_8PAD, 0x04, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0x00), /* Write Data */ [4 * HYPERRAM_CMD_LUT_SEQ_IDX_WRITEDATA] = FLEXSPI_LUT_SEQ(kFLEXSPI_Command_DDR, kFLEXSPI_8PAD, 0x20,kFLEXSPI_Command_RADDR_DDR, kFLEXSPI_8PAD, 0x18), [4 * HYPERRAM_CMD_LUT_SEQ_IDX_WRITEDATA + 1] = FLEXSPI_LUT_SEQ(kFLEXSPI_Command_CADDR_DDR, kFLEXSPI_8PAD, 0x10, kFLEXSPI_Command_DUMMY_RWDS_DDR, kFLEXSPI_8PAD, LATENCY), [4 * HYPERRAM_CMD_LUT_SEQ_IDX_WRITEDATA + 2] = FLEXSPI_LUT_SEQ(kFLEXSPI_Command_WRITE_DDR, kFLEXSPI_8PAD, 0x04, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0x00), /* Read Register */ [4 * HYPERRAM_CMD_LUT_SEQ_IDX_READREG] = FLEXSPI_LUT_SEQ(kFLEXSPI_Command_DDR, kFLEXSPI_8PAD, 0xE0,kFLEXSPI_Command_RADDR_DDR, kFLEXSPI_8PAD, 0x18), [4 * HYPERRAM_CMD_LUT_SEQ_IDX_READREG + 1] = FLEXSPI_LUT_SEQ(kFLEXSPI_Command_CADDR_DDR, kFLEXSPI_8PAD, 0x10, kFLEXSPI_Command_DUMMY_RWDS_DDR, kFLEXSPI_8PAD, LATENCY), [4 * HYPERRAM_CMD_LUT_SEQ_IDX_READREG + 2] = FLEXSPI_LUT_SEQ(kFLEXSPI_Command_READ_DDR, kFLEXSPI_8PAD, 0x04, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0x00), /* Write Register */ [4 * HYPERRAM_CMD_LUT_SEQ_IDX_WRITEREG] = FLEXSPI_LUT_SEQ(kFLEXSPI_Command_DDR, kFLEXSPI_8PAD, 0x60,kFLEXSPI_Command_RADDR_DDR, kFLEXSPI_8PAD, 0x18), [4 * HYPERRAM_CMD_LUT_SEQ_IDX_WRITEREG + 1] = FLEXSPI_LUT_SEQ(kFLEXSPI_Command_CADDR_DDR, kFLEXSPI_8PAD, 0x10, kFLEXSPI_Command_DUMMY_RWDS_DDR, kFLEXSPI_8PAD, LATENCY), [4 * HYPERRAM_CMD_LUT_SEQ_IDX_WRITEREG + 2] = FLEXSPI_LUT_SEQ(kFLEXSPI_Command_WRITE_DDR, kFLEXSPI_8PAD, 0x04, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0x00), }; 这对我来说很有感知,因为我总共使用了 48 个地址位,8 个键盘上有 DDR 模式,命令是正确的。 我是不是漏掉了什么? Re: LPC5536 and Hyperram 你好 谢谢。 不,我配置了更多引脚,但截图拍得很差:我猜有 8 个数据引脚,一个 RWDS、一个 CS_n 和一对差分时钟引脚。 Re: LPC5536 and Hyperram 你好@img_gabrigob 关于引脚配置 您是否只配置了 5 个数据引脚? S27KS0642GABHV020 需要 8 个数据引脚。 BR 哈利 Re: LPC5536 and Hyperram 你好 谢谢。我给你回复了,但我想我做错了什么(第一次使用这个社区),回复直接转到了我的原帖。 Re: LPC5536 and Hyperram 你好@img_gabrigob 首先,我认为您可以检查硬件。 探测物理信号(示波器): 确认 CK 按您预期的速率切换,交易的 CS# 脉冲,当您触发信号 Read-ID 序列时,DQ [7:0]/RWDS 会显示活动。 并将 FlexSPI 串行时钟降低到较低的安全频率(例如20-25 MHz),同时进行调试。 那么我认为您可以参考这个 LUT。 /* Read Register */ [4 * HYPERRAM_CMD_LUT_SEQ_IDX_READREG] = FLEXSPI_LUT_SEQ(kFLEXSPI_Command_DDR, kFLEXSPI_8PAD, 0xE0, kFLEXSPI_Command_RADDR_DDR, kFLEXSPI_8PAD, 0x18), [4 * HYPERRAM_CMD_LUT_SEQ_IDX_READREG + 1] = FLEXSPI_LUT_SEQ( kFLEXSPI_Command_CADDR_DDR, kFLEXSPI_8PAD, 0x10, kFLEXSPI_Command_DUMMY_RWDS_DDR, kFLEXSPI_8PAD, 0x06), [4 * HYPERRAM_CMD_LUT_SEQ_IDX_READREG + 2] = FLEXSPI_LUT_SEQ(kFLEXSPI_Command_READ_DDR, kFLEXSPI_8PAD, 0x04, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0x00), /* Write Register */ [4 * HYPERRAM_CMD_LUT_SEQ_IDX_WRITEREG] = FLEXSPI_LUT_SEQ(kFLEXSPI_Command_DDR, kFLEXSPI_8PAD, 0x60, kFLEXSPI_Command_RADDR_DDR, kFLEXSPI_8PAD, 0x18), [4 * HYPERRAM_CMD_LUT_SEQ_IDX_WRITEREG + 1] = FLEXSPI_LUT_SEQ( kFLEXSPI_Command_CADDR_DDR, kFLEXSPI_8PAD, 0x10, kFLEXSPI_Command_DUMMY_RWDS_DDR, kFLEXSPI_8PAD, 0x06), [4 * HYPERRAM_CMD_LUT_SEQ_IDX_WRITEREG + 2] = FLEXSPI_LUT_SEQ( kFLEXSPI_Command_WRITE_DDR, kFLEXSPI_8PAD, 0x04, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0x00), RT1064 HyperRAM 支持 S27KS0641 和 S27KS0642 - NXP Community BR 哈利 Re: LPC5536 and Hyperram 你好,@Harry_Zhang、 谢谢您! 我试着查看我的 LUT 与您链接的另一篇文章中用户使用的 LUT 之间是否存在任何差异,但即使在尝试调整延迟等待状态下的假人数量后,我还是遇到了同样的问题。 我不知道我是否在安装 IDE 时配置错误,但在 LPC5536 上,我似乎无法通过 flexspi_config_t 数据结构设置差分时钟(字段 enableSckBDiffOpt 位于禁用的 ifdef 中)。 我们在董事会采取了一些措施。CSN 和 CLK 信号处于激活状态。 我们使用两种压摆率(标准和高)来捕获时钟 时钟频率比我预想的要慢(我想我把它设置为 75MHz,这里是 75/2,而不是 150/2)。 数据和 RWDS 信号稳定在 0V。我们只是在数据信号上看到一个小故障(5 毫微秒)。 我还附上了从图形用户界面输出的 pin_mux 和 clock_config 文件。 请问您还有其他建议吗? 顺祝商祺! Re: LPC5536 and Hyperram 您好! 感谢您的回复 我再次检查了电路图,...我意识到 RESN 不受 FLEXspi 控制,因此我更改了软件,使其上升。 现在控制器可以工作了,我们还将 MCU 上的引脚配置为快速转换速率选项。 例如,这是 RWDS 与 CLK 的对比。 因此,问题在于 LUT 中的延迟值(使用您的链接进行更正)和 RESET。 我还有一些不明白的地方,即使这对这个项目并不重要,但可能对未来的应用有用:从时钟树中的配置来看,我期望 CLK 频率为 75MHz,但我测量的频率为 37.5MHz。 还有其他我错过的时钟分频器吗? 谢谢! 顺祝商祺! 加布里埃尔 Re: LPC5536 and Hyperram 你好@img_gabrigob 您能分享与 HyperRAM 的连接原理图吗? BR 哈利 Re: LPC5536 and Hyperram 你好@img_gabrigob 根据 LPC55S36 数据表。 时钟频率最高为 50M(DDR 模式)。 /* Flexspi frequency 150MHz / 3 = 50MHz */ CLOCK_SetClkDiv(kCLOCK_DivFlexSpiClk, 0U, true); /*!< Reset FLEXSPICLKDIV divider counter and halt it */ CLOCK_SetClkDiv(kCLOCK_DivFlexSpiClk, 3U, false); /*!< Set FLEXSPICLKDIV divider to value 3 */ CLOCK_AttachClk(kPLL0_to_FLEXSPI); /*!< Switch FLEXSPI to PLL0 */ BR 哈利
查看全文
恩智浦 s32k312 SRAM 多位错误 @danielmartynek 对于单位错误,我可以调用 SRAM ISR(ERM0_ISR_Handler),但对于多位错误,却无法调用处理程序。 据我所知,不可纠错事件与多位错误相对应,对吗? 我可以看到 SRAM 不可更正的错误事件位是在 SR0 中设置的,但是 ISR 没有被触发信号。 能否请您帮助我了解如何调用多位错误 ISR? 我还在 CR0 寄存器中启用了 SRAM0 的中断通知功能 Re: NXP s32k312 SRAM MultibitError 你好,@Anitha7、 不可纠正的错误会触发信号 CM7 故障异常。 在我链接的示例中,我启用了 Bus_Fault 异常,但其优先级低于 ERM 处理程序的优先级,这样 ERM 处理程序就会首先被调用。 我认为这可能是您项目中的问题所在。 此外,请仔细检查 VTOR 指针,并确保在 NVIC 中启用 ERM 中断。您可能会注意到 NVIC 中的中断待处理。 Re: NXP s32k312 SRAM MultibitError 你好@丹尼尔-马蒂内克 多比特是指 RM 规定的双比特 我根据你的参考将系统配置为 SRAM0。通过设置 SRO 寄存器中的相应位,可避免发生无法纠正的 ECC 故障(NEC0)。 我在相应的 CR0 寄存器中启用了 NEC0 和单比特事件的中断通知。 发生不可纠正的 ECC 故障后,控制权转移到系统调用功能,此后直到我执行 RESET 后,软件才能运行。尽管我已经添加了 ERM_1_Hand ler ,但它没有被触发。对于单位错误, ERM_0_H andler 会被正确触发信号。 我该如何确保 ERM_1_Handler 在发生多位(不可纠正)ECC 错误时被调用? 另外,我想确认一下,多位错误(双位错误)是否总是表示出现了无法纠正的 ECC 故障? 发生不可纠正的 ECC 事件后,我需要在正常模式下在 ECU 中执行 RESET 运行 Re: NXP s32k312 SRAM MultibitError 你好,@Anitha7、 多位错误是什么意思? 64 位(8 字节)的数据有一个 8 位校验和,不可能检测到所有可能的 ECC 错误。有 ECC SECDED(单错误纠正,双错误检测)。 此致, 丹尼尔 Re: NXP s32k312 SRAM MultibitError 你好@丹尼尔-马蒂内克 VTOR 表仅在 SRAM0 注入无法纠正的 ECC 故障时指向闪存。 我根据您的参考示例代码将系统配置为 SRAM0。通过设置 SRO 寄存器中的相应位,可在发生不可纠正的 ECC 故障时自动恢复 ECC。 我在相应的 CR0 寄存器中启用了中断通知功能。 发生不可纠正的 ECC 故障后,控制权转移到系统调用功能,之后软件将无法运行,直到我执行 RESET。尽管我已经添加了 ERM_1_Handler,但它没有被触发信号。对于单位错误,ERM_0_Handler 会被正确触发。 我该如何确保在发生多位(不可修正)ECC 错误时调用ERM_1_Handler? 另外,我想确认一下,多位错误是否总是表示无法纠正的 ECC 故障? Re: NXP s32k312 SRAM MultibitError 你好,@Anitha7、 我更新了示例,在 SRAM0 中加入了不可纠正的错误注入。 https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K344-EIM-ERM-DTCM-SRAM-Baremetal-v3-0-S32DS36/ta-p/2193534 您能在应用程序中读取 VTOR 寄存器吗? 在内存中注入无法纠正的 ECC 故障时,中断向量表不得位于 SRAM0 中。 否则,ECC 故障会在获取过程中损坏矢量表,导致另一个故障异常。 此致, 丹尼尔
查看全文
SynGas OBD 节油器是否合法?真实的深度 SynGas 评论 2026 SynGas 评论:SynGas OBD Fuel Saver 是否合法?这是我在亲自测试之前的第一个问题。2026 年的油价依然居高不下,很多驾驶员都在寻找提高燃油效率的现实方法,而不需要昂贵的汽车改装或复杂的改装系统。 SynGas是一款简单的即插即用设备,可连接到车辆的OBD2端口,并声称通过根据实际驾驶习惯使用汽车的ECU来优化燃油消耗。它的有趣之处在于,它并不承诺立竿见影的神奇效果。取而代之的是,该设备在最初的 150 英里内会经历一个学习阶段,以便更好地了解加速、制动和整体驾驶模式,然后才能更有效地调整燃油优化。 点击此处查看 SynGas 的最新详情和官方信息 2026 年,节油技术已成为一个热门话题,因为人们正在积极寻找经济实惠的方法来降低交通成本。SynGas通过提供即插即用的方法来直接利用这一趋势,而不是昂贵的ECU调整或持续购买燃料添加剂。 那么,SynGas OBD 节油器是否合法? 根据研究、用户反馈和500英里后的真实驾驶观察,它似乎是真正的OBD2燃料优化设备,而不是另一个随机的互联网花招。然而,现实的期望很重要。这并不神奇,每辆车或每位驾驶员的结果也不尽相同。最大的价值似乎来自于长期的日常使用,尤其是对于通勤者和长时间在路上行驶的驾驶员来说。 点击此处查看 SynGas OBD 节油器的工作原理和当前供应情况:     Re: Is SynGas OBD Fuel Saver Legit? An Honest Depth SynGas Reviews 2026 您的问题似乎与恩智浦 QorIQ 系列(数字网络)处理器无关。 请在正确的社区区块中提交您的问题。
查看全文
RT685: SDK 25.12 没有 HASHCRYPT 加速功能 你好 我们最近更新到了 SDK 25.12,发现我们的 TLS 解密率降低了一半。 mbedTLS v3.x 不再使用fsl_hashcrypt硬件加速功能。 下面是使用以前的 SDK 25.09 调用mbedtls_ssl_read 的调用堆栈。可以看到,最终使用了HASHCRYPT_AES_EncryptEcb。 hashcrypt_aes_one_block_aligned() at fsl_hashcrypt.c:437 hashcrypt_aes_one_block() at fsl_hashcrypt.c:581 HASHCRYPT_AES_EncryptEcb() at fsl_hashcrypt.c:1,284 mbedtls_internal_aes_encrypt() at aes_alt.c:1,959 mbedtls_aes_crypt_ecb() at aes_alt.c:1,323 aes_crypt_ecb_wrap() at cipher_wrap.c:114 mbedtls_cipher_update() at cipher.c:521 mbedtls_gcm_update() at gcm.c:358 mbedtls_gcm_crypt_and_tag() at gcm.c:456 mbedtls_gcm_auth_decrypt() at gcm.c:491 mbedtls_cipher_aead_decrypt() at cipher.c:1,407 mbedtls_cipher_auth_decrypt_ext() at cipher.c:1,613 mbedtls_ssl_decrypt_buf() at ssl_msg.c:1,242 ssl_prepare_record_content() at ssl_msg.c:3,667 ssl_get_next_record() at ssl_msg.c:4,551 mbedtls_ssl_read_record() at ssl_msg.c:3,817 mbedtls_ssl_read() at ssl_msg.c:5,237 <...more frames...> 下面是定义了MBEDTLS_USE_PSA_CRYPTO的 SDK 25.12 的调用堆栈。在该版本中,mbedtls_internal_aes_encrypt全部是 C 代码,没有硬件加速。 mbedtls_internal_aes_encrypt() at aes.c:894 mbedtls_aes_crypt_ecb() at aes.c:1,062 aes_crypt_ecb_wrap() at cipher_wrap.c:166 mbedtls_cipher_update() at cipher.c:611 gcm_mask() at gcm.c:546 mbedtls_gcm_update() at gcm.c:641 mbedtls_gcm_crypt_and_tag() at gcm.c:726 mbedtls_gcm_auth_decrypt() at gcm.c:753 mbedtls_psa_aead_decrypt() at psa_crypto_aead.c:270 psa_driver_wrapper_aead_decrypt() at psa_crypto_driver_wrappers.h:4,114 psa_aead_decrypt() at psa_crypto.c:5,023 mbedtls_ssl_decrypt_buf() at ssl_msg.c:1,625 ssl_prepare_record_content() at ssl_msg.c:4,093 ssl_get_next_record() at ssl_msg.c:5,068 mbedtls_ssl_read_record() at ssl_msg.c:4,323 mbedtls_ssl_read() at ssl_msg.c:5,983 <...more frames...> 下面是 SDK 25.12 的调用堆栈,其中没有mbedtls_use_psa_crypto定义的调用堆栈。在这个版本中, mbdtls_internal_aes_encrypt全部是 C 代码,没有硬件加速,也不涉及 PSA。 mbedtls_internal_aes_encrypt() at aes.c:899 mbedtls_aes_crypt_ecb() at aes.c:1,062 aes_crypt_ecb_wrap() at cipher_wrap.c:166 mbedtls_cipher_update() at cipher.c:611 gcm_mask() at gcm.c:546 mbedtls_gcm_update() at gcm.c:628 mbedtls_gcm_crypt_and_tag() at gcm.c:726 mbedtls_gcm_auth_decrypt() at gcm.c:753 mbedtls_cipher_aead_decrypt() at cipher.c:1,528 mbedtls_cipher_auth_decrypt_ext() at cipher.c:1,674 mbedtls_ssl_decrypt_buf() at ssl_msg.c:1,639 ssl_prepare_record_content() at ssl_msg.c:4,093 ssl_get_next_record() at ssl_msg.c:5,068 mbedtls_ssl_read_record() at ssl_msg.c:4,323 mbedtls_ssl_read() at ssl_msg.c:5,983 <...more frames...> 是否有计划在 mbedTLS 中恢复 RT685 HASHCRYPT 硬件加速?某些 PSA Crypto 驱动程序似乎未被执行。 谢谢! Re: RT685: SDK 25.12 no HASHCRYPT acceleration 嗨,埃德温、 我在 EVK 上重现了这个问题。我修改了两个样本,在其中添加了一个迭代 200 次的循环 mbedtls_gcm_self_test 并使用 RTC 时钟为整个执行过程计时。 evkmimxrt685_mbedtls_selftest_cm33 执行测试的时间为 1087ms 使用此调用栈: HASHCRYPT_AES_EncryptEcb() at fsl_hashcrypt.c:1,260 mbedtls_internal_aes_encrypt() at aes_alt.c:1,959 mbedtls_aes_crypt_ecb() at aes_alt.c:1,323 aes_crypt_ecb_wrap() at cipher_wrap.c:114 mbedtls_cipher_update() at cipher.c:521 mbedtls_gcm_starts() at gcm.c:294 mbedtls_gcm_crypt_and_tag() at gcm.c:452 mbedtls_gcm_self_test() at gcm.c:826 evkmimxrt685_mbedtls3x_psatest_cm33 执行测试的时间为 8990ms 使用此调用栈: mbedtls_internal_aes_encrypt() at aes.c:896 mbedtls_aes_crypt_ecb() at aes.c:1,062 aes_crypt_ecb_wrap() at cipher_wrap.c:166 mbedtls_cipher_update() at cipher.c:611 mbedtls_gcm_starts() at gcm.c:441 mbedtls_gcm_crypt_and_tag() at gcm.c:718 mbedtls_gcm_self_test() at gcm.c:1,075   evkmimxrt685_mbedtls3x_psatest_cm33 来自 SDK 25.12 的 mbedtls_psa_accel_key_type_aes 定义的测试执行时间为 8744ms 使用此 callstack: HASHCRYPT_AES_EncryptEcb() at fsl_hashcrypt.c:1,255 hashcrypt_cipher_encrypt() at mcux_psa_hashcrypt_common_cipher.c:187 psa_driver_wrapper_cipher_encrypt() at psa_crypto_driver_wrappers.h:2,353 psa_cipher_encrypt() at psa_crypto.c:4,766 mbedtls_block_cipher_encrypt() at block_cipher.c:177 mbedtls_gcm_starts() at gcm.c:439 mbedtls_gcm_crypt_and_tag() at gcm.c:718 mbedtls_gcm_self_test() at gcm.c:1,075 对示例的修改要点如下: BOARD_InitHardware(); test_rtc_init(); psa_crypto_init(); uint64_t ms_start = test_rtc_get_msecs(); for (int i = 0; i < 200; ++i) { PRINTF("test iteration %d\r\n", i+1); mbedtls_gcm_self_test(0); } uint64_t ms_end = test_rtc_get_msecs(); PRINTF("test time = %ums\r\n", (unsigned)(ms_end - ms_start)); ... 其中test_rtc_get_msecs使用亚秒精度返回当前 RTC 时间。 正如您所看到的,使用新的 SDK 加密 GCM/AES 的速度慢了约 8 倍。 如果您需要,我可以附上修改后的示例。 问候, Amilcar Re: RT685: SDK 25.12 no HASHCRYPT acceleration 嗨,埃德温, 我们已经阅读了迁移指南。不过,我们看不出不带 PSA 的 mbedTLS 2.x 或 mbedTLS 3.x 如何在此版本的 SDK 中进行硬件加速。由于 aes_alt.c 已被删除,而 HASHCRYPT 功能仅由 PSA 驱动程序支持。 我们的应用程序在使用 SDK 25.12 时一切正常,我们当然希望在连接时使用 TLS 1.3,但现在的情况会让我们的性能大打折扣。 我们将继续调查此事。我将修改其中一个示例,看看能否重现性能损失。 问候, Amilcar Re: RT685: SDK 25.12 no HASHCRYPT acceleration 你好,@hrc-amilcar、 感谢您耐心解答这个问题。我刚刚收到内部团队的回复,请参见下文。 从调用堆栈中我可以看到,您使用的是传统的 mbedtls_xxx 加密 API。事实上,它并没有加速。MbedTLS3.x推出了新的加密应用程序接口,它就是 PSA。mbedtls/docs/psa-transition.md at v3.6.5 - Mbed-TLS/mbedtls - GitHub而且它还被加速了。 MbedTLS4.x 进一步删除了传统加密 API。 我检查了 RT600 SDK 中的 psa_crypto_examples,通过定义PSA_CRYPTO_DRIVER_HASHCRYPT,HASHCRYPT硬件加速在默认情况下是启用的,这使得加密驱动程序封装器可以将加密计算卸载到硬件上。另一方面,MbedTLS3.x+ 更为复杂,也更符合 PSA API 规范,因此可能会出现某些用例性能较低的情况。对于 TLS,我认为非对称加密技术(CASPER 硬件 IP)会成为性能瓶颈,因为该 IP 只能支持少量加速,而且与 PSA API 不兼容,后者希望硬件 IP 实现整个算法。我们已尽全力至少加速了部分 ECC 操作(签名、验证),但其他操作(如 ECDHE 密钥交换过程中的密钥生成)可能会更糟。 现在,如果您能使用 PSA API 进行性能测量,并确认 PSA_CRYPTO_DRIVER_HASHCRYPT 已定义且调用栈使用了它,那将是一件好事。仅供参考:Hashcrypt本身没有提供AES-GCM加速,因此最好对AES-密码块链接(CBC)或AES-CTR进行基准测试,以查看硬件IP的实际收益。 BR, Edwin. Re: RT685: SDK 25.12 no HASHCRYPT acceleration 你好,@hrc-amilcar、 从mbedTLS 2.x(不含 PSA)迁移到 mbedTLS 3.x(含 PSA)必然会导致性能下降: " PSA 驱动程序接口仅部分实现。因此,编写驱动程序的交付内容以及将驱动程序与 Mbed TLS 集成的方法将根据所加速的操作而有所不同。"(https://mcuxpresso.nxp.com/mcuxsdk/latest/html/middleware/mbedtls3x/docs/psa-driver-example-and-guide.html) 目前,我所能推荐的最好方法是遵循如何正确从 2.x 迁移到 3.x 的指南:从 Mbed TLS 2.x 迁移到 Mbed TLS 3.0 - MCUXpresso SDK 文档 以及正确过渡到 PSA API 的指南:过渡到 PSA API - MCUXpresso SDK 文档 不便之处,敬请原谅。 BR, Edwin. Re: RT685: SDK 25.12 no HASHCRYPT acceleration 我在 mbedTLS 配置文件中定义了 MBEDTLS_PSA_ACCEL_KEY_TYPE_AES,现在它正在调用 ASHCRY PT,但是我们的 mbedtls_ssl_read 读取速度现在更慢了。我想知道是否还有其他缺失的定义,或者PSA层增加了额外的开销。   通过 TLS 插口从 WiFi 下载 4KB 数据包的速率: SDK 25.09:205KB/秒(没有 PSA 和 ksdk 端口文件的 mbedTLS 2.x) SDK 25.12:138KB/秒(不带 MBEDTLS_PSA_ACCEL_KEY_TYPE_AES) SDK 25.12:125KB/秒(使用 MBEDTLS_PSA_ACCEL_KEY_TYPE_AES 时) 下面是使用 MBEDTLS_PSA_ACCEL_KEY_TYPE_AES 的新调用栈: HASHCRYPT_AES_EncryptEcb() at fsl_hashcrypt.c:1,255 hashcrypt_cipher_encrypt() at mcux_psa_hashcrypt_common_cipher.c:203 psa_driver_wrapper_cipher_encrypt() at psa_crypto_driver_wrappers.h:2,353 psa_cipher_encrypt() at psa_crypto.c:4,766 mbedtls_block_cipher_encrypt() at block_cipher.c:177 gcm_mask() at gcm.c:543 mbedtls_gcm_update() at gcm.c:628 mbedtls_gcm_crypt_and_tag() at gcm.c:726 mbedtls_gcm_auth_decrypt() at gcm.c:753 mbedtls_psa_aead_decrypt() at psa_crypto_aead.c:270 psa_driver_wrapper_aead_decrypt() at psa_crypto_driver_wrappers.h:4,114 psa_aead_decrypt() at psa_crypto.c:5,023 mbedtls_ssl_decrypt_buf() at ssl_msg.c:1,625 ssl_prepare_record_content() at ssl_msg.c:4,093 ssl_get_next_record() at ssl_msg.c:5,068 mbedtls_ssl_read_record() at ssl_msg.c:4,323 mbedtls_ssl_read() at ssl_msg.c:5,983 <...more frames...> Re: RT685: SDK 25.12 no HASHCRYPT acceleration 你好,@hrc-amilcar、 更新 SDK 后,您是否做了任何更改?您在使用 SDK 示例代码时也看到了这种行为吗?你使用的是独立组网 \\(SA\\) IDE 还是 VS Code 扩展? BR, Edwin. Re: RT685: SDK 25.12 no HASHCRYPT acceleration 你好,@EdwinHz、 我们使用的是 MCUXpresso 集成开发环境。 更新 SDK 后无额外更改: 当我们更新 SDK 时,我们会重新运行 " SDK 管理 "-> " 刷新 SDK 元器件 " 来获取新的和更新的文件。 然后,我们比较 .cproject配置为已启用类似功能的样本之一(例如evkmimxrt685_wifi_wpa_supplicant_cm33) psa_crypto_driver_casper=1 psa_crypto_driver_hashcrypt=1 config_wpa_supp_crypto_mbedtls_psa=1 等等 我们使用默认的mcux_mbedtls_config.h作为主要的 mbedTLS 配置头文件,并使用与evkmimxrt685_wifi_wpa_supplicant_cm33示例中的wpa_supp_mbedtls_config .h几乎相同的用户配置文件。 我将尝试使用 mbedtls3x_examples,看看它们的表现如何。也许我们漏掉了一些定义。 我在浏览代码时注意到,也许需要定义MBEDTLS_BLOCK_CIPHER_C,以便加速 gcm 操作。 看起来头文件mbedtls3x/include/mbedtls/config_adjust_legacy_crypto.h对此负有责任,但由于某些原因最终没有定义该宏。 Re: RT685: SDK 25.12 no HASHCRYPT acceleration 为了他人的利益... 看来 来自 mbedTLS 3.x 的 mbedtls_xor 一次循环遍历 4 字节的数据,并调用 mbed tls_get_unaligned_uint32 和 mbedtls_put_unalign ed_uint32, 它们都使用 memcp y 来处理单个 uint32。 我认识到 MbedTLS 的作者正试图通过一次计算 异或 4 字节块(使用余数循环)来提高性能,但是对 memcpy 的完整调用实际上使代码变慢。 在对反汇编进行一些调查后,我发现我们的项目在编译时使用了 -fno-builtin,导致编译器无法内联小的 memcpys。 移除该选项后,HASHCRYPT 硬件不用于 AES-GCM 操作所造成的性能损失基本得以恢复。因此,我发布的示例执行时间从 8600 毫秒缩短到 2100 毫秒。还没有达到 mbedTLS 2.x + ksdk alt(1087ms)的水平。但修复后的性能已经足够好了。 -阿米尔卡
查看全文
MPXV5004 Sensor Application question HI, I'm from a Commercial Glass & Dishwasher manufacture & we are looking at replacing our old diaphragm based pressure switches to the MPXV5004 pressure sensor with our control board, with reading the Datasheet it says: "Internal reliability and qualification test for dry air, and other media, are available from the factory. Contact the factory for information regarding media tolerance in your application". so my question is we can provide clean air to the sensor through an Air-Bell, but it wont be dry it will have around 60-70% humidity as we use hot water in the machines. will this affect the sensors reliability or longevity? If so, are there other sensors that could be used? or a recommended way that we could connect the tube from the Air-Bell to the pressure sensor?. Thanks Damien Pressure Sensors Re: MPXV5004 Sensor Application question Hello Damien, Thanks for using our community. You could protect the sensor using a high viscosity silicone. Please, take a look at the following thread: Re: 30% of MPXM2202GS failed within 2 months after installation -Josh
查看全文
MMA9551 ファームウェアのアップグレードに失敗しました。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 私のボードには、mma9551 用のファームウェアがありません。これに基づいて、コマンドインタープリターを使用して、mma9551 に新しいバージョンをダウンロードします。フラッシュ保護解除モードに入った後、フラッシュを一括消去し、新しいバージョンでフラッシュを書き込みます。ただし、アップグレード プロセスは失敗します。書き込みフラッシュ応答エラー コードは 0xD0 です。リファレンスマニュアルを読んでみると、フラッシュにアクセスする権限がないことがわかりました。しかし、起動時にフラッシュ書き込みの失敗が発生しないのは非常に奇妙に思えます。いくつかのページの書き込みは成功しましたが、特定のページにアクセスする権限がないため、アップグレード プロセスが失敗しました。誰か何かアイデアを持っていますか? さらに奇妙なのは、ファームウェアを搭載した mma9551 を搭載したボードで新しいファームウェア バージョンをアップグレードする場合です。エラーもなく成功しました。 よろしくお願いします。 加速度センサ Re: MMA9551 upgrade firmware failed. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、レスリー。 MMA9551L ボードに適切な FW がまだフラッシュされていないことに驚きました。詳細を教えていただけますか。このボードは公式デモキット KITMMA9551LEVM からのものですか、それともテープとリールからのデバイスが搭載されているものですか。デバイス パッケージ上の完全なマーキングとは何ですか? MMA955xL デバイスには、それぞれのデフォルトの FW と一部のキャリブレーション パラメータが当社の生産ラインでロードされており、さらに、対応するフラッシュ セグメントが保護されていることに注意してください。 したがって、お客様が NXP 独自の FW のロードを処理することは推奨されません。 デバイスが最初から機能していなかった場合、デバイスを交換して、デフォルトの FW が適切にロードされなかった理由を調査できます。 よろしく、ジャック。
查看全文
S32R45 SptEcsIsrCb エラー! アラームの原因を検索すると、「PDMA での AXI 読み取りエラー」が表示されます。このアラームが発生する原因は何でしょうか? SPT エラー キューがオーバーフローしました。最初の 10 件のエラーのみが報告されます。最後に実行されたカーネルを確認してください! SPT完了 SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000 SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000 SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000 SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000 SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000 SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000 SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000 SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000 SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000 SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000 RsdkSptRun が完了しました。SPT プロセッシングが完了しました。次のカーネルの準備ができました。 Re: S32R45 SptEcsIsrCb error! こんにちはピーター、 ご返信ありがとうございます。   あなたが挙げた理由に従い、私は特に以下の点に重点を置いてコードを注意深くチェックしました。   WR_5、問題は見つかりませんでした。さらに、SPT カーネル コードは変更していません。   コード初期リスト:   AppMemAllocBuffer ( pHeapMem 、 & gSdadcSampleBufferBufH [インデックス]、 sizeof ( uint16_t ) * RSDK_SPT_RANGE512_4CH_IN_BUF_SIZE 、                           RSDK_SPT_DATA_ADDR_ALIGN_BYTES 、 RSDK_OALMEM_CHUNK_ID_CBRAM );   RelocSptCode ( gSptModuleCodeRelocBufH . virtAddr 、 RsdkSptRange512smp128crp4ch 、 RSDK_SPT_GET_KERNEL_SIZE ( RsdkSptRange512smp128crp4ch ));   np = 0 ; sptContext . kernelParList [ np ]. paramType= RSDK_SPT_PARAM_TYPE_ADDR ; sptContext 。 kernelParList [ np ++ ]。 paramValue = ( uintptr_t ) gSdadcSampleBufferBufH [ 0 ]。 phyAddr ;   sptContext . kernelParList [ np ]. paramType= RSDK_SPT_PARAM_TYPE_ADDR ; sptContext 。 kernelParList [ np ++ ]。 paramValue = ( uintptr_t ) gRadarCubeResultsBufH 。 phyAddr ;   sptContext . kernelParList [ np ]. paramType= RSDK_SPT_PARAM_TYPE_ADDR ; sptContext 。 kernelParList [ np ++ ]。 paramValue = ( uintptr_t ( gFft512TwiddleFactorsBufH . phyAddr );    sprintf (ファイル名、 " %s% s " 、 FILE_IN_PATH 、 "fft512_twiddle_factors.dat" ); /* RSDKデータは、PPCアーキテクチャとの互換性のため、ビッグエンディアン形式でファイルに保存されます。エンディアンの変換は、ファイルへのデータの読み書き時にのみ行われます。プロセッシングフロー内での変換は必要ありません。*/   DbgReadFileConvert ( fileName 、 0 、 ( char * ) gFft512TwiddleFactorsBufH . virtAddr 、 gFft512TwiddleFactorsBufH . numBytes 、 ENDIAN_CHANGE 、 DATA_BUFF_IS_CACHED );           sptContext . kernelParList [ np ]. paramType= RSDK_SPT_PARAM_TYPE_ADDR ; sptContext 。 kernelParList [ np ++ ]。 paramValue = ( uintptr_t ) gFft512BlackmanWindowBufH 。 phyAddr ;   sprintf (ファイル名、 " %s% s " 、 FILE_IN_PATH 、 "fft512_win_blackman.dat" ); DbgReadFileConvert ( fileName 、 0 、 ( char * ) gFft512BlackmanWindowBufH . virtAddr 、 gFft512BlackmanWindowBufH . numBytes 、 ENDIAN_CHANGE 、 DATA_BUFF_IS_CACHED );   sptContext . kernelParList [ np ]. paramType= RSDK_SPT_PARAM_TYPE_VALUE ; sptContext . kernelParList [ np ++ ]. paramValue = 3 ; /* 出力シフトなし */ sptContext . kernelParList [ np ]. paramType= RSDK_SPT_PARAM_TYPE_LAST ;   印刷リスト: gSptModuleCodeRelocBufH.phyAddr: 0x34000000 gSdadcSampleBufferBufH[0].phyAddr: 0x28000000 gSdadcSampleBufferBufH[1].phyAddr: 0x28003000 gSdadcSampleBufferBufH[2].phyAddr: 0x28006000 gSdadcSampleBufferBufH[3].phyAddr: 0x28009000 gRadarCubeResultsBufH.phyAddr: 0x34002000 gFft512TwiddleFactorsBufH.phyAddr: 0x340bd000 gFft512BlackmanWindowBufH.phyAddr: 0x340bf000 Re: S32R45 SptEcsIsrCb error! こんにちは、 考えられる原因は次のとおりです: 1. SPT入力とS32DS入力の不一致 SPT カーネル入力が予期された S32DS 構成と一致しませんでした。 PDMA は、SPT カーネルの構成によって決定されたアドレスでメモリを読み取ります。バッファ サイズ、キューブ ベース アドレス、またはチャネル カウントが揃っていない場合、PDMA は無効または予期しないメモリ位置を読み取ろうとする可能性があります → AXI 読み取りエラー。   2. 作業レジスタ(WR_x)の設定が正しくないか破損している PDMA が無効または誤って構成されたバッファを指す作業レジスタを使用する場合、AXI ファブリックは不正な読み取り要求を受信し、バス エラーをトリガーします。 https://community.nxp.com/t5/Other-NXP-Products/SPT3-1-1024-128-16range-don-t-work/mp/1621567   3. 同期PDMA実行モードと非同期PDMA実行モード .sync → .async .syncでモードでは、PDMA は誤った構成 (バッファ ポインタ、依存関係など) により満たされない可能性のある条件を待機します。 これにより、エラー フラグが蓄積され、PDMA エンジンが無効な読み取りを繰り返し試行すると AXI エラーが発生する可能性があります。   4. データ幅またはフォーマットが間違っている(例:WR_16とWR_11) PDMA が 16 ビットの複合データを期待しているが、ターゲット レジスタ/バッファが異なる幅/レイアウトに設定されている場合、AXI 読み取りバーストが不整合になる可能性があり、プロトコル エラー → AXI 読み取りエラーが発生します。   5. AXIプロトコルレベルのエラー(一般的な原因) S32R45 に固有のものではありませんが、AXI 読み取りエラー メカニズムは普遍的に適用されます。 バースト長またはサイズが無効です マップされていないアドレスまたは保護されたアドレスからの読み取りの試み スレーブタイムアウトまたは応答しないターゲット アップストリームの問題による読み取り応答エラー(SLVERR または DECERR) PDMA が不正な AXI トランザクションを生成すると、AXI インターコネクトは SLVERR を返します。これは PDMA 読み取りエラーとして表示されます。 あなたのケースで最も可能性の高い原因 両方のログに基づくと、主な容疑者は次のとおりです。 間違ったWR_xレジスタ(特にWR_5 / WR_16の選択) 非常に一般的には誤って構成され、無効な AXI 読み取りにつながります。 SPTカーネル入力とS32DS入力の不一致 以前のケースでは、見落とされ、根本原因として検証されることがよくあります。 PDMA同期モードが依存関係のデッドロックを引き起こす .syncを切り替えてみる→ .asyncデバッグ用。 よろしくお願いいたします。 ピーター     Re: S32R45 SptEcsIsrCb error! こんにちはピーター、 レーダー フロントエンドの波形サンプリング ポイントの数を 2 倍にすると、エラーは発生しなくなりましたが、チャープ バッファのサイズは変更されていません。問題をさらに分析するのにご協力ください。どうもありがとうございます。 Re: S32R45 SptEcsIsrCb error! こんにちは、 シナリオにおける最も可能性の高い根本原因: カーネルの予想されるチャープピッチと実際のバッファレイアウト間のストライド/アライメントの不一致 - サンプルを 2 倍にするとバーストサイズが揃い、バグがマスクされます。 WR_x 選択 / データ幅の不一致 (実数 vs 複素数、16 ビット vs その他)。サンプル数が変化すると偶然に修正されます。 kernelParList 内のパラメータ順序/タイプの混同 (ADDR と VALUE) が、特定のサイズの場合にのみ発生します。ミラー スレッドには同様のパラメータ シーケンスが示されており、インデックスをスリップするのは簡単です。 WR 24ビットオフセットエッジは、2倍にすると異なるパッキング/レイアウトで消えます。 よろしくお願いいたします。 ピーター
查看全文
imx95 电源模式 我正在开发一款运行 Linux 6.12(基于 Yocto)的自定义 i.MX95 板。我遇到了与 USB3 主机控制器有关的挂起到内存(深度睡眠)故障。当执行 echo mem> /sys/power/state 时,系统会中止 xhci-hcd 的挂起:WARN: xHC CMD_RUN 超时,紧接着 PM: failed to suspend async: error -110.启用 USB 主机模式时,即使没有活动的 USB 流量,问题也会持续出现。我使用的是由 GPIO 控制的固定 5V VBUS 稳压器,USB3 控制器、PHY、时钟和功率域在 DTS(附后)中定义。我的要求是在低电源模式下完全关闭 USB VBUS 的电源,同时允许系统成功进入深度睡眠。我附上了完整的暂停/恢复 dmesg 日志和与 USB 相关的相关 DTS 节点以供参考。我希望得到指导,了解在 i.MX95 上避免 xHCI 挂起超时所需的正确 DTS 和/或驱动程序处理方法。 Re: imx95 low power mode 您能否向我们分享详细步骤,以便我们在 EVK 板上复现它?谢谢 Re: imx95 low power mode 在自定义板中我使用 fusb302 但未作为 usb3.0 启用,我们将其用作 usb2.0。 但在进入深度睡眠时(echo mem> /sys/power/state ),xhci-hcd 驱动程序出现错误。 测试设置: • SoC:i.MX95 • 操作系统:Yocto Linux(内核 6.x、电路板支持包) • USB 模式:主机(xHCI、USB3)• 连接设备:USB 闪存盘(大容量存储) 正常启动板。 将 USB 存储设备连接到 USB3 主机端口。 使用 lsusb 验证枚举并确认设备可访问。 使用以下命令进入电源模式: echo mem > /sys/power/state 在此步骤本身之后它会显示错误。 使用配置的唤醒源(电源按钮/ GPIO)恢复系统。 恢复后,观察到 USB 设备是: 未检测到,或 在 dmesg 中显示 xHCI / DWC3 相关错误,或 需要重新插入 USB 才能重新工作。 ERROR LOGS : echo mem> /sys/power/state [ 117.057281] PM: suspend entry (deep) [ 117.066009] Filesystems sync:0.005 seconds [ 117.071209] Freezing user space processes [ 117.076800] Freezing user space processes completed (elapsed 0.001 seconds) [ 117.083781] OOM killer disabled. [117.087011] 冻结剩余的可冻结任务 [117.132725] 冻结剩余已完成的可冻结任务(已经 0.041 秒) [117.140164] printk:暂停主机(使用 no_console_suspend 调试) [117.156868] sd 0:0:0:0:0:[sda] 同步 SCSI 缓存 [117.267552] xhci52-hcd xhci-hcd.2.auto:警告:xHC CMD_RUN 超时 [117.267611] xhci-hcd xhci-hcd.2.auto:PM:dpm_run_callback ():platform_pm_suspend 返回 -110 [117.267631] xhci-hcd xhci-hcd.2.auto:无法暂停异步:-110 [117.267702] 下午:一些 设备无法挂起,或者检测到提前唤醒事件 [117.268017] hub 1-0:1.0:hub_ext_port_status 失败(错误 = -108) [117.268044] USB usb1-port1:无法禁用(错误 = -108)[117.516365] 下午:恢复设备花了 0.248 秒 [117.570639] OOM 杀手已启用。 [ 117.573777] 重新启动任务......完成。 [ 117.575261] sd 0:0:0:0: [sda] 测试单元就绪失败:Result: hostbyte=0x01 driverbyte=DRIVER_OK [ 117.578423] random: crng reseeded on system resumption [ 117.587117] sda: detected capacity change from 120164352 to 0 [ 117.598136] PM: suspend exit -sh: echo: write error:连接超时 Re: imx95 low power mode 嗨@kannappan、 好了,我们要放元旦假期了。当我回到办公室时我会在我们的板上试一试然后给你回复。 祝您有美好的一天 顺祝商祺! Rita Re: imx95 low power mode 嗨@kannappan、 对不起,这周太忙了,我下周会为您测试并与您分享结果。 祝您有美好的一天 顺祝商祺! Rita Re: imx95 low power mode HI@Rita_Wang, 对于上述问题是否有任何答复。 谨致 Kannappan
查看全文
install and updating the SDK for the S32K144 MCU I have installed the S32 Design Studio to create project from the SDK example for the S32K144 MCU i am not able to found the SDK folder to configure the example project i have installed the SDK for the S32 K144 Device below i have share my problem regarding images please refer  thank you in advance  Re: install and updating the SDK for the S32K144 MCU Hi Please install the other two packages, then you will find the S32K1 RTD. I remember that previously, I only needed to select one of them, and the S32K1 RTD-related dependency packages would be installed automatically. Please note that during the Christmas holiday period, our support response times may be longer than usual. In some cases, your request might be addressed after the New Year. Thank you for your understanding. Best Regards, Robin ------------------------------------------------------------------------------- Note: - If this post answers your question, please click the "ACCEPT AS SOLUTION" button. Thank you! - We are following threads for 7 weeks after the last post, later replies are ignored Please open a new thread and refer to the closed one, if you have a related question at a later point in time. -------------------------------------------------------------------------------
查看全文
i.MX RT1042 - 使用 lwIP 时 DTC RAM 溢出,将数据移至 OCRAM 后 DHCP 失败 你好,恩智浦社区、 我正在使用 MCUXpresso SDK 在 i.MX RT1042(Cortex-M7)上开发固件。我的应用程序由多个模块组成,我使用 lwIP 与以太网连接,并启用了 ping 功能。 初始问题 - DTC RAM 溢出 启用 lwIP 后,我发现即使其他内存区域未使用,DTC RAM 也会溢出。以下是该配置的内存使用情况: 内存区域 已用大小 区域大小%已用年龄 ------------------------------------------------------- BOARD_FLASH: 223652 B 8 MB 2.67% Sram_DTC: 141580 B 128 KB 108.02% sram_itc: 0 b 128 kb 0.00% sram_oc: 0 b 256 kb 0.00% board_sdram: 0 b 30 mb 0.00% ncache_region: 0 b 2 mb 0.00% 现阶段,我还需要添加更多的应用模块,但 DTC RAM 已经满了。 尝试的解决方案 - 将数据移至 OCRAM 为了减少 DTC RAM 的使用,我更改了全局数据放置配置,并修改了链接器脚本,将以下部分移入 OCRAM: *(DataQuickAccess) *(NonCacheable.init) *(不可缓存) 更改后,内存映射如下所示: 内存区域 已用大小 区域大小%已用年龄 ------------------------------------------------------- BOARD_FLASH: 223652 B 8 MB 2.67% Sram_DTC: 8KB 128KB 6.25% sram_itc: 0 b 128 kb 0.00% Sram_OC: 133388 B 256 KB 50.88% board_sdram: 0 b 30 mb 0.00% ncache_region: 0 b 2 mb 0.00% 在这种配置下,大多数模块都能正常工作,但 DHCP 无法获取 IP 地址,而以太网链接却能启动,应用程序的其他部分也能继续运行。 问题 对于使用 lwIP + 以太网的应用,在 i.MX RT1042 上处理高 DTC RAM 使用率的建议和正确方法是什么? 如何决定哪些数据或模块应存放在......? DTC RAM ITC RAM OCRAM NCACHE 地区 SDRAM 具体到 lwIP,哪些数据结构(pbufs、heap、netif、DMA 缓冲区、堆栈)必须保留在 DTC 或非高速缓存内存中才能正确运行? 将 lwIP 数据移至 OCRAM 时,DHCP 故障是否与高速缓存一致性、MPU 设置、对齐或非高速缓存要求有关? 如有任何指导、最佳实践或参考示例,将不胜感激。 顺祝商祺! i.MX RT105x Re: i.MX RT1042 – DTC RAM overflow with lwIP, DHCP fails after moving data to OCRAM 你好@Dkakadia、 感谢您对 NXP MIMXRT 系列的关注! DHCP 故障问题很可能与缓存一致性有关。在启用了数据缓存的情况下使用以太网 DMA 时,需要缓存一致性管理。对于 lwIP,当使用 OCRAM 作为主 RAM 时,建议将关键数据结构放在 SRAM_DTC 或其他非高速缓存区域。 您可以参考这位客户的帖子: https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Problem-with-sample-lwip-and-OCRAM/td-p/985330 此外,您可以考虑配置 FlexRAM 以增加 DTCM 空间,而不是将所有内容直接传输到 OCRAM。请参阅此 AN: https://www.nxp.com/docs/en/application-note/AN12077.pdf 致以最诚挚的问候, Gavin Re: i.MX RT1042 – DTC RAM overflow with lwIP, DHCP fails after moving data to OCRAM 你好@Gavin_Jia 感谢您的回复和分享参考。 根据您的建议,我检查了缓存一致性方面的问题,并相应地更新了内存位置。有了这些更改,以太网 + lwIP 协议栈(包括 DHCP)现在可以正常工作了。 在我当前的产品设计中,未填充外部同步动态随机存取存储器(SDRAM),因此我从项目中移除了所有同步动态随机存取存储器(SDRAM)依赖关系。目前,我已在 OCRAM 中声明了 NCACHE 区域,并小心翼翼地将以太网 DMA 相关缓冲区和 lwIP 关键数据结构放入不可缓存内存中。 但是,随着我继续集成其他模块,我再次开始面临内存压力,主要是在内部 RAM 区域。该应用程序现在包括多个外围设备和中间件,例如: lwIP + 以太网、FlexPWM、SPI、UART、I2C 其他特定应用模块 由此,我想到了几个后续问题: 在使用以太网 + LwIP 和多个外设驱动器的 i.MX RT1042 上运行中等复杂的应用程序,实际上是否需要包括外部同步动态随机存取存储器(SDRAM),还是应该在仔细放置的情况下完全从内部存储器运行这样的应用程序? 在内存分区、缓存配置或 FlexRAM 配置方面,我是否可能遗漏了重要步骤或最佳实践,从而无法进一步优化内部内存的使用? 在非 SDRAM 设计中,推荐的长期策略是什么: 扩展应用功能 管理 lwIP 缓冲区、堆和任务栈 在添加更多模块时防止内存反复溢出 如果不使用同步动态随机存取存储器(SDRAM),这是否是预期的限制,或者是否建议进一步优化,任何指导都将非常有帮助。 再次感谢您的支持和真知灼见。 致以最诚挚的问候, Daksh Re: i.MX RT1042 – DTC RAM overflow with lwIP, DHCP fails after moving data to OCRAM 此外,当增加任何一个 DTCM/ITCM/OCRAM 超过 128KB 时,都会导致代码出现硬故障,文件中提到可以为任何部分分配更多大小,但要注意总大小,即 512KB。 Re: i.MX RT1042 – DTC RAM overflow with lwIP, DHCP fails after moving data to OCRAM "此外,您可以考虑配置 FlexRAM 以增加 DTCM 空间,而不是将所有内容直接传输到 OCRAM。请参阅此 AN: https://www.nxp.com/docs/en/application-note/AN12077.pdf" 该文件提到 ITCM 或 DTCM 可以配置为 0 KB(另见表 1 中显示的可能静态配置)。 但是,当我将 DTCM 配置为 0 而不增加/增加 ITCM 时,应用程序会崩溃。
查看全文
S32 Design Studio 3.6.5 Release Announcement Product Release Announcement Analog & Automotive Embedded Systems S32 Design Studio 3.6.5 The Analog & Automotive Embedded Systems (AAES) - Software Development Tools Engineering Team at NXP Semiconductors is pleased to announce the release of the S32 Design Studio 3.6.5 with support for: AMCU AP RAS APN S32K3 Family S32G Family S32R41 Family S32J Family S32K1 Family S32ZE Family S32R45 Family   S32M2 Family S32N Family S32R47 Family       SAF8xxx Family   Major Features for S32 Design Studio 3.6.5 Installer S32 Design Studio 3.6.5 is delivered with all public NPI's in a single 2.63GB installer to improve first time user experience. Additional packages for alpha customers are available based on Flexera entitlement and can be installed on top of S32 Design Studio 3.6.5 using Extension and Updates.   Installer will require admin rights only when the user chooses to install components which need elevation (Visual Studio Redistributable or debugger drivers). If a user chooses a custom installation only with S32DS IDE and its components (no drivers) the installation will finish without admin rights. Platform IDE and UI Integrated Cody, the open-source Eclipse plugin from Sourcegraph, into S32 Design Studio. This plugin is installed by default, allowing users with a valid Cody license to log in directly within S32DS and access Generative AI features. Note: Users must agree to the Sourcegraph Terms of Service before using Cody. Enabled integration with the NXP Application Code Hub, allowing users to browse available examples and import them directly from the hub page into S32 Design Studio. Note: the application examples will be published soon on the Application Code Hub URL. Note: This image is taken from internal sources. The illustrated examples are currently under development and will be available soon. Extended the Quick Fix mechanism for the missing NPI and Real Time Drivers packages. Basically, an error message displays in the Problems view whenever the IDE identifies a missing package (build tool, NPI, RTD) associated with the current project. The Quick Fix automatically installs the missing package if it is available in the configured Update Sites. Note: not all scenarios are covered, there may be cases where the tool cannot determine if a package is missing. A new Recent tab has been added in S32DS Extensions and Updates to display the latest installed packages, providing a clear history of user actions related to package installations. In addition, the default sorting was changed in All tab to bring greater visibility to NXP packages. Added support for drag-and-drop of S32 Design Studio p2 update sites / installable packages into the S32DS Extensions & Updates window. Users can now simply drag the ZIP file into the window, and the package will be automatically inserted and selected, requiring only a click on Next to complete the installation. Significant improvements to Secure Debugging:  Added a dedicated Debug Card view that allows users to generate debug card binaries based on custom input. Implemented Challenge & Response functionality for Linux environment.  Enabled Secure Registry Key view for managing secure registry keys on Linux.  UI is aligned to the secure debugging functionality latest changes introduced by HSE2. Extended the S32 Debugger OS awareness support with FreeRTOS. OS threads are now visible in S32 Design Studio and user will be able to individually debug them. Extended the command line support to display OS threads and objects. Enable debug in low power mode with S32 Debugger for S32K3xx devices:  The debug session will recover after core exits low power or standby mode, allowing the user to continue application debugging. Debugging from the first instruction after low power exit is now possible by using this configuration command when starting the debug session: monitor template config :ccs:S32K3XX:SoC#0 6 1 Expanded the S32Trace debug-info parser to fully support DWARF-5, adding compatibility with projects using GCC 11.4 and newer. Major Features for NPIs S32N Family S32Flash Programmer improvements for erase and verify write operations on S32N5. S32G2/G3, S32J100, and SAF8xxx Families S32J100 development package is now public and delivered inside S32DS installer. Enabled debugging support for S32G2 devices on VDK R10. S32Flash Programmer enhancements for erase and verify write operations. Various bug fixes and improvements for arm cores and accelerators. This release is available for download on: S32 Design Studio 3.6.5 can be found on  nxp.com  Flexera catalogue S32 Design Studio for S32 Platform v.3.6 Target Audience: S32 Design Studio 3.6.5 and bundled NPIs releases are targeted for public audience. The Installation Procedure for Packages: Download S32 Design Studio v3.6.5, available on nxp.com and in Flexera catalogue S32 Design Studio for S32 Platform v.3.6. If you have any local admin restrictions(ex. Admin by Request) the installer will request elevation, alternatively you can use “Run as Administrator” to run the installer. Download any additional packages if it’s required. Start S32 Design Studio v3.6.5 and install the desired package. Go to  Help > S32DS Extensions and Updates. For additional packages, in the S32DS Extensions and Updates dialog box, drag the ZIP file into the window, and the package will be automatically inserted and selected, requiring only a click on Next to complete the installation, or click Add Update Sites. Navigate to the directory with the downloaded ZIP file. Choose it and click Open, then click OK. You will get back to S32DS Extensions and Updates and can use this dialog to select desired packages.​​ Technical Support: Please use the public community for general questions: https://community.nxp.com/community/s32/s32ds For internal packages please use INTERNAL S32DS NXP Community space:https://community.nxp.com/groups/internals32ds
查看全文
K344 中心点対 PWM 中心点起動 ADC BCTU サンプリング https://community.nxp.com/t5/S32K-Knowledge-Base/RTD400-K344-Center-Aligned-PWM-Trigger-ADC-BCTU/ta-p/2034211に基づき、BCTU ウォーターマークをトリガーするのに 3 つの BCTU トリガー割り込みが必要な理由を知りたいです。割り込みを 1 回だけトリガーし、その後、割り込み内で PWM 周期の変更、ADC 値の読み取りなどを実行したいと考えています。EB MCAL 開発に基づいて、同じ機能を実現するための優れたソリューションやサンプルルーチンは何ですか? Re: K344中心对齐PWM中心点触发ADC BCTU采样 当社製品にご興味をお持ちいただき、また当社コミュニティに貢献していただき、ありがとうございます。 投稿に直接返信して、投稿の所有者からのフィードバックを得ることができます。 一方、単一の BCTU トリガーを使用した別のアプローチを参照することもできます。 S32M27x/S32K3 – eMIOS/BTCU/ADC/DMA – [RTD600] -> https://community.nxp.com/t5/S32M-Knowledge-Base/S32M27x-S32K3-eMIOS-BTCU-ADC-DMA-RTD600/ta-p/2155542 MCAL 実装については、ハードウェア抽象化レイヤーのADC から PWM の例を参照してください。 S32K3ページへ移動-> 設計リソース -> ソフトウェア -> S32K3リファレンスソフトウェア -> オートモーティブソフトウェア - S32K3 - ハードウェア抽象化レイヤー -> S32K3 HAL統合例 2025.07 次の ADC トリガーを実行します。 同時に、キャプチャされた ADC 値に応じてデューティ サイクルを更新します。 この情報が役に立つことを願います。 Re: K344中心对齐PWM中心点触发ADC BCTU采样 解決策をありがとうございます。複数のトリガー中断が発生する理由と、そのような中断を回避する方法を知りたいです。または、設定によってこの割り込みソースを無効にすることは可能ですか? Re: K344中心对齐PWM中心点触发ADC BCTU采样 こんにちは、 BCTU トリガー通知が有効になっている場合、BCTU が ADC をトリガーしたときに呼び出されます。例では、BCTU CL に 3 つの項目が含まれているため、ADC は入力 (eMIOS) トリガーごとに 3 回トリガーされます。 この通知を無効にするには、トリガー通知オプションに NULL を設定します。 BR、ペトル
查看全文
i.MX6ULLのセカンダリブートがリセット後にハングする 私はeMMCを搭載したi.MX6ULLを持っており、AN13872ガイドのセクション13.2.2に従ってセカンダリブートをテストしようとしています。「セカンダリ ブートを使用したブート イメージの作成」 。 次のコマンドを使用してヘッダーを作成しました。 dd if=/dev/zero of=./header.bin bs=1K count=1 次に、 hexeditツールを使用して、オフセット0x208を0x00112233に変更し、 0x20Cを0に設定して、元の U-Boot がテスト目的でセカンダリ ブート イメージとして起動するSOにしました。 これは 16 進ダンプです: $ hexdump -C header.bin 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000200 00 00 00 00 00 00 00 00 33 22 11 00 00 00 00 00 |........3"......| 00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000400 次に、ヘッダーをシステムの U-Boot と連結しました。 cat header.bin u-boot-tagged.imx > u-boot-primary-secondary.imx 結果のファイルを SCP 経由でボードにコピーしました。 最後に、i.MX6 内部から、次のコマンドを使用してイメージを eMMC にフラッシュしました。 root@imx6ull:~# dd if=./u-boot-primary-secondary.imx of=/dev/mmcblk1 bs=512 skip=1 seek=1 結果の 16 進ダンプは次のとおりです。 root@imx6ull:~# hexdump -C /dev/mmcblk1 -n 1088 00000000 fa b8 00 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |................| 00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..| 00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u........u| 00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 01 8b |.........|...t..| 00000040 4c 02 cd 13 ea 00 7c 00 00 eb fe 00 00 00 00 00 |L.....|.........| 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001b0 00 00 00 00 00 00 00 00 2a 4a 6c 07 00 00 80 00 |........*Jl.....| 000001c0 01 40 0c 03 42 9f 00 20 00 00 e2 af 00 00 00 00 |[email protected].. ........| 000001d0 41 c0 83 03 e0 ff 00 e0 00 00 3e 70 1a 00 00 00 |A.........>p....| 000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00000200 00 00 00 00 00 00 00 00 33 22 11 00 00 00 00 00 |........3"......| 00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000400 d1 00 20 40 00 00 80 87 00 00 00 00 2c f4 7f 87 |.. @........,...| 00000410 20 f4 7f 87 00 f4 7f 87 00 00 00 00 00 00 00 00 | ...............| 00000420 00 f0 7f 87 00 f0 09 00 00 00 00 00 d2 01 f0 40 |...............@| 00000430 cc 01 ec 04 02 0c 40 04 00 00 00 00 02 0c 40 68 |......@.......@h| 00000440 13.2.3節で説明したように、U-Bootからのセカンダリブートをテストするコマンドを実行すると、次のような結果が出ます: Hit any key to stop autoboot: 0 => mw.l 20D8044 40000000 => md.l 20D8044 1 020d8044: 40000000 ...@ => reset resetting ... しかし、この時点でシステムはハングします。 同じ U-Boot を 2 回連結し、それに応じてオフセット0x20Cの値を調整してみましたが、結果は変わりませんでした。これはこのテストの結果の 16 進ダンプです。 user@machine:~/linux-maker$ hexdump -C swu_singlecopy_rescue_imx6ull_emmc_20251128.sdcard -n 1072 00000000 fa b8 00 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |................| 00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..| 00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u........u| 00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 01 8b |.........|...t..| 00000040 4c 02 cd 13 ea 00 7c 00 00 eb fe 00 00 00 00 00 |L.....|.........| 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001b0 00 00 00 00 00 00 00 00 4e 58 99 cc 00 00 00 03 |........NX......| 000001c0 e0 ff 0c 03 e0 ff 00 20 03 00 00 c0 03 00 00 03 |....... ........| 000001d0 e0 ff 83 03 e0 ff 00 e0 06 00 00 40 1f 00 00 00 |...........@....| 000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00000200 00 00 00 00 00 00 00 00 33 22 11 00 00 20 00 00 |........3"... ..| 00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000400 d1 00 20 40 00 00 80 87 00 00 00 00 2c f4 7f 87 |.. @........,...| 00000410 20 f4 7f 87 00 f4 7f 87 00 00 00 00 00 00 00 00 | ...............| 00000420 00 f0 7f 87 00 f0 09 00 00 00 00 00 d2 01 e8 40 |...............@| 00000430 user@machine:~/linux-maker$ hexdump -C swu_singlecopy_rescue_imx6ull_emmc_20251128.sdcard -n 1072 -s 0x400000 00400000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00400400 d1 00 20 40 00 00 80 87 00 00 00 00 2c f4 7f 87 |.. @........,...| 00400410 20 f4 7f 87 00 f4 7f 87 00 00 00 00 00 00 00 00 | ...............| 00400420 00 f0 7f 87 00 f0 09 00 00 00 00 00 d2 01 e8 40 |...............@| 00400430 以下の投稿を検索して読みました。 https://community.nxp.com/t5/i-MX-Processors/iMX6SX-Redundant-Boot/mp/715959 https://community.nxp.com/t5/i-MX-Security/Secondary-Redundant-boot-in-i-MX-6-7-8M-Family-of-Applica... https://community.nxp.com/t5/i-MX-Security/BootROM-HABv4-Redundant-boot-support-is-not-triggered-whe... しかし、解決策は見つかりませんでした。 何が間違っているのでしょうか? Re: Secondary Boot on i.MX6ULL Hangs After Reset さらにいくつかのテストを実行したところ、i.MX6ULL が mmcblk1boot0 をプライマリ ブート パーティションとして使用していることがわかりました。実際、このパーティションを破損させようとすると、システムは起動に失敗します。 パーティションの内容は次のとおりです。 root@imx6ull:~# hexdump -C /dev/mmcblk1boot0 -n 4096 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000400 d1 00 20 40 00 00 80 87 00 00 00 00 2c f4 7f 87 |.. @........,...| 00000410 20 f4 7f 87 00 f4 7f 87 00 00 00 00 00 00 00 00 | ...............| 00000420 00 f0 7f 87 00 f0 09 00 00 00 00 00 d2 01 e8 40 |...............@| 00000430 cc 01 e4 04 02 0c 40 68 ff ff ff ff 02 0c 40 6c |......@h......@l| 00000440 ff ff ff ff 02 0c 40 70 ff ff ff ff 02 0c 40 74 |......@p......@t| 00000450 ff ff ff ff 02 0c 40 78 ff ff ff ff 02 0c 40 7c |......@x......@|| 00000460 ff ff ff ff 02 0c 40 80 ff ff ff ff 02 0e 04 b4 |......@.........| 00000470 00 0c 00 00 02 0e 04 ac 00 00 00 00 02 0e 02 7c |...............|| 00000480 00 00 00 30 02 0e 02 50 00 00 00 30 02 0e 02 4c |...0...P...0...L| 00000490 00 00 00 30 02 0e 04 90 00 00 00 30 02 0e 02 88 |...0.......0....| この領域にセカンダリベクターテーブル (SVT) を書き込もうとすると、システムが起動しなくなります。SO、SVT はどこに記述すればよいのでしょうか? 私はいつも uuu を使用してシステムをフラッシュしてきました。特に、イメージ全体をフラッシュする必要がある場合は、次のようにします。 uuu -b emmc_all U-Boot のみを更新する必要がある場合は、次のようにします。 uuu -b emmc mmcblk1boot0 パーティションを作成して書き込むのは uuu だと思います。ブート手順の他の部分も変更されている可能性がありますか? Re: Secondary Boot on i.MX6ULL Hangs After Reset あなたの説明と投稿された画像に基づくと、eMMC ユーザー パーティションが破損していますが、システムは引き続き起動できます。これは、i.MX6ULL のセカンダリ ブートに eMMC ブート パーティション (boot1 または boot 2) を使用していることを示します。専用のブート パーティションが必要な場合は、準備したイメージをそこに書き込む必要があります。もちろん、eMMC ブート パーティションは十分な大きさである必要があります。あるいは、Linux の u-boot コマンドまたは mmc ツールを使用して、ブート パーティションをユーザー パーティションに切り替えることもできます。 こちらはセカンダリブート用のコレクションです。 https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/iMX-secondary-boot-collection/ta-p/1916915 https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX8MM-SDCARD-Secondary-Boot-Demo/ta-p/1500011で Windows と Linux の両方で実行できるスクリプトがあり、セカンダリ ブート イメージの作成に役立ちます。 試してみましたが、とても良いです。 soc_name: imx6(imx6ファミリ全体)、imx8mq、imx8mm Re: Secondary Boot on i.MX6ULL Hangs After Reset 奇妙なことに気付きました。次のコマンドでプライマリ イメージの IVT を破損させようとすると、 sudo dd if=/dev/zero of=/dev/mmcblk1 bs=1 seek=1024 count=32 && sync‍‍‍‍‍‍‍‍‍‍ セカンダリ U-Boot がなくてもシステムは起動します。 私が持っている mmc パーティションは次のとおりです。 root@imx6ull:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS mmcblk1 179:0 0 58.2G 0 disk |-mmcblk1p1 179:1 0 120M 0 part /boot `-mmcblk1p2 179:2 0 1000M 0 part / mmcblk1boot0 179:8 0 4M 1 disk mmcblk1boot1 179:16 0 4M 1 disk U-Boot バイナリも mmcblk1boot0 に書き込まれているようです。 システムが実際に mmcblk1boot0 に保存されている U-Boot を使用していて、そこに SIT とセカンダリ U-Boot を書き込む必要がある可能性はありますか? @Bio_TICFSL 、この点について明確にしていただけますか? Re: Secondary Boot on i.MX6ULL Hangs After Reset 16 進ダンプを見ると、オフセット 0x208 を 0x00112233 に変更し、0x20C を 0 に設定していることがわかりますが、firstSectorNumber フィールドが正しくない可能性があります。このフィールドは、セカンダリ イメージが始まるセクターを指す必要があります。 このテストでは、手順全体を検証するために、プライマリ U-Boot をセカンダリ U-Boot として使用しようとしていたため、 firstSectorNumber を0 に設定しました。 私の投稿の最後の 16 進ダンプでは、代わりに 2 つの異なる U-Boot イメージ (プライマリとセカンダリ) を使用して、より標準的なテストを実行しました。そのCASE、 firstSectorNumberは0x2000に設定されました。これは、セカンダリ U-Boot が実際に始まるオフセットに対応します: 0x2000 * 512 (つまり、ブロック サイズ) + 1024 (つまり、MBR サイズ) = 0x400400 、投稿したリンクで説明されているとおりですが、システムはリセット後もハングしたままになります。 何か見逃しているのでしょうか? Ps: あなたが投稿したこのコマンドは imx8 専用であり、imx6 には対応していないと思います。 mw.l 0x30390098 0x40000000 Re: Secondary Boot on i.MX6ULL Hangs After Reset Hello この問題は、セカンダリ イメージ テーブル (SIT) 構成に関係しているようです。eMMC を使用して i.MX6ULL の冗長ブートを実装する場合、SIT の firstSectorNumber フィールドをプライマリ ブート イメージのサイズに応じて正しく設定する必要があります。 適切なセカンダリブートの実装: 1. SIT に以下の重要な値があることを確認します。 - タグ = 0x00112233 (正しく設定されています) - firstSectorNumber = プライマリイメージのアラインサイズ/512バイト - すべての予約フィールドが適切に設定されていることを確認する 2. セカンダリ イメージが 0x1000 境界でプライマリ イメージの後に正しく配置されていることを確認します。 3.イメージをフラッシュした後、次のコマンドを使用して PERSIST_SECONDARY_BOOT フラグを設定します。 「」 mw.l 0x30390098 0x40000000 「」 16 進ダンプを見ると、オフセット 0x208 を 0x00112233 に変更し、0x20C を 0 に設定していることがわかりますが、firstSectorNumber フィールドが正しくない可能性があります。このフィールドは、セカンダリ イメージが始まるセクターを指す必要があります。 プライマリ U-Boot イメージのサイズ (適切に調整) に基づいて firstSectorNumber を再計算し、セカンダリ ブート イメージが正しいオフセットに配置されていることを確認してください。セカンダリ イメージは、プライマリ イメージが終了した後のセクター境界から開始する必要があります。 冗長ブートの実装に関する詳細は、次のコミュニティドキュメントを参照してください。 https://community.nxp.com/t5/i-MX-Security/Secondary-Redundant-boot-in-i-MX-6-7-8M-Family-of-Application/ta-p/1117103 よろしくお願いします。 Re: Secondary Boot on i.MX6ULL Hangs After Reset   前述したように、セカンダリ ブートは使用パーティションだけでなくブート パーティションでも機能する必要があります。   eMMC ブート パーティションが十分な大きさの場合は、次の 2 つのコマンドを試して、セカンダリ ブートの flash.bin (flash_secondary_boot.bin) をブート パーティションに書き込むことができます。   uuu emmc uuu emmc [flash_secondary_boot.bin] 注: ここでのflash.binは通常使用するプライマリブートイメージのみです。uuuヘルプを確認してください。 uuu [-d -m -v -bmap -no-bmap] -b[run] arg... Run Built-in scripts emmc burn boot loader to eMMC boot partition arg0: _flash.bin bootloader arg1: _image[Optional] image burn to emmc, default is the same as bootloader   前に提供したリンクのスクリプトを使用して、セカンダリ ブート イメージを作成CAN。   プライマリ イメージを完全にゼロで構成されたファイルに置き換えることで、プライマリ イメージの破損をシミュレートCANできます。   https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX8MM-SDCARD-Secondary-Boot-Demo/ta-p/ ...   https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/iMX-secondary-boot-collection/ta-p/19169 ... Re: Secondary Boot on i.MX6ULL Hangs After Reset @kawateb265 さんのご回答のおかげで、ようやく問題を解決できました。imx6 は boot0 パーティションから起動していました。ユーザー パーティションから起動するには、u-boot で次のコマンドを実行する必要がありました。 => mmc partconf 1 1 7 0 EXT_CSD[179], PARTITION_CONFIG: BOOT_ACK: 0x1 BOOT_PARTITION_ENABLE: 0x7 PARTITION_ACCESS: 0x0 ここで '0x7' はユーザー パーティションを有効にします。説明は次のとおりです: https://docs.u-boot.org/en/v2025.01/usage/cmd/mmc.html#:~:text=0x7,boot この変更を適用すると、「md.l 20D8044 1」によるテストは正常に動作し、リセット コマンド後にセカンダリ U-Boot が起動します。 Re: Secondary Boot on i.MX6ULL Hangs After Reset ご説明ありがとうございます。 私の場合、前のメッセージの lsblk 出力に示されているように、Yocto が自動的に作成したと思われる 2 つのブート パーティション、「mmcblk1boot0」と「mmcblk1boot1」があります。 スクリプトによって生成されたバイナリを mmcblk1boot0 に配置する必要がありますか? もしSOなら、mmcblk1boot1 の目的は何ですか? Re: Secondary Boot on i.MX6ULL Hangs After Reset コレクション全体を読むと、i.MX8QXP eMMC セカンダリ ブートの 2 つのブート パーティションが相互にバックアップされていることがわかります。ただし、i.MX8MM と iMX6 のブート パーティションは相互にバックアップされておらず、一方が独立しています。 https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/iMX-secondary-boot-collection/ta-p/1916915 https://community.nxp.com/t5/NXP-Tech-Blog/i-MX8QXP-eMMC-セカンダリブート/ba-p/1257704#M45
查看全文
Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp Hello, I’m trying to establish communication between two Imx95 verdin EVK A1 Silicon version boards, through their Aquantia 10 Gbps interfaces. Both boards are running Debian 12 ( linux kernel 6.12.3) with the aquantia10 G firmware (AQR-G4_v5.6.D-AQR_Marvell_NoSwap_XFI_ID44834_VER2068.cld ) properly installed using the nxp installer (aquantia-firmware-utility/aq_api_2_9_7 at master · nxp-qoriq/aquantia-firmware-utility · GitHub). They are physically connected using a Cat6a Ethernet cable. When I run performance tests using iperf3, I get around 5 Gbps in TCP and 1.2 Gbps in UDP with 0% of loss, even when specifying a target bandwidth of 7 Gbps: # TCP Test iperf3 -s # on the first board iperf3 -c -t 30 # on the second board # UDP Test iperf3 -s iperf3 -c -u -b 7G -t 30 when i try to activate jumbo frame with ip link set dev enp1s0 mtu 9000 but i get an error that i exceded the limit (it’s weird that a 10Gbps interface does not accept jumbo frames) also i tried to to increase the UDP buffer size, but i get the same bitrame the CPU load does not exceed 40% when i run iperf3 in both sides Are there any specific n configurations to apply or additional tools to install in order to reach the maximum throughput (close to 10 Gbps)? is the Aquantia FW version is good? the linux kernel version? the FW installer version??? SOmeone have already tried to use the 10Gbps interface on this Targets??? Regards, Abdelmonaem Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp 1. Try configuring following settings on both of your systems: cpufreq-set -g performance sysctl -w net.core.rmem_max=26214400 sysctl -w net.core.wmem_max=26214400 sysctl -w net.core.netdev_max_backlog=250000 sysctl -w net.ipv4.tcp_rmem='4096 87380 16777216' sysctl -w net.ipv4.tcp_wmem='4096 65536 16777216' 2. If possible use a different reference system as iperf server (e.g. Intel Xeon) 3. iperf3 itself is single-threaded per test stream, try using  -P option: e.g. iperf3 -c -u -b 10G -t 30 -P 6 (6 streams) 4. Check both forward and reverse stream (-R) iperf3 -c 192.168.1.1 -t 10 -b 10G -u -R Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp Hi, Thank you for your feedback, applying your configuration: cpufreq-set -g performance sysctl -w net.core.rmem_max=26214400 sysctl -w net.core.wmem_max=26214400 sysctl -w net.core.netdev_max_backlog=250000 sysctl -w net.ipv4.tcp_rmem='4096 87380 16777216' sysctl -w net.ipv4.tcp_wmem='4096 65536 16777216' Now i'm able to achieve 10Gbps some times 8,8 or 9,8Gbps on emitter side only and with only iperf and not iperf3, on the receiver side i can only achieve 5.59Gbps with 36% of loss frames, could you help to resolve this issue Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp it will be a minor version upgrade to 6.12.49 BTW, you may also want to consider DPDK or AF_XDP for better throughput?  Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp => TCP vs UDP send performance When you are using iperf3 to send TCP packets, each TCP packet is 128KB, and the packet will be fragmented by the LSO feature of ENETC Hardware. So you see higher TCP transfer performance. iperf3 does not enable UDP_SEGMENT when creating UDP sockets. Therefore: - Each UDP packet is approximately MTU-sized (≈1500 bytes). - For the same data size, UDP requires to send many more packets than TCP. More packets → more kernel processing → lower performance compared to TCP with LSO. => Why receive is much lower in comparison to send for TCP? - The TX and RX paths are not symmetrical in the Linux kernel, so the processing time for each RX packet and each TX packet in the kernel is different. Also TCP is using LSO offload in send. - RSC is not enabled by default in kernel; We need to disable TCP timestamp so that the RSC of ENETC can work properly. Currently, the RSC of i.MX95 is disabled by default. a) Enable RSC of i.MX95 (receiver side): ethtool -K eth1 large-receive-offload on b) Disabled TCP timestamp (sender side) : sysctl -w net.ipv4.tcp_timestamps=0 sysctl -p /etc/sysctl.conf After enabling RSC, you will see the TCP performance at receiver side will be increased. Additionally you can try using Jumbo frames to get higher throughput. (Hope you are running latest release). # Change MTU to 9000 on both side ip link set dev eth1 mtu 9000 # Change RX buffer length in the ethernet driver. ethtool -G eth1 rx-buf-len 16384 We can see between 8 to 10 Gbps UDP RX/TX with multi-stream mode. Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp Hi, I'm interested only on UDP for the moment and not TCP and i think that the offload mecanisms are not applicable for UDP I tried to activate the jumbo frames by setting mtu to 9000 but i get an error that i exceeded the limits which is 1500 (im using the kernel version 6.12.3) Regards, Abdelmonaem Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp Ok i will try this and told you what i get, Could you precise the linux kernel version for LF-Q4?? As i told you i'm on 6.12.3 and i cannot go to a superior version because i have a A1 silicon revision, i need to know if i have to upgrade to B0 revision or not Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp The RSC settings will also improve UDP performance. The changes/fixes for Jumbo frames in ENETC should be available in upcoming LF-Q4 release in two weeks.  Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp With i don't have an issue i can go to 10Gbps sometime 9, 8Bps with iperf in parallel flows with only one flow i'm at 5Gbps , but my big issue is the Udp, in mono flow i'm at 2Gbps with no lost frame it's ok, but in parallel flows i'm at 5,5Gbps with 42% of loss Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp i don't think that AF_XDP or DPDK will help to reduce a 46% of loss to 0%, i verified also the IRQ affinty and i can see that on the 10G interface i have 6 IRQ each one is affected to a CPU, and i don't see any CPU load issue during the test, the maximum CPU load for 1 CPU is 40%, i still don't understand why i keep loosing frames , maybe the fact that the kernel version used does not support jumbo frames , did you have any performance tests on the 10G interface in your Side (NXP) i think you should test in your side and see if you have the same issue than mine Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp AF_XDP or DPDK do not use kernel networking stack.  DPDK specially have a different driver and work in userspace only. It is highly optimized for networking and packet processing.  It can provide really fast performance for all IP packets.  you may check it out at;  Chapter 10: https://www.nxp.com/docs/en/reference-manual/RM00293.pdf Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp this test is performed on which silicon revision A1 or B0?? do you confirm that the kernel version used for this test 6.12.49 is applicable only for B0 or could be applicable on A1??? i'm not seeing this kernel version in your bsp delivery, the last one is 6.12.34 https://www.nxp.com/pages/alpha-beta-bsps-for-microprocessors:IMXPRERELEASES Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp The new kernel tree and changes are available at: https://github.com/nxp-imx/linux-imx/commits/lf-6.12.49-2.2.0 A1 support has been dropped from newer LF release.  You have following options; 1.  Just build the kernel independently and replace the kernel only in your build. (It may work)   2. Ask your marketing contact to replace your boards with B0 - so that you can run LF-Q4'2025 release.  Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp Ok got it, but just to be sure, could you do the test with MTU = 1500 at reception side i need to know if you have the same result than me on this new version and also i see on your test you put TX at 1500 and reception at 9000 but this does not change anything it's like you are in 1500 in both side if you need to test jumbo frames you need to be at 9000 in both sides , please redo the tests with following configuration: 1- RX/TX with MTU = 1500 in both sides with mono and muti streams 2- RX/TX with MTU = 9000 in both sides with mono and muti streams thank you in advance Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp i don't understand that frome those lines: Single UDP Stream send (1500 MTU): 2 Gbps(this seems at tx with MTU 1500 in single stream you are at 2Gbps) Multi UDP stream send (1500 MTU): 10 Gbps (this seems at tx with MTU 1500 in multi streams you are at 10Gbps) Single UDP Stream send (9000 MTU): 8.2 Gbps(this seems at tx with MTU 900 in single stream you are at 8.2Gbps) Single UDP Stream receive(9000 MTU): 3.9 Gbps(this seems at Rx with MTU 9000 in single stream you are at 3.9Gbps) Multi UDP Stream receive(9000 MTU): 10Gbps(this seems at Rx with MTU 9000 in Multi streams you are at 2Gbps) for me i don't see : Single UDP Stream receive(1500 MTU) Multi UDP Streams receive(1500 MTU) Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp yes, this how the results were tested. MTU was same on both side in all cases (either both 1500 or both 9000) Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp see attached,  Also note that I am also running it on A1 SOC UBOOT logs: -  U-Boot 2025.04-g8c1de2e1deca (May 09 2025 - 15:29:26 +0000) CPU:   i.MX95 rev1.1 at 1800MHz CPU:   Automotive temperature grade (-40C to 125C) at 30C LM Boot reason: sw, origin: 2, errid: 1 LM shutdown reason: sw, origin: 2, errid: 1 Model: NXP i.MX95 19X19 board DRAM:  15.8 GiB --- SM logs >$ info SM Version = Build 633, Commit c37b26da SM Config = mx95evk, mSel=0 Board = i.MX95 EVK, attr=0x00000000 Silicon = i.MX95 A1 Boot mode = normal Boot device = MMC1 Boot stage = primary Boot set = 1 ECID = 0x6E5F04BA0000000500041D0899123F81 PMIC 0 (0x08) = 0x20, 0x09, 0x10, 0x00, 0x01 PMIC 1 (0x2A) = 0x54, 0x22, 0x00, 0x0B PMIC 2 (0x29) = 0x55, 0x22, 0x00, 0x0A Compiler = gcc 14.2.1 20241119
查看全文
No SCL/SDA Signals when using I2C Send as Master I have set up LPI2C1 as Master but get no outputs when attempting to send. I have pull-up resistors and the signals are connected to 1 slave device only. Please see below. What are some possible reasons for this problem? Initialization: /* set I2C1 interrupt */ IntCtrl_Ip_EnableIrq(LPI2C1_IRQn); IntCtrl_Ip_InstallHandler(LPI2C1_IRQn, LPI2C1_Master_Slave_IRQHandler, NULL_PTR); /* Init lpi2c in master mode */ Lpi2c_Ip_MasterInit(LPI2C_CHANNEL_0, &I2c_Lpi2cMasterChannel0); Send data: boolean I2C_read_fault_status(uint8 *rx_buffer) { TxBuff[0] = 0x78;   if (LPI2C_IP_SUCCESS_STATUS == Lpi2c_Ip_MasterSendData(LPI2C_CHANNEL_0, (uint8 *)&TxBuff[0], 1U, FALSE)) { LM5171_data_ptr = rx_buffer; LM5171_data_len = 1; return TRUE; } Re: No SCL/SDA Signals when using I2C Send as Master We are using the S32K324 part with the S32DS3.5 debugger and a Multilink FX Universal interface. Our RTD version is 4.00 HF02. There is not an option in the LPI2C peripheral to enable debugging (like there is in other peripherals). I did not think to set the option manually! When I set the DBGEN bit, the signals work as expected. Re: No SCL/SDA Signals when using I2C Send as Master What kind of debug mode you are using? specific debugger or on board debugger? Re: No SCL/SDA Signals when using I2C Send as Master Hi@phil_b Could you tell us the part number you're using? Also, the RTD version is ? If you're using S32K3, could you please try to set this bit and have a try again. Re: No SCL/SDA Signals when using I2C Send as Master The signals were missing while I was running in Debug mode. When I removed the debug connector, the signals were there! Is there a way to see the signals while in Debug mode?
查看全文
CLRC66301B 掉电模式仍消耗 2 mA 而不是 nA 您好,恩智浦社区 我正在使用 CLRC66301B NFC 读卡器IC 并尝试通过将 PDOWN 引脚设为高电平来激活掉电模式 (3.3)V),详见数据手册。但是,电流消耗保持在2 mA,而数据表显示掉电时电流消耗应在8 nA至40 nA之间。 设置详情: PDOWN 引脚:3.3 V(恒定高电平) VDDs:VDD(TX)、VDD(AUX)、VDD(MCU)电压均为 3.3 V 接口:I²C(测试期间空闲) XTAL:连接 27.12 MHz 晶体 当前测量期间无通信或活动 测量电流: ~2 mA 问题 1.在断言 PDOWN 之前是否需要对寄存器进行配置? 2。IRQ、XTAL、IFSEL 或其他 GPIO 能否阻止进入真正的掉电模式? 3.PDOWN 是否需要使用 VDD 或 RESET 进行额外的定时或排序? 如有任何见解或建议,我们将不胜感激。 谢谢! 乌玛桑卡尔 NFC 控制器解决方案 Re: CLRC66301B Power-Down Mode Still Consumes 2 mA Instead of nA 您好, 当您提到当 SDA 和 SCL 物理断开时电流消耗会降低时,是指您移除了该引脚上的所有连接(同时移除主机 MCU 和上拉电阻器),还是指这些线路仅与主机 MCU 断开? 另外,能否请您描述一下测量所用的方法、设备和测试点? Eduardo。 Re: CLRC66301B Power-Down Mode Still Consumes 2 mA Instead of nA 亲爱的恩智浦团队 我使用带有 CLRC66303B 芯片的官方 CLEV6630ARD 板进行了掉电电流测试。只有在进行任何 I²C 通信之前物理断开 SDA 和 SCL 时,电流才会达到 ~40 nA。如果使用一次 I²C,即使将 PDOWN 设为高电平,电流也会保持在 2 mA 以上。 请说明在进入 PDOWN 之前,I²C 线路应该做些什么?具体来说 在断言 PDOWN 之前,MCU 是否应将 SDA 和 SCL 设置为高阻抗(输入,无拉)? 之前的任何 I²C 通信是否会阻止芯片进入真正的硬掉电? 谢谢! Follow-Up: CLRC66303 – High Current in Hard Power-Down Mode (CLEV6630ARD-Based Design) 亲爱的恩智浦团队 我之前曾就 CLRC66301HN 的硬掉电电流提出过问题,你的回复建议迁移到 CLRC663 Plus 系列 (CLRC66303)。此后我改用 CLRC66303B,使用基于 CLEV6630ARD 参考设计的定制板,我想继续提供最新的测试结果。 你之前的回复侧重于 LPCD 行为和 AN11783,但这个问题仅涉及通过 PDOWN 引脚进行硬掉电,没有RF场或 LPCD 处于活动状态。 掉电电流测量 (CLRC66303B): > 当 PDOWN 处于低电平时(芯片处于活动状态,RF场 开启):~100 mA >当 PDOWN 为高电平且存在 I²C 上拉时:~1.2 mA >当 PDOWN 为高且 I²C 线路被驱动为低时: ~6.6 mA >当 PDOWN 为高电平且 I²C 线路在使用前已物理断开时:~40 nA 只有在进行任何 I²C 通信之前物理断开 SDA 和 SCL 连接时,芯片才会在 PDOWN 模式下消耗 ~40 nA 电流。如果只使用一次 I²C,则即使在 PDOWN 钳位高电平之后,电流仍保持高电平。 硬件设置摘要: 芯片:CLRC66303B,I²C 模式。 微控制器:TI CC2652R7,100 kHz I²C 电压:3.3 V 调节 上拉:SDA/SCL 上 4.7 kΩ 至 3.3 V 未使用的引脚:按照数据表拉动 未启用射频或 LPCD 功能 方案设计:基于 CLEV6630ARD(附后) 需要澄清的问题: 1.在 PDOWN 模式期间,SDA/SCL 是否内部偏置? 2。即使后来将PDOWN设置为高电平,之前的任何I²C活动是否会阻止真正的掉电? 3.在断言 PDOWN 之前,是否有必要将 MCU I²C 引脚设置为 Hi-Z(输入,无拉)? 4.是否有恩智浦推荐的方法,可在硬 PDOWN 模式下可靠地实现<100 nA,而无需物理断开 I²C 线路? 我们的目标是确保电池的使用寿命,并且必须实现数据手册中规定的低功耗性能。如果有任何专门关于 PDOWN 行为和 I²C 漏电流的指导或文档,我们将不胜感激。 附上示意图以供参考。 顺祝商祺! Umasankar C Re: CLRC66301B Power-Down Mode Still Consumes 2 mA Instead of nA 你好@Umasankarc 希望你一切顺利。 我知道你使用的是基于 CLRC66301HN(非增强版)的自定义板,对吗?如果是,请考虑我们建议改用 CLRC663 plus 系列 (CLRC66303)。 引脚 PDOWN 的高电平应启用硬掉电。数据手册中描述的掉电电流 (Ipd) 相当于 CLRC663 芯片中所有电源电流的总和;但是,嵌入在板中的外部元器件可能会消耗额外的功率。 AN11783 CLRC663 plus《电源卡检测》第 3.4 节中描述了一些低功耗设计建议。 Eduardo。
查看全文
imx-smw ele バックエンドを複数のプロセスで同時に使用する プラットフォーム: iMX8ULP imx-smw: lf-6.6.52-2.2.0 imx-セキュア・エンクレーブ: lf-6.6.52-2.2.0 mbedts の暗号ドライバとして、imx-smw ライブラリによって公開されている PSA 暗号 API を使用しています。HSM ELE で秘密鍵を生成します。私たちのアプリケーションは、mbedtls で秘密鍵を不透明鍵としてロードして使用します。異なるプロセスで実行されている複数のアプリケーションは、同時に同じキーを使用できる必要があります。一例として、HSM でラップされたキーを秘密キーとして使用する Web サーバーが挙げられます。 私たちの知る限り、2 つの異なるプロセスが imx-smw ライブラリを使用して同時に同じキーを使用することはCANません。これは、各プロセスがキーにアクセスするために同じ (ele) キーストア サービスを開く必要があり、HSM ドキュメントに記載されているように、同じキーストアを同時に開くことができないためです。複数のプロセスが同じキーを同時に使用するCASEはサポートされていないようです。 この問題をどうしたら克服CANでしょうか? 考えられる解決策としては、imx-smw ライブラリの上にデーモンを作成し、キーにアクセスするための単一のエントリ ポイントを作成することです。しかし、もしかしたら私たちは何かを見逃しているのかもしれませんし、それに対処する別の方法があるかもしれません。 i.MX8ULP Security Re: use imx-smw ele backend in multiple processes simultaneously こんにちは@GiacomoDS このCASEについては社内チームと相談させていただきますが、その前にNXPについて名を教えていただけますか?プライバシーに関するCASEは、内部チケットを発行することもCAN。ここからアクセスして、NXP サポート プロフェッショナルによる機密のサポートを受けてください。 よろしくお願いします。 Harvey
查看全文
S32K 示例 S32K1xx S32K144 示例 S32K144 CMP 轮询 S32DS2.0 示例 S32K144 验证后门访问密钥 S32DS1.3 示例 S32K144 FlexCAN0 RXFIFO DMA nonSDK S32DS13 示例 S32K144 PDB ADC 触发 DMA ISR S32DS 示例 S32K144 Flash RW simple S32DS 示例 S32K144 DMA 内存复制测试 S32DS S32K144 EEEPROM 使用示例 示例 S32K144 EEEPROM 使用 - 无 SDK 示例 S32K144 RTC VLPS 示例 S32K144 WDOG RCM 中断 示例 S32K144 SRAM ECC 注入  S32K144 RAM 保留示例 S32DS.R1 示例 S32K144 I2C主设备 MPL3115A2 S32DSR1_v3 示例S32K144 FlexCAN RXFIFO DMA S32DS.ARM.2018.R1  示例 S32K144_printf_implementation - S32DS_1.0 示例 S32K144 在 FreeRTOS 下使用 UART printf/scanf - S32DS 示例 使用 LPIT 定时器实现可配置周期函数调用的 S32K144 SDK 示例 S32K144 .noinit章节用法 示例 S32K144 PDB ADC DMA S32DS.ARM.2018.R1 示例 S32K144 RAM 自检简单 S32DS 2018.R1 示例 S32K144 位置无关代码  示例 S32K144 FlexCAN 虚拟网络停止模式测试 S32DS.ARM.2.2 示例 S32K144 LPIT DMA LPSPI 示例 S32K144 FlexCAN TX/RX/Error ISR 测试 S32DS2.2 示例 S32K144 FlexIO 空闲检测 S32DS2.2 S32K146 示例 S32K146 Set_whole_FlexRAM-as_RAM S32DS.ARM.2.2 S32K148 示例 S32K148 PDB0-PDB1 环 S32DS3.4 RTM4.0.3 示例 S32K148 PDB0-PDB1 环 DMA S32DS3.4 RTM4.0.3 示例 S32K148 GPIO 中断 S32K116 示例 S32K116 WDOG 快速测试 示例 S32K116 LPUART LIN 从机 TXRX ISR S32DS.ARM.2.2 示例 S32K116 FlexCAN PN 停止 S32DS.ARM.2.2 示例 S32K116 FlexCAN VLPR 测试 S32DS.ARM.2.2 S32K118 示例 S32K118-SRAM-keep_data_over_SW_reset v0_1 S32DS.ARM.2.2 S32K3xx S32K344 示例 S32K344 PIT BTCU ADC DMA DS3.4 RTD100   示例 S32K344 FlexCAN_Ip TX/RX/EnhanceRXFIFO 测试 S32DS3.4 RTD200   示例 Siul2_Port_Ip_Example_S32K344_ITCM_DTCM S32DS3.4RTD300   示例 S32K358 FlexCAN TXRX ISR S32DS35 RTD400/500    
查看全文