Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
SPI Underrun Hello: I am using the SPI of S32K312 as a slave to communicate with external devices, in the actual test I found that it works fine when the SPI bus is 5MHZ, but because of the demand I need the SPI to communicate at 10MHZ rate, the test found that the trigger event of SPI is LPSPI_IP_EVENT_FAULT and the SPI is configured for DMA, I have set the DMA in the void Lpspi_Ip_IrqTxDmaHandler(uint8 Instance). void Lpspi_Ip_IrqRxDmaHandler(uint8 Instance);Interrupt point observation to SR register for observation. Found out that triggering RX first at this point SR = 6914, after that it will return to the callback function I registered, then triggering TX at this point SR = 3; By checking the datasheet I found out that an SPI underflow and FIFO overflow problem occurs when triggering the RX. I have run the slave's asynchronous transceiver program Lpspi_Ip_AsyncTransmit before the host initiates the communication, I would like to know why and how this problem occurs, and how I can optimize it hope to get some suggestions. Attached is my SPI configuration. Re: SPI Underrun Hello @siyuanzhengwei, What do you mean by this statement: "Without monitoring the slave device's SPI interrupt trigger events, the master device can receive the correct data sent by the slave device." TX underrun (SR[TEF]) is set only when the master starts the transfer while the slave TX FIFO does not contain valid data, i.e. the driver or DMA did not write the next data word in time. There is no other condition under which this flag is set. Therefore, this error cannot be explained by SPI signal quality; it indicates that the slave transmit path was not serviced early enough before or during the transfer. BR, Daniel Re: SPI Underrun Hello: I roughly say the workflow, MCU slave will start the first reception after power on, the external master device sends about 15ms to initiate a communication, after that the slave will be based on the information received to parse and send the corresponding data, in the not pay attention to the slave SPI interrupt triggering event, the host is able to receive the correct data sent by the slave. There is about 10ms from the first time the slave calls Lpspi_Ip_AsyncTransmit to the time the host initiates the communication, and the SPI error occurs not after a period of time, but the first time the communication is faulty. I call the slave's Lpspi_Ip_AsyncTransmit every 2ms through a timer, 10ms should be enough time to prepare the data, but every SPI trigger event is FAULT, I have used a logic analyzer to check the waveform of the data, and I can observe the correct send/receive data, but through the oscilloscope to observe the quality of the signal is not good and not a smooth square wave. The signal quality is not very good and not a smooth square wave, is it possible that this is also related to the signal quality? Re: SPI Underrun Hi @siyuanzhengwei, The return status of Lpspi_Ip_AsyncTransmit is LPSPI_IP_STATUS_SUCCESS because this is an asynchronous transfer (it only indicates that the transfer was started, not completed). The key issue is the TX underrun (SR[TEF]). This means the slave did not have data available in the TX FIFO when the master started clocking. In SPI slave mode, the TX FIFO must be populated before the master asserts CS and starts the transfer.  The RTD drivers introduce some overhead, and starting the transfer on the slave side takes time. As a result, Lpspi_Ip_AsyncTransmit is called too late and the first data words are not ready in time. Do you monitor the TX line with an oscilloscope? What do you measure there? Regards, Daniel Re: SPI Underrun One more piece of information to add; although the SPI trigger event is LPSPI_IP_EVENT_FAULT, the return status of Lpspi_Ip_AsyncTransmit is LPSPI_IP_STATUS_SUCCESS, the LpspiHwStatus is LPSPI_IP_BUSY, and the received data again is correct.
View full article
S32K314 FreeRTOS 待机转换和返回运行模式 我正在使用 S32K314 和 RDT 7.0.0 开发一个结合了中断和任务的项目、和 FreeRTOS 7.0.0。 中断和任务运行正常。我已经实现了从运行模式过渡到待机模式的代码,并在 RTC 测得的指定时间过后返回运行模式。 我已经确认系统从运行模式过渡到待机模式,之后会重置,导致 MCU 引导加载程序再次运行。  但是,在 MCU 初始化开始和 PLL 锁定之后,向 MCU 外围设备分配时钟的过程中会发生错误。由于在 P.O.R. 运行时可以正常工作,我认为在将系统切换到待机模式的过程中存在一些错误。 您能帮帮我吗? Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 附加信息: 该项目定义了待机 RAM。RAM 从 BSS 开始分配为 32 千字节的区域。该区域在从待机模式恢复后存储必要的数据。 /*---过渡到待机模式---*/ /* 设置 RTC 计时器唤醒 WKPU0 的超时时间 */ Gpt_StartTimer(GptConf_GptChannelConfiguration_GptChannelConfiguration_RTC, RTC_BASE_CLOCK_HZ * seconds); /* 暂停所有操作系统任务 */ vTaskSuspendAll(); /* 将时钟模式初始化为待机 */ Mcu_InitClock(McuClockSettingConfig_Standby); /* 设置时钟模式 */ Mcu_SetMode(McuModeSettingConf_Standby); ..... (Reset Occur) /*---MCU 初始化---*/ /* 将待机 RAM 区域设置为不可缓存 */ MpuConfigurator_AllocateStandbyRamToNonCacheable(); /* 启用不可缓存模式 */ MpuConfigurator_Enable(); /* 初始化 MCU 模块 */ Mcu_Init(NULL_PTR); /* 运行时钟初始化设置模式 */ if (E_OK == Mcu_InitClock(McuClockSettingConfig_Run)) { /* 通过**轮询**等待 PLL 锁定 */ while (MCU_PLL_LOCKED != Mcu_GetPllStatus()) { /* 等到 PLL 锁定 */ } /* 将 PLL 时钟分配给系统 */ Mcu_DistributePllClock();  ← 这里出现错误 Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 嗨,@Teruhiko、 您能找到有关该错误的更多信息吗?故障异常属于哪种类型? https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K312-HARDFAULT-Handling-Interrupt-DS3-5-RTD300/ta-p/1806259 https://community.nxp.com/t5/S32K-Knowledge-Base/How-To-Debug-A-Fault-Exception-On-ARM-Cortex-M-V7M-MCU-S32K3XX/ta-p/1595570 https://community.nxp.com/t5/S32K-Knowledge-Base/Fault-handling-on-S32K14x/ta-p/1114447 您也可以逐步执行代码,以确定触发异常的确切位置。 检查 DCM_GPR 寄存器是否有任何错误。RM, 表 231。产品系列中由 DCM 控制的功能和可用性。 这可能是由于 RESET 后的 SRAM 初始化不正确。 有 ERM 可以对此进行监控,但默认情况下,模块的时钟处于封闭状态。 谢谢! BR,丹尼尔 Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 你好,@Teruhiko、 MCU 退出待机模式后,就可以连接调试器了。 为了方便调试,可以考虑在应用程序开始时添加一个无限循环,这样就可以连接调试器,并从那里开始逐步执行。 volatile int var = 1; while(var){} 如果观察到的是 MCU_POWER_ON_RESET,而不是 MCU_WAKEUP_REASON,请检查下列寄存器:DCMROPP1-4. 谢谢! BR,丹尼尔 Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 你好,丹尼尔-马蒂克先生、 对于延迟回复,我深表歉意。 由于在系统转换到待机模式时与 J-TAG 的通信会中断,因此我还无法获得详细的错误信息。我目前正在编写调试代码。 我想和大家分享一下我们目前了解到的情况。 我已经调查了以下条件下的重置原因: ・过渡到待机模式后 RTC 超时后自动恢复复位  → 重置原因:MCU_WAKEUP_REASON ・进入待机状态后,在待机模式下通过 WKPU 中断唤醒时重置恢复  → 重置原因:MCU_WAKEUP_REASON ・在过渡到待机模式后 RTC 超时后通过 WKPU 中断唤醒时重置恢复  → 重置原因:MCU_POWER_ON_RESET 我相信重置系数是正确的。 我怀疑每个重置因子的启动顺序差异是相关的。 一旦我掌握了有关错误的更多细节,我将另行回复。 Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 你好,@Teruhiko、 时钟看起来不错。 一个问题:当你在 POR 之后独立运行 MCU 时(不带调试器),应用程序能运行吗? 我问这个问题的原因是,当应用程序通过调试器启动时,调试器会执行部分系统初始化。在独立组网 \\(SA\\) 操作中,应用程序必须自己处理此初始化。退出待机状态后,MCU 会重置并断开调试器的连接,因此其行为实际上与独立启动相同。 Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 嗨,丹尼尔先生、 对于延迟回复,我深表歉意。 我对我们的电路设计有一些疑问,所以我在调查它与这个问题的关系。 结果,我发现电路中的端口分配有问题。 当从待机状态唤醒时发生 RESET 时,施加到 MCU 的电源电压变得不稳定。 我非常感谢你们迄今为止提供的所有支持。 非常感谢。 Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 你好,丹尼尔先生 谢谢您的建议。 重置后我能够重新连接。 当我逐步完成代码时,单片机外设初始化成功了,但当我在启动操作系统任务过程中调用 "xSemaphoreCreateRecursiveMutex() "时,程序却表现异常。 此外,当步进该函数时,在 `heap_4.c` 中函数 `void * pvPortMalloc( size_t xWantedSize )` 的以下部分,行为变得不稳定。 堆分配似乎失败了。 在过渡到待机模式之前,我应该采取哪些步骤? Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 你好,@Teruhiko、 Mcu_InitClock(Standby) 配置是什么? 它仍然应该是时钟选项之一,例如 表 157.选项 A - 高性能模式(CORE_CLK @ 160 MHz)。 你说它表现不稳定或不稳定,到底是什么意思? Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 嗨,丹尼尔先生、 本项目中 "运行 "和 "待机 "模式的设置如下所示。 我认为您提供的表 157 中的设置已应用于运行模式。 我还认为表 160 中的时钟值已应用于待机模式。我正在为这些方块设置时钟,这样 RTC 就可以测量时间,WKPU 可以触发重启。 当我逐步完成代码时,当前信息会显示在 IDE 控制台屏幕上。执行上述 "heapVALIDATE_BLOCK_POINTER() "时,控制台屏幕开始滚动,无法执行步骤 .   Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 下面介绍如何过渡到待机模式。 在 MCAL MCU 模块设置中,"STANDBY "已被选为待机模式的运行模式。 ・ 在 Design Studio 的时钟工具中,我已经为 "运行 "和 "待机 "创建了不同的功能组。 1.在正常运行模式下,按 "Mcu_InitClock(Run) "和 "Mcu_SetMode(Run) "的顺序调用函数,即可在运行模式下工作。 ... 2.要过渡到待机模式,请调用 "Gpt_StartTimer(GptConf_GptChannelConfiguration_GptChannelConfiguration_RTC, RTC_BASE_CLOCK_HZ * seconds) "启动定时器,定时器将在指定时间后通过 RTC 自动唤醒处于运行模式的系统。 3.调用 "vTaskSuspendAll() "暂停所有正在运行的操作系统任务。 4. 调用 "Mcu_InitClock(Standby)",然后调用 "Mcu_SetMode(Standby) "过渡到待机模式。 调用 vTaskSuspendAll() 的原因是基于下面链接中的信息。 https://community.nxp.com/t5/S32K/S32K312-Does-FreeRTOS-need-to-be-shut-down-before-entering/m-p/1756857
View full article
BMA7318 固件驱动程序 我们正在为BESS市场开发HV 电池管理系统和电池组。我在哪里可以下载 BMA7318 固件驱动程序,用于我们的软件开发或任何其他 BMS7318 示例代码。我们已经与恩智浦签订了 NDA 协议? Re: BMA7318 Firmware Drivers 嗨,托马斯、 看起来 BMA7318 驱动程序在 电池管理系统 SDK " Lite SDK " 版本中。但是,当我查看 "下载 "时,却没有看到 Lite SDK? Re: BMA7318 Firmware Drivers 您好, 有关 BMA7318 固件驱动程序和示例软件,请参阅 BMS 软件 SDK,其中包含所有 BCC 设备(包括 BMA7xxx 系列)的生产级驱动程序和参考实现: https://www.nxp.com/design/design-center/software/embedded-software/nxp-battery-management-software-development-kit-and-toolchain:BMS-SW   BRs, Tomas   Re: BMA7318 Firmware Drivers 嗨,托马斯、 我绑定了,点击链接时会将我带到我的个人资料页面。没有成功。 谢谢! 纳迦 Re: BMA7318 Firmware Drivers 您好, 请尝试从以下链接下载,可以使用 NXP 软件帐户: BMS Light SDK AUTOSAR 4.4 R21-11 版本 0.8.0 CD02 BRs, Tomas
View full article
SE050E2HQ1/Z01Z3Z 的电容和铁氧体磁珠要求 您好,NXP团队, 我们在定制设计板中使用安全元件 P/N:SE050E2HQ1/Z01Z3Z。 在审查参考设计板 OM-SE050ARD 时,我们几乎没有什么顾虑,如下所示 1.是否严格要求在 VIN (12)、VOUT (15)、VCC (18)引脚上使用阻抗为 330 欧姆、频率为 100 MHz 的 P/N: BLM21PG331SN1D铁氧体磁珠? 2.我们是否还需要在 VSS (19) 引脚上添加铁氧体磁珠? 3.是否需要使用 0.033uF 电容或者我们可以使用 100nF 电容? 谢谢! Re: Capacitor and Ferrite Bead requirement for SE050E2HQ1/Z01Z3Z 你好@kadamm 希望你一切顺利。 铁氧体磁珠主要与双接口操作(由非接触式接口提供)有关,以实现正确的电磁兼容性。 关于电容,您是否正在考虑只使用一个(共享)100nF 电容?如果是这样,我相信应该不会有什么大的不便。 Eduardo。 Re: Capacitor and Ferrite Bead requirement for SE050E2HQ1/Z01Z3Z 你好,爱德华多、 我们的设计没有采用 ISO 14443 或 ISO 7816 接口。因此,我们计划直接连接 VIN、VCC、VOUT 和 GND 引脚,而不使用铁氧体磁珠。此外,我们在引脚上放置一个 0.1 µF 电容以进行解耦。请问这种方法是否合适?   谢谢!
View full article
使用 Yocto Scarthgap iMX8M Mini 实现 gltransformation 我想在 imx8M Mini Yocto 版本上将 " gltransformation " 添加到我的 gstreamer 中。我的 gst-inspect 中有其他"opengl" 库,但没有看到 gltransformation。 Re: gltransformation with Yocto Scarthgap iMX8M Mini 为了进一步澄清我的问题,我正在尝试在最小的 Yocto 版本中做到这一点(没有 X11/Wayloand)。这是一个无头 RTSP 服务器,我想使用 gltransformation 来校正视频。 我能够通过修补 gstreamer 配方来启用 gltransformation 来添加 " 石墨烯 ",但是在无头使用它时遇到了问题。 Re: gltransformation with Yocto Scarthgap iMX8M Mini 你好@cjcdev 希望你一切都好。 能否请您详细介绍一下您提到的问题? "在使用它时遇到问题,无头" 。 顺祝商祺! 萨拉斯 Re: gltransformation with Yocto Scarthgap iMX8M Mini @Manuel_Salas 我正在尝试在 Headless(没有 X11/Wayland)的 Yocto 版本上使用 gltransformation。我可以使用测试启动进行普通的 rtsp 直播。但是,当我尝试使用 gltransformation 管道时,却出现了故障。 我通过创建 gstreamer1.0-plugins-base_%.bbappend 启用了石墨烯: PACKAGECONFIG:append =" 石墨烯" 这允许将 gltransformation 作为 gstreamer 插件的一部分进行构建,我可以在 gst-inspect 中看到它。 然而,当我尝试创建管道时,却遇到了问题。我试过几种不同的方法: # viv_egl_platform=GBM\ gst_gl_platform=EGL\ gst_gl_api=gles2\ gst_gl _window=GBM\ test-launch-p 8554-m /camera " (v4l2src 设备=/dev/video2 do-timestamp=true! image/jpeg,width=2560,height=1440,framerate=30/1!jpegdec !glupload !gltransformation rotation-x=45 !gldownload !jpegenc !rtpjpegpay name=pay0 )" (测试发布:8012):gstreamer-GL-Critical **:21:16:47.035:gst_gl_display_egl_from_gl_display: 断言 'native_display != 0' 失败 (测试发布:8012):gstreamer-gl-Critical **:21:16:49.201:gst_gl_display_egl_from_gl_display: 断言 'native_display != 0' 失败 # EGL_PLATFORM=设备 \ GST_GL_PLATFORM=egl \ GST_GL_API=gles2 \ test-launch -p 8554 -m /camera "( v4l2src device=/dev/video2 do-timestamp=true ! image/jpeg,width=2560,height=1440,framerate=30/1!jpegdec !glupload !gltransformation rotation-x=45 !gldownload !jpegenc !rtpjpegpay name=pay0 )" EGL: 警告:wayland 上不支持默认显示 EGL: [ 2128.886314] audit: type=1701 audit(1777670225.965:17):auid=4294967295 uid=0 gid=0 ses=4294967295 subj=uncredined pid=8095 comm= " gstglcontext " exe= " /usr/bin/test-launch " sig=11 re s=1 警告:Wayland 分段故障(核心已转储)不支持默认显示器 # EGL_PLATFORM=设备 \ GST_GL_PLATFORM=egl \ GST_GL_API=gles2 \ GST_GL_WINDOW=surfaceless \ test-launch -p 8554 -m /camera "( v4l2src device=/dev/video2 do-timestamp=true ! image/jpeg,width=2560,height=1440,framerate=30/1!jpegdec !glupload !gltransformation rotation-x=45 !gldownload !jpegenc !rtpjpegpay name=pay0 )" EGL: 警告:wayland 上不支持默认显示 (测试发布:8193):gstreamer-gl-Critical **:21:17:34.954:gst_gl_display_egl_from_gl_display: assertion 'native_display != 0' failed EGL: Warning:wayland 上不支持默认显示 (测试发布:8193):gstreamer-gl-Critical **:21:17:37.004:gst_gl_display_egl_from_gl_display: 断言 'native_display != 0' 失败 Re: gltransformation with Yocto Scarthgap iMX8M Mini 仅供参考--除非 Weston 正在运行(且 LCDIF 已启用),否则 gstreamer 中的 GPU 加速似乎无法工作。
View full article
S32K314のLINマスターモードではスレーブ応答フレームを受信できません。 こんにちは。現在、LIN開発にS32K314を使用しています。MCU をマスター モードに設定すると、正常に完全なフレームをバスに送信できますが、スレーブ デバイスからの応答を受信しようとすると失敗します。原因を特定するためにデバッグを使用しようとしました。図に示すように、完全なフレームを送信する場合はボックス内の関数をCAN呼び出すことができますが、応答を受信する場合は、ここでブレークポイントを設定し、この関数を実行できませんでした。変数では、if (LinCurrentState->IsBusBusy) の結果が true であることが確認できます。バスが混雑状態に入ったと暫定的に判断されます。完全なフレームが送信されるとバスは正常であるのに、スレーブ ノードからの応答を受信するとビジー状態と表示されるのはなぜですか?また、これら 2 つの方法を個別にテストし、完全なフレームの送信とスレーブ ノード応答の受信を同時に実行しませんでした。問題の原因がわかっている場合は、解決にご協力ください。これは私にとってとても重要です。ありがとう。 Re: In the LIN master mode of S32K314, the slave response frame cannot be received. メインモードでスレーブデバイスからの応答を受信するための私の関数をご覧ください。問題がなければ、スレーブデバイスから問題のトラブルシューティングに進みます。 Re: In the LIN master mode of S32K314, the slave response frame cannot be received. こんにちは@Aoyng 、 マスターノードの構成に問題は見当たりません。 オシロスコープ上でスレーブ ノードからの応答が表示されない場合、問題はマスターではなくスレーブ ノードにあります。 BR、ダニエル Re: In the LIN master mode of S32K314, the slave response frame cannot be received. こんにちは。オシロスコープを使用してバスを表示すると、波形が表示されません。ただし、メインモードを使用してデータを送信CAN。私の設定を見て、問題がないか確認してください。 定数 Lpuart_Lin_Ip_UserConfigType Lpuart_Lin_Ip_Sa_pHwConfigPB_0_BOARD_INITPERIPHERALS = { 1U、/*!< ハードウェアインスタンス */ 0x82, /*!< ボーレート除数 */ 16U, /*!< ボーレート OSR */ (ブール値)LPUART_LIN_IP_MASTER, /*!< マスターノード */ LPUART_LIN_IP_BREAK_CHAR_13_BIT_MINIMUM_U8, /*!< ブレーク文字の長さが送信されます */ (uint8)1U, /*!< ブレーク文字の長さを検出CAN */ #if (LPUART_LIN_IP_AUTO_BAUD == STD_ON) (boolean)FALSE, /*!< 自動ボーレート機能 */ #endif (Lpuart_Lin_Ip_CallbackType)Lin_Callback、/*!< バイトを受信または送信した後に呼び出すコールバック関数。*/ &Lpuart_Lin_Ip_axStateStructure[0U], /*!< ランタイム状態構造体参照 */ #if (LPUART_LIN_IP_FRAME_TIMEOUT_DISABLE == STD_OFF) #ifdef LPUART_LIN_IP_START_TIMER_NOTIFICATION 2292U, /*!< HeaderTimeoutValue(マイクロ秒単位)*/ 73U, /*!< 1バイトのResponseTimeoutValue(マイクロ秒)*/ #endif #endif /* (LPUART_LIN_IP_START_TIMER_NOTIFICATION == STD_OFF) */ (uint8)0, /*!< ウェイクアップパルス468.75usを生成するためのウェイクアップバイト */ (uint8)1, /*!< ウェイクアップパルス104.16666666666667us検出をチェックするために使用するバイト */ 40000000U /*!< チャネルクロック */ }; Re: In the LIN master mode of S32K314, the slave response frame cannot be received. こんにちは@Aoyng 、 フレームが実際に送信されていることを確認するために、オシロスコープでスレーブの応答をチェックできますか? また、タイミングの不一致によりマスターが応答を検出できなくなることが多いため、スレーブの LIN ボーレートがマスターと一致していることも確認してください。 信号とボーレートが正しいように見える場合、問題は割り込み処理に関連している可能性があります。そのCASEは、LPUART 割り込み構成と対応する NVIC 設定 (レジスタ内も) の両方を確認して、割り込みが適切に有効になっていることを確認してください。 よろしくお願いいたします。 ダニエル Re: In the LIN master mode of S32K314, the slave response frame cannot be received. こんにちは@Aoyng 、 SduPtrは有効である必要があります。 BR、ダニエル
View full article
HSE_IP核无法添加 Hello nxp的技术支持, 我在使用S32DS IDE3.6.2版本,RTD6.0.0版本,我无法在外设配置的界面添加HSE的IP核,可能会导致配置文件无法自动生成hse_mu的driver,请问一下这个问题该怎么解决? BR/chenyuhang Re: HSE_IP核无法添加 Hi @lukaszadrapa , 感谢您的回复,我目前已经安装了6.0.0 QLP01的包并且已经可以在外设中添加HSE的IP核了。我还有一个疑问想问您,就是我在使用HSE的时候,已经将 C:\NXP\HSE_FW_S32K344_0_2_55_0\hse_full_mem\interface 下的全部文件添加到工程中了,那么 Framework 和 services 文件夹应该如何添加?(附录的图中展示的工程结构是C:\NXP\S32K3_HSE_DemoExamples_1_0_0\S32K3_HSE_DemoExamples\Key Management\S32K344_DemoApp_SessionKeys 的示例工程),是否可以通过外设配置界面添加到工程中?还是说需要手动将这两个文件夹粘贴到我自己的工程中?另外我有查阅到nxp的中国团队有做过HSE_Lib2.0的内容,这些资料我应该如何获取? BR/chenyuhang Re: HSE_IP核无法添加 你好@chenyuhang 可能会出现并非所有模块都包含在 RTD 软件包中的情况。RTD 6.0.0 就是这种情况,当时还没有 Crypto 驱动程序。它后来在 6.0.0 QLP01 软件包中提供: 在版本说明文件中,您可以发现该软件包仅提供 Crypto 驱动程序,因此您可以将其安装在 6.0.0 软件包之上: 此致, Lukas Re: HSE_IP核无法添加 该框架只是纯 C 代码,不能通过外设配置界面添加。应手动将其添加到项目中。 让我分享一下我之前写给另一位客户的答案--可能是数据缓存出了问题: "我可以看到,该框架尚未完全准备好无缝实施 RTD 项目。我刚刚发现,我在这里的所有项目实际上都禁用了缓存。 该框架使用一个描述符数组,在运行时根据需要选择这些描述符。有一个定义 HSE_ENABLE_SHARED_MEM,可用于将数组强制转入共享区域。但是,默认情况下并不使用这个地址,而且我可以看到,它可能因为使用了一些奇怪的地址而无法工作。 那么,看看 hse_host.c 中的实现吧并将描述符数组也强制设置为 no_cachable 区域"。 关于 HSE_Lib,这是中国应用程序团队的一个项目,目前尚未公开。请与当地的恩智浦 FAE 或分销 FAE 讨论。 此致, Lukas
View full article
Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hi Experts, The customer's new BMS project wants to use S32K358 + FS27 + BMS GEN2 SDK. I learned from the BMS team that: BMS GEN2 SDK AUTOSAR 4.4 R21-11 Version 0.9.1 CD05 and BMS GEN2 SL SDK AUTOSAR 4.4 R21-11 Version 0.9.1 CD05 will be available next week. This supports S32K3 RTD 6.0.0 integration. The BMS GEN2 SDK will be migrated to S32K3 RTD 6.0.0 in BMS release v1.0.0 somewhere in Q1 '26. In other words, the BMS GEN2 SDK will be compatible with S32K3 RTD 6.0.0 in the near future. The customer needs a 24V platform and therefore wants to use FS27 instead of FS26. I found the following two versions of FS27 from Automotive SW - SBC/PMIC - Real Time Drivers: S32K3xx SBC FS27 R21-11 0.8.0 based on S32K3 RTD 5.0.0 SBC FS27 R23-11 1.0.0 based on S32K3 RTD 7.0.0 Q1. The customer is concerned that the drivers for FS27 and BMS GEN2 SDK are incompatible because the S32K3 RTD versions do not appear to be consistent.  If S32K3 RTD 6.0.0 is selected in the BMS GEN2 SDK, will there be any problems if the customer uses S32K3xx SBC FS27 R21-11 0.8.0 or SBC FS27 R23-11 1.0.0? Q2. Does the FS27 have a driver based on S32K3 RTD 6.0.0? Would you please help me? Thank you for the help in advance! Best Regards, Robin Here is the information of customer: Contact Name                TengHsaing Wen Email (Contact)              [email protected] Company                        XINGMOBILITY AA SW - External Device Priority: MEDIUM Source: Direct Customer Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hi Viktor, Thank you for your information. The "BMS GEN2 SDK AUTOSAR 4.4 R21-11 Version 0.9.1 CD05" based on S32K3 RTD 6.0.0 is not yet available for download. Once it becomes available for download, I will at least test whether it can be compiled successfully. Best Regards, Robin Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hello Robin, there is no dedicated release for RTD 6.0.0, but the latest version (FS27 1.0.0) should be backwards compatible with it. In case of any issues, please let us know. Best regards, Viktor Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD The topic has been redirect to the team to investigate it. Contact point: Razvan Tilimpea / Cristian Durla or Viktor Obr Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hi Viktor, "BMS GEN2 SDK AUTOSAR 4.4 R21-11 Version 0.9.1 CD05" is now available for download.  The customer questioned whether the AUTOSAR versions of the two drivers, R23-11 and R21-11, would differ significantly and cause compatibility issues if they were paired with SBC FS27 R23-11 1.0.0. Best Regards, Robin Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hi @viktorobr , "BMS GEN2 SDK AUTOSAR 4.4 R21-11 Version 0.9.1 CD06" is now available for download.  The customer questioned whether the AUTOSAR versions of the two drivers, R23-11 and R21-11, would differ significantly and cause compatibility issues if they were paired with SBC FS27 R23-11 1.0.0. Best Regards, Robin Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hi Robin, compatibility between different Autosar versions is tricky, we would have to compare all of the drivers used by both of the components you try to integrate and I'm not 100% familiar with the BMS SDK. I can tell you that between the FS27 versions and the drivers it uses we didn't notice major changes between R21-11 and R23-11, there might be some minor differences that will appear right away when you combine the components in one project (version specific macros etc.), but from functional point of view it should still behave the same. Best regards, Viktor
View full article
i.MX RT1061 Serial non-QuadSPI NOR flash boot Hi, I have a project using the i.MX RT1061 with a W25Q128JVSIQ external flash. I'm looking to also support the W25Q128JVSIM (due to availability). However, the W25Q128JVSIM doesn't come with the QE-bit (Quad Enable) locked to enabled. When trying to boot from it I see what I assume is the boot ROM trying to execute a Fast Read Quad I/O without first enabling the QE-bit (see screenshots for the two first commands sent). It seems to first read the FlexSPI Configuration Block (which is expected), but then the quad read fails and nothing happens (bootloader isn't started). I suspect I have to ensure the QE-bit is enabled during production for this to work, but I was curious whether the i.MX RT1061 supports booting from non-QuadSPI NOR flash at all? It kind of seems that only Quad and Octal flash are supported (see screenshot for BOOT_CFG1 fuse)? Thanks, Daniel i.MXRT 106x Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot Hi @Habib_MS, Thanks for your reply! Hmm...my understanding was that the quad_mode_setting would only be applied when calling flexspi_nor_get_config, am I misunderstanding something? Is there a way to configure the BootROM to access the flash as QuadSPI through the FlexSPI Configuration Block? Thanks, Daniel Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot Hello @MulattoKid, Booting from non (serial)‑QuadSPI NOR flash is supported. for more details about which flash devices are supported, please refer to Chapter 9.6 “Boot devices” in the RM. I also understand that you highlighted the BOOT_CFG1[3:2] bits in your image. These fields are used by the auto‑probe mechanism, as described in their definition. Therefore, these bits only provide additional information about the flash device rather than controlling its configuration. Concerning the QE bit configuration of the QSPI NOR flash: normally, selecting the correct boot option configuration is sufficient. BR Habib Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot I've found why the BootROM sends quad read commands right after reading the FCB: it's because our bootloader had a custom LUT specified in the FCB. Changing the LUT entry for reading also changed the SPI traffic. As mentioned, the reason I'm looking at this is that I want to be able to support both W25Q128JVSIQ and W25Q128JVSIM, with W25Q128JVSIM not having the QE bit set by default from the factory. I want to set the QE bit during our own production. The way I've been investigating is through using a JLink script to control the FLexSPI peripheral directly. However, I'm having some trouble. I have a command sequence for reading out the Status Register-2 of the W25Q128JVSIM, but it only works if the MCU has first booted into our application (which it fails to do unless the QE bit is already set). If the flash is empty and the BootROM doesn't have anything to boot the JLink script doesn't work, so I'm wondering if there's anything additional setup that's required to configure the FlexSPI peripheral? Here's the script for reference: ExitOnError 1 Device MIMXRT1061xxx5B SelectInterface SWD Speed 4000 Connect halt // Enable clock w4 0x400FC078, 0xFFFFFFFF // Reset module w4 0x402A8000, 0x00000002 sleep 20 w4 0x402A8000, 0x00000000 sleep 20 // Clear errors w4 0x402A8014, 0xFFFFFFFF w4 0x402A80B4, 0xFFFFFFFF sleep 20 // 2) Update LUT to include Read Status Register 2 and Write Status Register 2 commands w4 0x402A8018, 0x5AF05AF0 // Write magic value (i.MX RT1060 reference manual rev3, p.1612) sleep 20 w4 0x402A801C, 0x2 // Unlock LUT (i.MX RT1060 reference manual rev3, p.1612) sleep 20 // LUT entry structure (i.MX RT1060 reference manual rev3, p.1709): // [31:26] = opcode1 // [25:24] = num_pads1 // [23:16] = operand1 // [15:10] = opcode0 // [ 9: 8] = num_pads0 // [ 7: 0] = operand0 // #include // // #define OPERAND_0(x) (x << 0) // #define NUMPADS_0(x) (x << 8) // #define OPCODE_0(x) (x << 10) // #define OPERAND_1(x) (x << 16) // #define NUMPADS_1(x) (x << 24) // #define OPCODE_1(x) (x << 26) // // #define kFLEXSPI_Command_STOP 0x0 // #define kFLEXSPI_Command_SDR 0x1 // #define kFLEXSPI_Command_RADDR_SDR 0x2 // #define kFLEXSPI_Command_WRITE_SDR 0x8 // #define kFLEXSPI_Command_READ_SDR 0x9 // #define kFLEXSPI_1PAD 0x0 // // #define FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1) (OPERAND_0(op0) | NUMPADS_0(pad0) | OPCODE_0(cmd0) | OPERAND_1(op1) | NUMPADS_1(pad1) | OPCODE_1(cmd1)) // // int main() // { // printf("WriteEnable: 0x%08X\n", FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x06, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0)); // printf("ReadStatusRegister2: 0x%08X\n", FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x35, kFLEXSPI_Command_READ_SDR, kFLEXSPI_1PAD, 0x04)); // printf("WriteStatusRegister2: 0x%08X\n", FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x31, kFLEXSPI_Command_WRITE_SDR, kFLEXSPI_1PAD, 0x04)); // // return 0; // } // Each command sequence in the LUT is 4 entires with each entry being 4 bytes (one word) w4 0x402A82E0, 0x24040435 // LUT[14 * 4] = Read Status Register-2 command sequence sleep 20 w4 0x402A8018, 0x5AF05AF0 // Write magic value (i.MX RT1060 reference manual rev3, p.1612) sleep 20 w4 0x402A801C, 0x1 // Lock LUT (i.MX RT1060 reference manual rev3, p.1612) sleep 20 // Read Status Register-2 w4 0x402A8080, 0x80000000 // Clear sequence pointer for port A w4 0x402A8014, 0x1F // Clear pending status w4 0x402A80A0, 0x0 // Set base address w4 0x402A80B8, 0x1 // Reset RX FIFO w4 0x402A80A4, 0xE0001 // SEQID=14, SEQNUM=1, 1 byte w4 0x402A80B0, 0x00000001 // Trigger IP command sleep 50 Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot Hello @dafela, You can use the FlexSPI NOR APIs to enable the QE bit, using the configuration mentioned in my previous message. For additional details on the different methods available to enable the QE bit, please refer to item 19 in this post. You can also find more information about the FlexSPI ROM API in Section 9.13.2 of the RM. On the other hand, if you need guidance on using J-Link, this post provides a general overview along with several useful considerations that may help you. BR Habib Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot Thanks, I'll take a look
View full article
MMA8693 加速度计的参考寄存器设置 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我能否使用 MMA8693 找到新项目的参考寄存器设置? 现在我只想让它感知到明显的动作。(例如:停止 → 移动) 我想可能是在图形用户界面上找到的。 加速度传感器 Re: Reference register setting for MMA8693 accelerometer <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,HJ、 对不起,我昨天不在办公室,耽误了您的回复。 无论选择的动态范围如何,运动和瞬态检测功能的阈值分辨率都是 0.0625g/LSB,而且无法提高。您说得没错,瞬态检测功能只适用于 MMA8652FC,而且除非 HPF_BYP 位被设置,否则它分析的是高通滤波数据。 此致, 托马斯 Re: Reference register setting for MMA8693 accelerometer <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,托马斯、 我删除了之前的问题,因为我找到了问题所在。 门槛有问题。 我还有一个问题。 是否有可能使 MMA8653 不受重力等直流因素的影响而变得更加灵敏? 我想,如果使用 MMA8652 及其 HPF,可能会很容易。 但我的客户想用 MMA8653 找到路。 请给我一点提示。 谢谢! Re: Reference register setting for MMA8693 accelerometer <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 谢谢! Re: Reference register setting for MMA8693 accelerometer <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,HJ、 能否请您说明所用加速度计的确切零件编号?如果是 MMA8653FC,则可以使用嵌入式移动侦测功能。有关该功能的更多信息,包括寄存器设置示例,请参阅AN4070。 希望对您有所帮助。 此致, 托马斯 PS: 如果我的回答有助于解决您的问题,请标记为"正确" 或 "有帮助"。谢谢。
View full article
CIFAR10 TFLM Quick Build Guide catalogs I. Overview II. Environment Preparation 2.1 Virtual environment 2.2 Using Google Colab III. Core Steps 3.1 CIFAR10 dataset 3.2 Model creation 3.3 Model Training 3.4 Model Transformation 3.5 Inference Validation 3.6 Benchmark Performance 3.7 Full Implementation 3.7 Simplified version (Colab) IV. TFLite Micro Deployment V. Quick Verification Application Examples VII. Conclusion Reference Spoiler (Highlight to read) more details, please see the attachment. more details, please see the attachment. I. Overview CIFAR-10 : Alex Krizhevsky, University of Toronto The CIFAR-10 public dataset, and one of the most classic and commonly used entry-level benchmark datasets in computer vision, contains 60,000 32x32 color images (50,000 training, 10,000 testing) in 10 categories, such as airplanes, cars, birds, cats, and more. tflm_cifar10 : Demonstrates how to run a CIFAR-10 image classification model in real-time on a microcontroller from NXP using the TensorFlow Lite Micro framework. That is, a pre-trained convolutional neural network model for the CIFAR-10 dataset is deployed to the MCU, giving it the ability to recognize 10 classes of common objects (airplanes, cars, birds, cats, etc.). Model: a lightweight CNN model with 3 convolutional layers, ReLU activation layer, pooling layer and a fully connected layer. Input: 32x32 pixel color image. Output: probability that an image belongs to one of the 10 categories in CIFAR-10. This document: provides the complete process of building for the CIFAR10 dataset, from the dataset, model training transformation, deployment of inference of the rapid implementation of the program, can be used as an example of the tflm_cifar10 (inference-based) front complement, this paper does not involve the deployment and optimization of the end-side. ... """ CIFAR10 快速训练、测试、部署与推理完整流程 """ import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 减少TensorFlow日志 import tensorflow as tf import numpy as np import time import matplotlib.pyplot as plt print(f"TensorFlow版本: {tf.__version__}") print(f"NumPy版本: {np.__version__}") class CIFAR10QuickPipeline: def __init__(self): """初始化管道""" self.model = None self.tflite_model = None def load_data(self, sample_size=1000): """加载简化数据集""" print("\n1. 加载CIFAR10数据集...") (x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data() # 预处理 x_train = x_train.astype('float32') / 255.0 x_test = x_test.astype('float32') / 255.0 # 使用少量数据(快速训练) x_train_small = x_train[:sample_size] y_train_small = y_train[:sample_size] x_test_small = x_test[:200] y_test_small = y_test[:200] # 转换为独热编码 y_train_onehot = tf.keras.utils.to_categorical(y_train_small, 10) y_test_onehot = tf.keras.utils.to_categorical(y_test_small, 10) print(f"训练数据: {x_train_small.shape}") print(f"测试数据: {x_test_small.shape}") return (x_train_small, y_train_onehot), (x_test_small, y_test_onehot) def create_simple_model(self): """创建简化CNN模型""" print("\n2. 创建简单CNN模型...") model = tf.keras.Sequential([ # 输入层 tf.keras.layers.Input(shape=(32, 32, 3)), # 卷积层1 tf.keras.layers.Conv2D(8, (3, 3), padding='same', activation='relu'), tf.keras.layers.MaxPooling2D((2, 2)), # 卷积层2 tf.keras.layers.Conv2D(16, (3, 3), padding='same', activation='relu'), tf.keras.layers.MaxPooling2D((2, 2)), # 全连接层 tf.keras.layers.Flatten(), tf.keras.layers.Dense(32, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10, activation='softmax') ]) model.compile( optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'] ) model.summary() self.model = model return model def train_model(self, x_train, y_train, x_test, y_test, epochs=10): """训练模型""" print("\n3. 训练模型...") # 回调函数:早停 callbacks = [ tf.keras.callbacks.EarlyStopping( monitor='val_loss', patience=3, restore_best_weights=True ) ] history = self.model.fit( x_train, y_train, epochs=epochs, batch_size=32, validation_data=(x_test, y_test), callbacks=callbacks, verbose=1 ) # 评估模型 test_loss, test_acc = self.model.evaluate(x_test, y_test, verbose=0) print(f"\n测试准确率: {test_acc:.4f}") return history def convert_to_tflite(self): """转换为TFLite格式""" print("\n4. 转换为TFLite格式...") # 转换为TFLite converter = tf.lite.TFLiteConverter.from_keras_model(self.model) # 优化配置 converter.optimizations = [tf.lite.Optimize.DEFAULT] converter.target_spec.supported_types = [tf.float32] # 转换 tflite_model = converter.convert() # 保存模型 with open('cifar10_model.tflite', 'wb') as f: f.write(tflite_model) # 保存为字节数组(用于嵌入式部署) self.save_as_c_array(tflite_model) self.tflite_model = tflite_model model_size = len(tflite_model) / 1024 print(f"模型大小: {model_size:.1f} KB") return tflite_model def save_as_c_array(self, tflite_model): """保存为C数组格式""" c_array = '// 自动生成的CIFAR10模型数组\n' c_array += '#include \n\n' c_array += 'const unsigned char cifar10_model_tflite[] = {\n' # 每行显示12个字节 for i in range(0, len(tflite_model), 12): line_bytes = tflite_model[i:i+12] c_array += ' ' + ', '.join(f'0x{b:02x}' for b in line_bytes) + ',\n' c_array += '};\n\n' c_array += f'const unsigned int cifar10_model_tflite_len = {len(tflite_model)};\n' with open('cifar10_model_array.h', 'w') as f: f.write(c_array) print("C数组已保存: cifar10_model_array.h") def test_tflite_inference(self, x_test, y_test, num_tests=10): """测试TFLite推理""" print(f"\n5. 测试TFLite推理 ({num_tests}个样本)...") if self.tflite_model is None: with open('cifar10_model.tflite', 'rb') as f: self.tflite_model = f.read() # 加载TFLite模型 interpreter = tf.lite.Interpreter(model_content=self.tflite_model) interpreter.allocate_tensors() input_details = interpreter.get_input_details() output_details = interpreter.get_output_details() # 类别名称 class_names = ['飞机', '汽车', '鸟', '猫', '鹿', '狗', '青蛙', '马', '船', '卡车'] correct = 0 times = [] for i in range(min(num_tests, len(x_test))): # 准备输入 input_data = x_test[i:i+1] # 推理 start_time = time.perf_counter() interpreter.set_tensor(input_details[0]['index'], input_data) interpreter.invoke() inference_time = time.perf_counter() - start_time times.append(inference_time) # 获取输出 output = interpreter.get_tensor(output_details[0]['index']) predicted_class = np.argmax(output[0]) actual_class = np.argmax(y_test[i]) # 检查是否正确 if predicted_class == actual_class: correct += 1 print(f"样本 {i+1}: 预测={class_names[predicted_class]:<5} " f"实际={class_names[actual_class]:<5} " f"时间={inference_time*1000:.1f}ms " f"{'✓' if predicted_class == actual_class else '✗'}") accuracy = correct / num_tests avg_time = np.mean(times) * 1000 print(f"\n推理统计:") print(f" 准确率: {accuracy:.1%} ({correct}/{num_tests})") print(f" 平均推理时间: {avg_time:.1f}ms") print(f" 推理速度: {1000/avg_time:.0f} FPS") return accuracy, avg_time def benchmark_performance(self, x_test): """性能基准测试""" print("\n6. 性能基准测试...") interpreter = tf.lite.Interpreter(model_content=self.tflite_model) interpreter.allocate_tensors() input_details = interpreter.get_input_details() # 预热 test_input = x_test[0:1] for _ in range(10): interpreter.set_tensor(input_details[0]['index'], test_input) interpreter.invoke() # 基准测试 num_runs = 100 start_time = time.perf_counter() for _ in range(num_runs): interpreter.invoke() total_time = time.perf_counter() - start_time avg_time = total_time / num_runs * 1000 print(f"基准测试结果:") print(f" 总推理次数: {num_runs}") print(f" 总时间: {total_time*1000:.1f}ms") print(f" 平均推理时间: {avg_time:.1f}ms") print(f" 推理速度: {1000/avg_time:.0f} FPS") return avg_time def save_model_summary(self): """保存模型摘要""" summary = [] self.model.summary(print_fn=lambda x: summary.append(x)) with open('model_summary.txt', 'w') as f: f.write('\n'.join(summary)) f.write(f"\n\n模型信息:") f.write(f"\n参数数量: {self.model.count_params():,}") f.write(f"\n保存时间: {time.ctime()}") print("模型摘要已保存: model_summary.txt") def main(): """主函数""" print("=" * 60) print("CIFAR10 快速训练、测试、部署管道") print("=" * 60) # 创建管道 pipeline = CIFAR10QuickPipeline() # 1. 加载数据 (x_train, y_train), (x_test, y_test) = pipeline.load_data(sample_size=2000) # 2. 创建模型 pipeline.create_simple_model() # 3. 训练模型 history = pipeline.train_model(x_train, y_train, x_test, y_test, epochs=15) # 4. 保存模型摘要 pipeline.save_model_summary() # 5. 转换为TFLite pipeline.convert_to_tflite() # 6. 测试推理 pipeline.test_tflite_inference(x_test, y_test, num_tests=20) # 7. 性能测试 pipeline.benchmark_performance(x_test) print("\n" + "=" * 60) print("流程完成!生成的文件:") print(" 1. cifar10_model.tflite - TFLite模型") print(" 2. cifar10_model_array.h - C数组格式") print(" 3. model_summary.txt - 模型摘要") print("=" * 60) if __name__ == "__main__": main() ... VII. Conclusion The purpose of this paper is to take a common image classification scenario (CIFAR10) as an example, so that readers can quickly understand the complete process from data building, model creation, training, inference and validation, which can be used as an example of the tflm_cifar10 (end-side inference-based) front complement, this paper does not involve the end-side deployment and optimization.
View full article
RT1170 以太网中的自由缓冲区超出范围问题 您好, 我正在尝试从自定义板上的自定义项目中执行基本的以太网测试。作为该项目(该项目集成了不同的模块,如SD卡、CAN、GPIO、ADC、以太网和EEPROM)的一部分,基本的以太网发送和接收有待验证。但我在 ping 发送前遇到"freed buffer out of range 错误" 。我已经完成了与以太网有关的所有基本初始化和配置。我看到出现错误的原因是函数"ethernetif_rx_free" (enet_ethernetif_kinetis.c) 中的 LWIP_ASSERT("Freed buffer out of range", ((idx>= 0)&& (idx< ENET_RXBUFF_NUM))); 其中的 idx 值为负数。这一完整的功能可在 EVK 套件上使用。 还能缺少什么?请提出建议。 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 大家好 这个问题也发生在我的 RT1024 客户板上,当我在某个地方放了一个断点然后它就停止了,然后恢复正常运行更有可能导致这个错误。 此致敬礼! Ping Re: Freed Buffer out of Range Issue in Ethernet for RT1170 如果示例项目在您的自定义板中运行良好,则问题似乎出在软件方面。 您使用的不是 FreeRTOS 对吗? 似乎有什么东西干扰了示例的行为,可能是缺少某些配置,或者只是示例流程受到应用程序其他部分的影响。 我建议你尝试使用最新的软件开发工具包版本,即2.15.000。如果您的问题在此版本中仍然出现,那么恐怕您的应用程序流程出现了问题。 此致, 丹尼尔 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 您好, 是的,在自定义板中实现合并的源代码时会出现问题。但是,没有与其他接口合并的 Ethernet_PING 的单个来源在自定义板中运行良好。当以太网的单个源与其余接口合并时,就会出现问题。 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 如果我没有理解错的话,当您运行 SDK 示例时,它是可以工作的。但当您添加自定义应用程序时,问题就出现了。你能确认吗? 此致, 丹尼尔 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 您好, 实际上,以太网的各个源代码在自定义板中运行良好。当我尝试集成代码时,以太网无法正常工作。我观察到EIR 寄存器的第 25 (RXF)、26 (TXB) 和 27 (TXF) 位被设置为 0,RDAR 寄存器的第 24 位被更新为 0,但在以太网的工作代码中,这些寄存器被设置为 "1"。 我怀疑这些寄存器更新是由中断处理的,但我无法在自定义项目代码库中找到负责这些更新的特定处理程序。请帮帮我。 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 请仔细检查是否有任何外围更改(例如:......)。为了让 EVK 示例在您的定制硬件中运行,您的项目中需要哪些外围实例? 如果您已经验证了这一点,看来问题出在硬件方面。 您是否已经用 HDG 验证了您的设计? 此致, 丹尼尔 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 您好, 我使用的是 SDK 11.6.1 版。我正在尝试测试 lwip_ping_bm_cm7 示例。在 EVK 中运行正常。 但是,当尝试将所有源代码与以太网连接时,它在自定义板上不起作用。如果我们面临"Freed Buffer out of range" ,可能会出现什么问题?请帮我解决这个问题。 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 您好, 您使用的是哪个版本的 SDK? 您用来测试的 SDK 示例是什么? 如果我理解正确,应用程序在 EVK 中运行正常,对吗? 此致, 丹尼尔
View full article
PCIe: i.MX 95: 複数の MSI IRQ ベクトルを割り当てる こんにちは、 PCIe2 インスタンス経由でコネクテッドされた i.MX95 ベースのシステムで ATH12K Wi-Fi モジュールを使用しています。 linux-imx lf‑6.12.y ベースのカーネルではこのセットアップは失敗しますが、lf‑6.6.y ベースのカーネルでは期待どおりに動作します。 カーネル ドライバは 16 個の MSI 割り込みを正常に要求し、受信します。しかし、その後、Wi-Fi モジュールの起動に失敗します。 [ 5.888139] ath12k_pci 0001:01:00.0:iommuグループ5に追加 [ 5.888506] ath12k_pci 0001:01:00.0:BAR 0 [mem 0xa10000000-0xa101fffff 64bit]: 割り当て済み [ 5.888553] ath12k_pci 0001:01:00.0:有効化デバイス (0000 -> 0002) [ 5.889315] ath12k_pci 0001:01:00.0:MSIベクター: 16 [ 5.889334] ath12k_pci 0001:01:00.0:ハードウェア名: wcn7850 hw2.0 [ 6.475718] ath12k_pci 0001:01:00.0:チップID 0x2 チップファミリー 0x4 ボードID 0xff soc_id 0x40170200 [ 6.475743] ath12k_pci 0001:01:00.0:fw_version 0x110cffff fw_build_timestamp 2025-06-25 09:26 fw_build_id QC_IMAGE_VERSION_STRING=WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3 [ 7.647106] ath12k_pci 0001:01:00.0:制御応答完了、ポーリングを受信できませんでした。 [ 8.675241] ath12k_pci 0001:01:00.0:サービス接続タイムアウト [ 8.681002] ath12k_pci 0001:01:00.0:HTTへの接続に失敗しました: -110 [ 8.692180] ath12k_pci 0001:01:00.0:コアの起動に失敗しました: -110 カーネルメーリングリスト[1]では別のPCIeデバイスに関する関連した議論がありましたが、まだ私たちのシステムで動作する構成には至っていません。 どうすれば最善の進め方でしょうか? 再開まで今しばらくお待ちください。 最大 [1] https://lore.kernel.org/all/1819305.VLH7GnMWUR@steina-w/ Re: PCIe: i.MX 95: Allocate Multiple MSI IRQ Vectors こんにちは、 i,MX95 はまだ初期段階であり、一部の構成はデザインされていません。しかし、PCIe2経由でATH12Kを搭載したi.MX95は lf-6.12.y ですが、 lf-6.6.y で作業中ですこれは、新しいカーネルの PCIe または Wi-Fi スタックにおける回帰またはドライバー相互作用の変更を示唆しており、PCIe パワーマネージメント (ASPM)、MSI マッピング、または ATH12K の特定の PCIe エンドポイントの癖に関係している可能性があります。多くの場合、カーネル パッチを適用するか、新しいカーネルのブート引数で ASPM を無効にすることで解決できます。dmesg で PCIe エラーを確認し、デバイスツリーを比較し、NXP/Linux カーネル メーリング リストで関連するコミットを探します。  考えられる原因とトラブルシューティングの手順を次に示します。 1. カーネルログを確認する ( dmesg ) PCIe エラーを探す: 障害が発生した lf-6.12.y カーネルの dmesg で、「PCI」、「MSI」、「ATH12K」、「Error」、「Firmware」、または「Timeout」メッセージを検索します。 ファームウェアのロード: ath12k ファームウェアが正しくロードされているかどうか、および初期化中にエラーが発生していないかどうかを確認します。  2. PCIe電源管理(ASPM) 一般的な問題:新しいカーネルでは、多くの場合、Active State パワーマネージメント (ASPM) がデフォルトで有効になっています。これにより、組み込みシステム上の ATH12K などの PCIe デバイス、特に古いファームウェア/ハードウェアで問題が発生する可能性があります。 ASPM を無効にしてみてください:カーネル ブート引数 (U-Boot または GRUB など) に pcie_aspm=off を追加して、再度テストします。  3. Devicetree/DTBの違い DTB の比較:両方のカーネル ( .dtb ファイル) で使用されるデバイス ツリー BLOB (DTB) を生成して比較します。特に割り込み、電源ドメイン、または互換性プロパティに関連する、 pci2 の PCIe ノードの変更を探します。  4. カーネルドライバー/ファームウェアの回帰 特定のコミット: ATH12K ドライバ ( ath12k )、 mac80211 、または lf-6.12.y のコア PCIe/Arm コードによって、セットアップを壊す変更が導入された可能性があります。 メーリング リストを検索: ath12k 、 i.MX95 、およびそれ以降のカーネル (6.12+) に関するパッチやディスカッションについては、Linux カーネル メーリング リスト (LKML) および NXP のリストを確認してください。  5. MSIの取り扱い 割り込み再マッピング:割り込みを受信すると、その処理方法 (MSI-X と MSI、割り込み再マッピング) が微妙に変わる場合があります。 proc/interrupts で割り込みをチェックします。カーネル間で割り込みの分布またはカウントが異なるかどうかを確認します。  6. ファームウェアブロブ ファームウェア バージョン:新しいカーネルのドライバと互換性のある、ATH12K 用の正しいファームウェアを使用していることを確認します。新しいドライバには新しいファームウェアが必要になる場合があります。  要約すると、 dmesg から始めてASPMを無効にしてみてください。これらは、組み込みプラットフォームの新しいカーネルでPCIe Wi-Fiの障害が発生する最も一般的な原因です。   よろしくお願いします。 Re: PCIe: i.MX 95: Allocate Multiple MSI IRQ Vectors 提案は問題をデバッグするための良い指針でしたが、解決策を見つけることができませんでした。つまり、すべての MSI IRQ ベクトルがドライバ内の IRQ ルーチンをトリガーしたわけではありません。 最終的には、ath12k ドライバーを変更して、1 つの MSI IRQ のみを要求するようにすることで、この問題を回避しました。 現在の Linux マスターにはこの問題は発生しないことに注意してください。 よろしくお願いします。 最大
View full article
如何安装"S32ZE_R52_NXP_RTOS_4_7_181_RTM_1_1_0_D2412_DesignStudio_updatesite.zip" 您好, 我从 GreenVIP 安装了"S32ZE_R52_NXP_RTOS_4_7_181_RTM_1_1_0_D2412_DesignStudio_updatesite" ,但在下面的截图中找不到它。 如果我再次安装,就会出现错误提示。 请帮帮我。 谢谢! Re: How to install "S32ZE_R52_NXP_RTOS_4_7_181_RTM_1_1_0_D2412_DesignStudio_updatesite.zip" 你好,Lvyang508 感谢您的回复。 您是否安装了 SW32ZE_RTD_R21-11_2.0.1_D2505_? 在 S32DS IDE 中使用 DesignStudio_updatesite.zip? BR 乔伊 Re: How to install "S32ZE_R52_NXP_RTOS_4_7_181_RTM_1_1_0_D2412_DesignStudio_updatesite.zip" S32DS IDE:S32DS for Platform 3.6.5 我下载了相应的软件包并根据 UG_S32ZE_GreenVIP.pdf 进行了安装 Re: How to install "S32ZE_R52_NXP_RTOS_4_7_181_RTM_1_1_0_D2412_DesignStudio_updatesite.zip" 你好,Lvyang508 请检查您的 RTD 版本,RTD 和 RTOS 软件包之间似乎存在冲突。 另外,您使用的是什么版本的 S32DS 集成开发环境? BR 乔伊 Re: How to install "S32ZE_R52_NXP_RTOS_4_7_181_RTM_1_1_0_D2412_DesignStudio_updatesite.zip&&&& 嗨,乔伊、 我已经安装了 SW32ZE_RTD_R21-11_2.0.1_D2505_。 S32DS 集成开发环境中的 DesignStudio_updatesite.zip 文件。 谢谢您! Re: How to install "S32ZE_R52_NXP_RTOS_4_7_181_RTM_1_1_0_D2412_DesignStudio_updatesite.zip&&&& 你好,Lvyang508 感谢您的回复。 这个问题可能是由版本冲突引起的。请尝试使用 S32DS IDE 3.6.1 参考 UG_S32ZE_GreenVIP.pdf。 BR 乔伊 Re: How to install "S32ZE_R52_NXP_RTOS_4_7_181_RTM_1_1_0_D2412_DesignStudio_updatesite.zip&&&& 嗨,乔伊、    感谢您的回复。 我已经安装了 S32IDE 3.6.1、但问题依然存在。 BR、
View full article
iMX93 FRDM 上的 DMS 嗨,团队、 是否有人在 i.MX93 FRDM 平台上实施或评估过驾驶员监控系统 (DMS) 演示? 我正在寻找与以下功能相关的详细信息或引用: 人脸侦测 人脸地标检测 虹膜/眼睛地标检测 驾驶员行为检测,如吸烟和使用手机 如果有任何演示、参考设计、SDK 示例或合作伙伴解决方案,请分享详细信息或相关文档。 提前感谢您的支持。 致以最诚挚的问候, Ajnas FRDM 培训 Re: DMS on iMX93 FRDM 你好@ajnas-c、 感谢您联系恩智浦支持中心! 您可以通过下面的链接查看该演示的详细信息和源代码: https://github.com/nxp-imx-support/nxp-demo-experience-demos-list/tree/lf-6.12.3_1.0.0/scripts/machine_learning/dms 此致 查维拉
View full article
S32DS3.5 デバッグ s32g274 PEMicro を使用 S32g274 M7 コア用の S32DS3.5 デバッグ ツールを使用して、CAN などの外部ペリフェラルのレジスタの値を表示するにはどうすればよいですか? Re: S32DS3.5 debug s32g274 use PEMicro こんにちは、 @sdx111 ご投稿ありがとうございます。 次の方法を試してみることをお勧めします。 私の側でテストしたところ、問題なく動作しました お役に立てれば幸いです。 BR チェイン Re: S32DS3.5 debug s32g274 use PEMicro こんにちは、 @sdx111 ご返信ありがとうございます。 これは新しい質問であり、このトピックのタイトルとは直接関係がないため、他のユーザーが検索/参照しやすいように、次回は新しい投稿を作成することをお勧めします。ご理解のほどよろしくお願いいたします。 この問題に関しては、私の意見では、最初の elf (ブートローダーなど) をロードし、第 2 段階にジャンプする前にブレークポイントを挿入し、さらに image2 (アプリケーションなど) のシンボルもロードして、デバッグをさらに続行することができます。 BR チェイン Re: S32DS3.5 debug s32g274 use PEMicro ブートローダの実行後に APP プログラムにジャンプし、APP プログラムにブレークポイントを追加したいと考えています。デバッグの設定方法を知りたいです。 Re: S32DS3.5 debug s32g274 use PEMicro もう一つ問題があります。S32G274 の M コア用のブートローダーと APP プログラムを持っています。S32DS コンパイラを使用して、ブートローダの APP へのジャンプとその後の動作をデバッグおよびテストするにはどうすればよいですか? Re: S32DS3.5 debug s32g274 use PEMicro こんにちは、 @sdx111 ご返信ありがとうございます。 あなたが言及したようなケースでは、たとえば、通常はブートローダを QSPI にフラッシュし、M コア アプリケーションの先頭に無限ループを追加し、QSPI 経由でボードを起動してデバッガ経由でボードを接続し、最後に M コア elf をロードしてさらにデバッグします。このようなCASEをデバッグするには、他にもいくつかの方法があるはずですが、これは単なる例です。 BR チェイン
View full article
iMX93の全コアにZephyrを搭載 こんにちは、 iMX93 のすべてのコアで RTOS を実行したいと考えています。それは可能ですか? Zephyr の Web サイトを見ると、FRDM-IMX93 ボードの M33 コアで Zephyr を実行するプロジェクトがあるようです。また、A55 コアで Zephyr を実行するプロジェクトもあります。 しかし、両方実行することはできますか?両方の A55 プロセッサで別々の Zephyr プロジェクトを実行できますか? チップの初期化はどのように機能しますか。クロックやメモリコントローラの初期化のようなものですか?誰がそんなことをするのでしょうか? 不可能な場合は、MCUXPresso を使用して M33 コア上で RTOS を実行し、チップを初期化することはできますか?両方の A55 コアに Zephyr を使用しますか? すべてのコアで RTOS を実行する方法は何ですか? Re: Zephyr on all cores of a iMX93 こんにちは@simmania 2x A55 で実行される 2 つの Zephyr プロジェクトの場合、これはサポートされません。サポートされているフレームワークは、Linux を実行する A55 --> Jailhouse --> Zephyr を実行するその他の A55 であるため、Jailhouse がハードウェアのアイソレータを管理する必要があります。 不可能な場合は、MCUXPresso を使用して M33 コア上で RTOS を実行し、チップを初期化することはできますか?両方の A55 コアに Zephyr を使用しますか? --> i.MX93は、ブートROMからM33を起動する低消費電力ブートをサポートしています。目的を達成するには、SDKのコードを大幅に書き換える必要があります。根本的な問題は、DDRを誰が初期化するかです。ドキュメントによると、U-Bootを維持するのが最適な選択です。U-BootはM33とA55プロセッサの両方でZephyrを同時にロードできるためです。 https://docs.zephyrproject.org/latest/boards/nxp/imx93_evk/doc/index.html よろしくお願いします、 志明 Re: Zephyr on all cores of a iMX93 NXPの社員によると、銛を使えば可能だという。 NXPのテクニカルサポートは、それは不可能だと言っています。 非常に紛らわしい。 Re: Zephyr on all cores of a iMX93 iMX93のAコアとmコアの両方がZephyrリリースをサポートしています。ZephyrランディングページにアクセスしてMPU Zephyr使用ガイドを入手してください。Aコアとmコアの両方でZephyrを同時に実行したい場合は、NXPのHarpoonリリースを探してください。 https://www.nxp.com/design/design-center/software/embedded-software/zephyr-os-for-edge-connected-devices:ZEPHYR-OS-EDGE Re: Zephyr on all cores of a iMX93 Harpoonのドキュメントで、以下の記述を見つけました。 Harpoonは、Linuxディストリビューション上で並列動作する1つ(または複数)のCortex-Aコア上で動作するRTOS上で、リアルタイム処理能力が要求されるアプリケーションを開発するための環境を提供し、64ビットArmアーキテクチャを活用して高いパフォーマンスを実現します。 つまり、一部のコアではまだLinuxが必要なのです。つまり、iMX93の全コアでZephyrを実行することは不可能のようだ。 Re: Zephyr on all cores of a iMX93 @simmania コアユーザーガイドはこちら UG10199:NXP MPU Cortex-Aコア Zephyrユーザーガイド | NXPセミコンダクターズ Zephyrのウェブページには、すでに93 Aコアとmコアのサポートについて記載されています。 i.MX93 EVK — Zephyrプロジェクトドキュメント 銛ユーザーガイド UG10170:Harpoonユーザーガイド|NXPセミコンダクターズ Re: Zephyr on all cores of a iMX93 ご回答ありがとうございます。 しかし、私たちはまだiMX93を使った開発を行っておらず、私たちにとってはまだ明確な答えが出ていません。 私たちは現在、新しいプロジェクトで使用するハードウェアを選定しているところです。今私たちが知りたいのは、Linuxを必要とせずにZephyrをすべてのコアで実行できるかどうかだけです。 Re: Zephyr on all cores of a iMX93 @simmania 1 つの A コアで Harpoon を実行し、別の A コアで Zephyr を実行し、mcore で Zephyr を実行することもできます。あるいは、A コアでネイティブ Zephyr を実行し、mcore Zephyr を実行する BootROM を使用することもできます。 プログラム flash.bin を UUU を使用して SD/eMMC に書き込む — MCUXpresso SDK ドキュメントを参照してください。 ステップ4でzephyr.binをimx-mkimage/i.MX9のm33_image.binにコピーしてフラッシュbinを作成します 対応するLinux BSPリリースからブートイメージとimx-mkimageソースリポジトリを入手してください。imx-mkimage/i.MX9に配置する必要のあるブートイメージは以下のとおりです。 - u-boot-imx93evk.bin-sd (rename to u-boot.bin) - u-boot-spl.bin-imx93evk-sd (rename to u-boot-spl.bin) - bl31-imx93.bin (rename to bl31.bin) - mx93a0-ahab-container.img - lpddr4_dmem_1d_v202201.bin - lpddr4_dmem_2d_v202201.bin - lpddr4_imem_1d_v202201.bin - lpddr4_imem_2d_v202201.bin Re: Zephyr on all cores of a iMX93 実際、私はついにFRDM iMX93上で、両方のA55コアを使用してSMPでZephyrを動作させることに成功しました。鍵は「```west flash -r spsdk``` でした」でした。 Re: Zephyr on all cores of a iMX93 リアルタイムエッジソフトウェアユーザーガイドの第3.3章「柔軟なリアルタイムシステム」を参照してください。 表30は、i.MX 93プラットフォーム上で実行可能なすべてのAMPシステムを示しています。 また、 hetogeneous-multicore は、これらの可能なすべての AMP システムを実行するためのハローワールドの例を提供します。たとえば、i.MX 93 は構築でき、Realtime Edge も次の事前構築済みバイナリ イメージを提供します。 i.MX93の各Cortex-Aコアで2つのZephyrを実行するための重要な技術的ポイント: 1. リソースの割り当て 第3.3.2.2章の技術的なポイントを参照し、リソースの競合を避けるために、これら2つのZephyrインスタンスには異なるUARTとRAMメモリを使用してください。 heterogeneous-multicoreを使用せずに Zephyr のサンプルを構築することもできますが、リソース割り当ての方法についてはheterogeneous-multicoreを参照することができます。 2. 起動方法 現在、ubootコマンドを使用してこれら2つのZephyrインストールを起動できます。最初のZephyrは「cpu release」コマンドを使用して起動し、次に「go」コマンドを使用して起動します。詳細については、ユーザーガイドを参照してください。 また、Real-time Edgeで提供されるCortex-Aコアの統合ライフマネジメントをサポートするには、TF-A、U-BootなどのReal-time Edgeリポジトリを使用する必要があります。 そして、次回のRealtime Edgeリリース(7月リリース予定)では、「高速起動」という新機能が提供されます。この新機能により、TF-Aはこれら2つのZephyrインスタンスを1秒未満で起動できるようになります。 この件に関して他に何かお手伝いが必要な場合は、遠慮なくお知らせください。ありがとうございます。 Re: Zephyr on all cores of a iMX93 それは素晴らしいですね! 銛を使う?しかし、Harpoonのドキュメントにはこう書かれている。 「システムはLinux上で起動し、Jailhouseハイパーバイザがハードウェアを分割して、LinuxとゲストRTOSを並行して実行します。」 私たちは、LinuxなしでZephyrがすべてのコアで動作することを望んでいます。 Re: Zephyr on all cores of a iMX93 答えはイエスですが、これ以上の詳細情報は提供できません。さらに質問がある場合は、 @Jiafei_Pan までお問い合わせください。 Re: Zephyr on all cores of a iMX93 同時に2つのZephyrアプリケーションを実行することについて話しているのですか、それともSMPを使用して両方のコアをスケジューリングに利用できるようにしているアプリケーションについて話しているのですか? 2番目のケースには非常に興味があるのですが、うまく動作させることができません。 Re: Zephyr on all cores of a iMX93 @Jiafei_Pan さん、Harpoon を導入せずに A コアと mcore 上で 2 つの Zephyr を実行できるようにする方法について何か情報を提供していただけますか。ありがとう!
View full article
FlexCAN3FD fSYS (CHI) vs. fCANCLK (PE) clarification Hello everyone, I'm seeking some clarification regarding the peripheral and the oscillator clock frequencies fed to the canFD module. Is my understanding correct that the peripheral clock is the CAN_CLK_ROOT in CMM that can be muxed and divided to have different frequencies, while the oscillator clock is the static 24MHz clock from the crystal oscillator? If so, does that mean that the duration of 1 time quanta is fixed to 41.67 ns which is what goes into the bit timing calculations? This doesn't seem right to me so I'd appreciate it if anyone can correct my confusion. I see that some of the equations in the RM involve both of these clocks. Thank you, Lam  i.MXRT 106x Re: FlexCAN3FD fSYS (CHI) vs. fCANCLK (PE) clarification Hi again @mayliu1 , so if fSYS is the system clock frequency, would it be AHB_CLK_ROOT, which is 420Mhz in my case? if so, is it involved in the calculation of the time quanta? I don't suppose so but the language, particularly the use of the words oscillator and peripheral, is a little bit confusing to me. I initially did think that the time quanta was directly derived from just the flexCAN clock. Best Regards, Lam Re: FlexCAN3FD fSYS (CHI) vs. fCANCLK (PE) clarification Hi @LamK , Thank you so much for your interest in our products and for using our community. In IMXRT1060RM, it describe as below shown. fCANCLK is the Protocol Engine (PE) Clock , it can be configured via CAN_CLK_ROOT. fSYS is the frequency of operation of the system clock. Also, the duration TQ is not  fixed to 41.67 ns, it  involve both the CAN engine clock and the  PRESDIV parameter.    For more detail information about Clock, I suggest you can check Clocks in  Config Tools . Best Regards MayLiu Re: FlexCAN3FD fSYS (CHI) vs. fCANCLK (PE) clarification Hi @LamK , Thanks for your updated information. Regarding your question: so if fSYS is the system clock frequency, would it be AHB_CLK_ROOT, which is 420Mhz in my case? I do not think so. Please check the IMXRT1060RM. Best Regards MayLiu Re: FlexCAN3FD fSYS (CHI) vs. fCANCLK (PE) clarification Ok thank you @mayliu1, I could have found that information about the clocks in the Clock Consumers tab, looks pretty useful. Ultimately I was concerned that the fSYS could be involved in the calculation of time quanta when I saw the equation NumClkBit which made me equate peripheral clocks with time quanta, which wasn't the case and was where my confusion come from. Thank you for your help again. Best Regards, Lam Re: FlexCAN3FD fSYS (CHI) vs. fCANCLK (PE) clarification You are welcome.
View full article
FreeMASTER Plugin Config Failure I was able to successfully conduct the CAN communication connection test in Figure 1, but after clicking OK, the fault as shown in Figure 2 occurred. How can I solve this problem? In addition, I have used mbdt for freemaster development on S32K344, but I have not succeeded in polling mode CAN communication. Is it not supported? If it is supported, could you provide me with a sample, preferably for the S32K3 series Re: FreeMASTER Plugin Config Failure Now I have also implemented the polling mode and tested the connection of the can based freemaster. The effect is the same as the above picture. I will continue to seek help Re: FreeMASTER Plugin Config Failure Hi @zuozuo, Are you using the MATLAB or S32 Design Studio as your primary development environment ? In the later case - did you try the example applications that come with FreeMASTER Driver Update site ? In case you are using MATLAB, a dedicated team is handling the MatLAB Toolbox and I will move your query to MBDT community space. Re: FreeMASTER Plugin Config Failure quickly ran from another computer with an earlier version of the pc side software and it worked fine. so i manually copied the connection string to the Option field and it worked. so the issue is either on the 1.16.0 or the PC admin previlage..  Re: FreeMASTER Plugin Config Failure Hello, one thing to try is to re-register the CAN communication plug-in in your system. Please close the FreeMASTER, and navigate to installation location. Then run the register.bat "As administrator". See more details in one of the earlier posts in this forum. Regards, Michal Re: FreeMASTER Plugin Config Failure Hi, Michal, thanks for the hint but it does not seem to work. by pasting a plain text string i could open the port. the computer that i had an older version of Freemaster 3.2 no longer works after i upgraded it to the latest version. i ran the register.bat as admin but the same error message appears. now two computers give me the same error. Re: FreeMASTER Plugin Config Failure Hello, according to the method shown in your picture, I am using the freemaster3.2 version of the host computer. I have tried on both a Windows 11 and a Windows 10 computer, but neither worked, Re: FreeMASTER Plugin Config Failure I use the mbed toolchain to generate the underlying driver code for freemaster. Currently, both polling mode and interrupt mode can successfully connect with the host computer, and there are no issues with the slave computer. The only problem is that the freemaster host computer cannot save its own configuration options in the freemaster host computer project。 Re: FreeMASTER Plugin Config Failure I use the matlab toolchain to generate the underlying driver code for freemaster. Currently, both polling mode and interrupt mode can successfully connect with the host computer, and there are no issues with the slave computer. The only problem is that the freemaster host computer cannot save its own configuration options in the freemaster host computer project. Re: FreeMASTER Plugin Config Failure Hello the CAN plugin version 1.16.0 (in FreeMASTER 3.2.6.3) indeed adds the CAN-FD support for ZLG and some other vendors. It also adds support for the new ZLG ZCAN library. After  the registrer.bat has been run, we can be sure the plug-in is correctly registered in the system.   I cannot replicate the issues you are facing. The connection string for the ZCAN devices appears normally in my  case:  drv=ZCAN;port=1;bitrate=500000;cmdid=0x7aa;rspid=0x7aa;tmo=500 Please try the following: Paste the ZCAN string to the Options dialog manually and then open the plug-in configuration. Then close it without making any changes. Will it still show the error? Just as an experiment, try to enable the CAN-FD mode for the USBCANFD_200U device and press OK. Try to select another CAN driver, for example IXXAT, even if you do not have any physical device, then press OK. Please let me know if it shows the error in all 3 cases. Thanks, Michal Re: FreeMASTER Plugin Config Failure Hello zuozuo, I am facing the same issue. can you please share any example model with me or just tell me how I can resolve the issue. I also noticed one thing, when there is only one CAN instance with single TX and Rx CAN object ID its working, but when we add more can instances each having tx CAN objectId and rx CAN objectId its not working, if you have solution please share with me. Thanks. Re: FreeMASTER Plugin Config Failure Thank you for your reply. I tested the above three steps, and each of them would report the error: "The plugin configuration dialog failed. Try to specify the connectstring manually". Additionally, I have run register.bat in administrator mode. Re: FreeMASTER Plugin Config Failure Hello! 1. I manually added the information you provided to the command bar, then clicked "configure", and after entering, I clicked "ok", everything was normal. 2. Since I manually added the command information you provided correctly, everything has been normal. Whether I check or uncheck "canfd" is normal, even if I clear the command line, reconfigure it, and then click "ok", everything is still normal. 3. I use Kvaser, and everything is normal Re: FreeMASTER Plugin Config Failure I am using PEAK CAN and still face this issue. Can you share simulink model. My S32DS studio example is working in Design Studio. Re: FreeMASTER Plugin Config Failure I use kvaser for CAN connection and testing, and everything works successfully; however, when I use the zlg driver, the aforementioned issues occur. Re: FreeMASTER Plugin Config Failure Hello, we are trying to analyze and resolve the issue, but unfortunately we were not able to replicate it on any of our test platforms. Please use the manually-edited connect string until this is fixed. One question: when ZLG/ZCAN driver is selected, does the error appear when you press  the CANCEL button in the plug-in dialog? Thanks, Michal Re: FreeMASTER Plugin Config Failure I am using the PEAK CAN Re: FreeMASTER Plugin Config Failure Hello,  we have identified the problem in FreeMASTER CAN plug-in and we are working on a fix. It appeared the plug-in has internally depended on Kvaser CAN driver and was not working correctly when Kvaser software was missing. It appears the Kvaser files are required even if using ZLG or any other CAN interface. Before the fix is released in the upcoming FreeMASTER 3.2.7, a quick workaround is to install the latest Kvaser driver pack to your Windows system. You can download the Kvaser drivers here. Thanks to all of you who had reported the issue and described the symptoms. Please reply to this message if installing the latest Kvaser drivers does not help to resolve the issue. Thanks, Michal Re: FreeMASTER Plugin Config Failure Yes,It's useful. Re: FreeMASTER Plugin Config Failure Hello, theoretically yes, you may need to install Kvaser drivers even in case you use a PEAK device. The dependency on some Kvaser files causes the Plug-in configuration dialog to fail when creating a connection string regardless of the device selected. It may happen by some lucky coincidence that the issue will not appear with PEAK or other devices, but if it does, installing the Kvaser driver shall always help. This issue will be fixed in future FreeMASTER version. Regards, Michal Re: FreeMASTER Plugin Config Failure Even for PEAK-CAN we need to do this? Re: FreeMASTER Plugin Config Failure Note that the version 3.2.7 has been released. The issue discussed in this thread shall now be fixed. Regards, Michal
View full article
如何:使用 NXP Vision SDK 示例项目中的现有代码在 S32DS 中创建新的 Makefile 项目 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本文档详细介绍了如何在 S32 Design Studio 中创建新项目,以及如何使用 NXP Vision SDK 示例项目中提供的现有代码和 makefile 进行构建。如果您使用来自任何其他来源的代码创建新的 makefile 项目,则过程可能会有所不同。 在从现有代码创建新的 makefile 项目之前,我们需要向环境变量 PATH 添加一些路径和几个新的环境变量。添加这些路径和变量主要有 3 种方法。哪种方法取决于您的需要。 方法 1 路径和变量可以单独添加到每个项目。如果您只希望这些更改影响少数项目,这将很有用。或者如果您的项目需要不同的路径和变量。注意:这些更改将在项目创建后进行(如下面的步骤 15 - 17 所示) 方法 2 路径和变量可以添加到 S32DS 内的整个工作区。这些在 S32DS 之外是不可见的,因此不会影响整个 Windows 环境。如果您有大量对路径和变量有共同要求的项目,并且不希望它们在 S32DS 之外的任何工具中可见,这将非常有用。 方法 3 路径和变量可以全局添加到 Windows 环境中,并将影响所有已安装的工具。不推荐使用这种方法。 选择方法后,将以下路径添加到 PATH 变量(使用 S32DS 的默认安装设置显示的路径): C:\NXP\S32DS.3.1\S32DS\build_tools\gcc-6.3-arm32-eabi\bin C:\NXP\S32DS.3.1\S32DS\build_tools\gcc-6.3-arm64-eabi\bin C:\NXP\S32DS.3.1\S32DS\build_tools\gcc-6.3-arm64-linux\bin C:\NXP\S32DS.3.1\S32DS\build_tools\msys32\mingw32\bin 或者在 Eclipse 中(可以使用变量,如果 S32DS 安装布局在未来版本中发生变化,则无需更新这些变量) ${S32DS_ARM32_TOOLCHAIN_DIR} ${S32DS_ARM64_LINUX_TOOLCHAIN_DIR} ${S32DS_ARM64_TOOLCHAIN_DIR} ${S32DS_GCC_TOOCHAIN_DIR} 还需要添加以下 Windows 系统变量: 变量名称:S32V234_SDK_ROOT 变量值:C:\NXP\S32DS_Vision_v2018.R1\S32DS\s32v234_sdk 变量名称:APU_TOOLS 变量值:C:\NXP\S32DS_Vision_v2018.R1\S32DS\APUC 以下步骤演示了基于上述方法 1 的过程。 1)启动S32DS for Vision 2)点击“新建” 3)选择“使用现有代码的 Makefile 项目” 4)选择下一步 5)输入项目名称。 6)对于“现有代码位置”, a)选择“浏览… ”,然后选择目录C:\NXP\S32DS.3.1\S32DS\software\VSDK_S32V2_RTM_1_3_0\s32v234_sdk\demos\isp\isp_sonyimx224_rgb_yuv_gs8    b) Click OK 7)对于“索引器设置工具链”,选择与您所需的构建配置相匹配的选项。对于我们这里的示例,我们将选择“ ARM Linux 64 位目标二进制工具链”。有关工具链选项的更多详细信息,请参阅 Vision 扩展包用户指南。这设置了一些工具链路径,但稍后我们将根据 VSDK 示例的特定需求设置更多路径。 8)点击完成 9) 在项目资源管理器中右键单击该项目。选择“属性” 10) 转到“C/C++ 构建”部分 11)转到“行为”选项卡,在“构建”旁边的字段中输入: ISP 示例:' allsub ' APEX 示例:' APU_COMP=nxp allsub ' 12)转到“构建器设置”选项卡,在“构建位置”部分更改“构建目录”的路径。点击“工作区... ”按钮 13) 在文件夹选择菜单中,选择子文件夹“ build-v234ce-gnu-linux-d ”,然后单击“确定” 14)转到“环境”部分 15)选择环境变量“ PATH ”,然后单击“编辑... ” 16)将路径变量添加到值字段,每个变量用逗号“;”分隔 ${S32DS_ARM32_TOOLCHAIN_DIR} ${S32DS_ARM64_LINUX_TOOLCHAIN_DIR} ${S32DS_ARM64_TOOLCHAIN_DIR} ${S32DS_GCC_TOOCHAIN_DIR} 单击OK。 17) Click 'Add...' 18) 单击“添加... ”,然后输入变量名称“ APU_TOOLS ”和值“ ${S32DS_APU_TOOLCHAIN_DIR} ” 单击OK。 19)单击“确定”关闭“属性”菜单。 20)点击“构建” 21) 构建完成后,将创建二进制文件(ELF)
View full article