Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
在调用 mlockall(MCL_FUTURE) 的进程中使用 iMX8MP GPU 会导致内核 BUG() 一位客户报告了一个与使用 iMX8MP GPU(使用 EGL 绘图)相关的问题。当初始化 GPU 的进程先前调用 mlockall(MCL_FUTURE) 时,一旦 CMA 区域被映射到用户空间,内核就会报告以下 BUG(): Kernel BUG at remap_pfn_range_internal+0x23c/0x2c8 Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP CPU: 0 PID: 3197 Comm: galcore_window_ Tainted: G O 6.6.142-7.7.0-devel #1-Torizon Hardware name: Toradex Verdin iMX8M Plus WB on Verdin Development Board (DT) pc : remap_pfn_range_internal+0x23c/0x2c8 x27: 00000000a2100000 x20: 0068000000000fcb x19: 0000007f90000000 ^^^^^^^^^^^^^^^^^^^^^^ the PTE already present Call trace: remap_pfn_range_internal+0x23c/0x2c8 remap_pfn_range+0x24/0x58 dma_direct_mmap+0xf4/0x150 dma_mmap_attrs+0x18/0x3c _CMAFSLMapUser+0x9c/0x150 [galcore] gckOS_LockPages+0xe4/0x148 [galcore] gckKERNEL_MapVideoMemory+0x90/0x1dc [galcore] gckVIDMEM_NODE_LockCPU+0x1b4/0x250 [galcore] _LockVideoMemory.isra.0+0x1f4/0x28c [galcore] gckKERNEL_Dispatch+0x210/0x1730 [galcore] gckDEVICE_Dispatch+0xcc/0x220 [galcore] drv_ioctl+0x340/0x444 [galcore] __arm64_sys_ioctl+0xac/0xf0 Kernel panic - not syncing: Oops - BUG: Fatal exception mlockall(MCL_FUTURE) 通常用于实时应用程序,而报告此问题的客户正在使用 CODESYS 来驱动其 HMI。 我们利用人工智能辅助分析了该问题,并找到了该问题触发原因的合理解释: galcore 驱动程序中的 CMA 分配器不包含 .mmap() 方法。钩。在 _CMAFSLMapUser() 执行期间,它调用 mmap() 获取 vma,然后使用该 vma 通过 find_vma() 定位 CMA 区域。mmap() 的调用方式导致内核延迟分配 SHM 区域以满足请求。正常情况下,当找到 CMA 区域并重新映射时,此分配会在片刻后被丢弃。 但是,当 MCL_FUTURE 处于活动状态时,内核不能再延迟分配 SHM 区域,因此它会在 mmap() 返回之前填充整个区域。在这种情况下,该地址上有有效的页面,而稍后对 remap_pfn_range() 的调用最终会默默地丢弃内存管理维护信息,这正是 BUG() 所阻止的。 我将附上一个 zip 文件,其中包含一个程序的源代码,该程序可以稳定地重现该问题,而无需运行 CODESYS。AI代理建议使用以下补丁来修复此问题: diff -uNr a/hal/kernel/inc/gc_hal_options.h b/hal/kernel/inc/gc_hal_options.h --- a/hal/kernel/inc/gc_hal_options.h 2026-09-04 13:00:44.596621860 +0000 +++ b/hal/kernel/inc/gc_hal_options.h 2026-09-04 13:01:15.643862002 +0000 @@ -1471,9 +1471,17 @@ * Enable this macro can replace the /dev/zero by anon_inode: * [galcore] in /proc/ /maps. * Without the macro, run 'cat /proc/ /maps' will print "/dev/zero". + * + * It is also what gives the allocators an ->mmap handler, which is + * required so that the reservation made by vm_mmap() is created as a + * device mapping (VM_IO | VM_PFNMAP) rather than as ordinary anonymous + * memory. Without it, a process that has called mlockall(MCL_FUTURE) + * gets the range pre-faulted inside vm_mmap(), and the subsequent + * remap_pfn_range() then hits BUG_ON(!pte_none()) in remap_pte_range(). + * See tmp_mmap() in gc_hal_kernel_allocator.c. */ #ifndef gcdANON_FILE_FOR_ALLOCATOR -# define gcdANON_FILE_FOR_ALLOCATOR 0 +# define gcdANON_FILE_FOR_ALLOCATOR 1 #endif /* diff -uNr a/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c b/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c --- a/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c 2026-09-04 13:00:44.605314869 +0000 +++ b/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c 2026-09-04 13:01:15.644216883 +0000 @@ -400,7 +400,13 @@ gcmkHEADER_ARG("Allocator=%p Mdl=%p Cacheable=%d", Allocator, Mdl, Cacheable); #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 4, 0) +#if gcdANON_FILE_FOR_ALLOCATOR + /* Same as the gfp, dma and reserved_mem allocators: go through the + * allocator's anon file so that its ->mmap handler runs. */ + userLogical = (gctPOINTER)vm_mmap(Allocator->anon_file, +# else userLogical = (gctPOINTER)vm_mmap(gcvNULL, +# endif 0L, Mdl->numPages * PAGE_SIZE, PROT_READ | PROT_WRITE, diff -uNr a/hal/os/linux/kernel/gc_hal_kernel_allocator.c b/hal/os/linux/kernel/gc_hal_kernel_allocator.c --- a/hal/os/linux/kernel/gc_hal_kernel_allocator.c 2026-09-04 13:00:44.603242857 +0000 +++ b/hal/os/linux/kernel/gc_hal_kernel_allocator.c 2026-09-04 13:01:15.644041018 +0000 @@ -104,6 +104,36 @@ static int tmp_mmap(struct file *fp, struct vm_area_struct *vma) { + /* + * Declare the reservation as a device mapping with raw PFNs, before + * mmap() returns it to the caller. remap_pfn_range() sets both flags + * anyway; setting them here only makes them effective from the moment + * the VMA is created, and that is what matters: + * + * - the kernel treats VM_IO | VM_PFNMAP as VM_SPECIAL, documented in + * include/linux/mm.h as "Special vmas that are non-mergable, + * non-mlock()able". mmap_region() therefore clears VM_LOCKED from + * this VMA and leaves mm->locked_vm alone, and __mm_populate() + * skips it outright ("if (vma->vm_flags & (VM_IO | VM_PFNMAP)) + * continue;" in mm/gup.c). + * + * - so a process that has called mlockall(MCL_FUTURE) no longer has + * this range pre-faulted inside vm_mmap(). Every other mapping in + * that process keeps being locked and pre-faulted as before; only + * device memory, which is neither pageable nor swappable and gains + * nothing from being pre-faulted, is left out. + * + * - and the allocator's own remap_pfn_range(), a few microseconds + * later, therefore finds an empty range instead of one the kernel + * has just populated, so it no longer trips + * BUG_ON(!pte_none(ptep_get(pte))) in remap_pte_range(). + */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0) + vm_flags_set(vma, VM_IO | VM_PFNMAP); +#else + vma->vm_flags |= VM_IO | VM_PFNMAP; +#endif + return 0; } 上游驱动程序使用了一种不同的机制来绕过这个问题。其他 galcore 分配器使用相同的模式(调用 vm_mmap 获取 vma),因此很可能容易受到相同的 BUG() 的影响。 请您调查并修复 galcore 驱动程序?这个问题导致实际应用场景无法正常运行,直接影响到我们的客户。 谢谢! 拉斐尔 Re: Using iMX8MP GPU on a process that call mlockall(MCL_FUTURE) causes kernel BUG() 嗨@rbeims 让我先运行一下测试,然后再和GPU团队确认。 此致, 志明 Re: Using iMX8MP GPU on a process that call mlockall(MCL_FUTURE) causes kernel BUG() @Zhiming_Liu ,你好,请问你成功复现了这个bug吗?如果可以,请问预计何时能在BSP中实现该修复?谢谢。 Re: Using iMX8MP GPU on a process that call mlockall(MCL_FUTURE) causes kernel BUG() 您好@Zhiming_Liu ,感谢您提供的清晰报告。完全理解,我们也预料到这种情况会发生。一切都好。 请继续推进这项工作,如有任何进展,请与我们联系。 谢谢你, 阿尔瓦罗。 Re: Using iMX8MP GPU on a process that call mlockall(MCL_FUTURE) causes kernel BUG() 嗨@alvaro_tx 我们的内部团队测试了这个补丁。虽然它直接解决了客户遇到的问题,但在其他应用程序的测试过程中却造成了问题。我们仍在调查此事,尚未得出最终结论。 此致, 志明
View full article
NXP Model-Based Design Toolbox : From Simulink to NXP Hardware in 5 Prompts using AI This video is currently being processed. Please try again in a few minutes. (view in My Videos) Introduction What if you could go from an idea to a running application on an NXP target using just a few prompts? In this tutorial, an AI agent takes a button-controlled RGB LED application from hardware understanding to a validated Simulink and Stateflow model, then to code generation and deployment on the FRDM-A-S32K312 using Model-Based Design Toolbox (MBDT). The workflow continues into generated-code debugging with S32 Design Studio and finishes by adapting the same application to a hardware change, without redesigning the application logic. The application logic is simple: every valid button press advances through Red > Green > Blue. The selected color remains active for one second, turns off, and the application waits for the next button press. Estimated time: ~60 minutes. System Architecture FRDM-A-S32K312 – Target board used throughout the tutorial for the button-controlled RGB LED application. Prerequisites What you need before starting MATLAB, Simulink, and Stateflow – MATLAB product page MATLAB Agentic Toolkit – MATLAB Agentic Toolkit Simulink Agentic Toolkit – Simulink Agentic Toolkit NXP Model-Based Design Toolbox (MBDT) – MBDT product page MBDT AI Support – GitHub repository S32 Design Studio IDE – S32 Design Studio IDE product page S32 Design Studio AI Support – GitHub repository One FRDM-A-S32K312 evaluation board and a USB cable – FRDM-A-S32K312 board page Important: The initial on-board GPIO assignments and active levels are intentionally discovered from the board documentation in Step 2. Those results become the source of truth for later modeling and target configuration. Steps Run the prompts in sequence. Each stage reuses the model, hardware facts, or configuration produced by the previous stage. Step 0 - Set up the project location Before the first development prompt, the project workspace is already established so the AI agent has a defined location for the files and artifacts used throughout the workflow. Set MATLAB workspace to C:/helloworld. Set the AI agent working directory for this project to C:/helloworld. Use this folder to store and create all additional dependencies for this project. Step 1 - Discover the hardware Before building the model, establish the board-level details: GPIO assignment, pins direction, active level, and the exact logical values required for button detection and LED control. The first engineering task is to understand the hardware. The board schematic is provided to the AI agent so it can identify the RGB LED pins and user-button connections together with the logic values required to control and read them. I want to build a simple demo on the FRDM-A-S32K312 board using the onboard button and RGB LED. Each button press should advance through a color sequence. The first press turns the RGB LED Red for 1 second, the second press turns it Green for 1 second, the third press turns it Blue for 1 second, and then the sequence repeats. After each 1-second indication, the LED should turn off and wait for the next button press. Please analyze the board documentation and schematics, identify the button and RGB LED connections, determine whether they are active-high or active-low, and tell me exactly what logic values are required to detect a button press and turn each LED color on and off. Also confirm that the board can support this application without any hardware modifications. Summarize the GPIO assignments and signal behavior so they can be reused in the next development steps. AI Agent will do the following: Identify the GPIO assignment for BTN_ADVANCE, RGB_RED, RGB_GREEN, and RGB_BLUE. Determine signal direction and active-high or active-low behavior. Capture explicit logic values for button press/release and LED ON/OFF. Confirm whether the initial application can use the existing board hardware without modification. Step 2 - Build the Stateflow application Using the hardware information discovered in the previous step, the AI agent creates the initial Simulink model and implements the application behavior in Stateflow, organizing the LED-control logic in a clear and structured way. Using the hardware information from the previous step, create a Simulink model called s32k312_rgb_led. Do not set a target yet, use plain Simulink for this step. Build the Simulink application logic in Stateflow. Every BTN_ADVANCE button press should advance through a repeating color sequence. The first press shows Red for 1 second, the second press shows Green for 1 second, the third press shows Blue for 1 second, and the sequence repeats. After each 1-second indication, the LED color turns off and the application waits for the next button press. Organize the model cleanly and generate a Stateflow implementation that is easy to understand and ready for the next stages of the workflow. Step 3 - Simulate, test, and fix the logic With the Simulink model available, the next goal is to validate the Stateflow behavior. A 15-second scenario with seven button presses, including a three-second idle interval, is used to exercise the logic while observing button activity, LED transitions, and internal Stateflow state changes. Using the model created in the previous step, prepare a simulation scenario to validate the application behavior. Configure a 15-second simulation and generate a sequence of 7 button press events distributed over the simulation time. At least one interval in between presses shall be 3 seconds long. Create a comprehensive testcase to identify any possible errors in the Stateflow. Run the simulation, verify that the color sequence behaves as expected, and create suitable visualizations showing the button activity, color transitions, and internal Stateflow state changes. Debug the Stateflow and fix any issues. Summarize the simulation results and highlight any issues found. Validation target: One valid press advances exactly one color, the selected output stays active for one second, all LED outputs then return to OFF, and the sequence continues Red > Green > Blue > Red.   Step 4 - Integrate the FRDM-A-S32K312 target Once the application is validated in simulation, the model is prepared for deployment on the NXP target. The existing Stateflow logic is preserved while the hardware I/O and target-specific configuration are added. The validated Simulink model is then prepared for the real evaluation board. The AI agent configures the S32K3 target, integrates the MCU peripherals, connects the application logic to the physical hardware, generates code, builds the application, and deploys it to the FRDM-A-S32K312. Using the validated s32k312_rgb_led model from the previous step, prepare it for deployment on the FRDM-A-S32K312 board. Configure the hardware board as NXP S32K3xx and then set the board as FRDM-A-S32K312 with the S32 Configuration Tools. Add the required Dio blocks for the signals discovered by the hardware analysis and rename the configured signals to RGB_RED, RGB_GREEN, RGB_BLUE and BTN_ADVANCE. Use the GPIO pin names discovered during the hardware analysis, take into account the logic levels to turn the LEDs on or off and detect the button, and preserve the signal names RGB_RED, RGB_GREEN, RGB_BLUE and BTN_ADVANCE. Connect the hardware I/O blocks to the existing application logic and add a variable that counts the number of valid button presses inside Stateflow. When the hardware integration is complete, verify the model configuration, generate the code, build the application, and deploy it to the target board. Step 5 - Debug the generated application After deployment, the generated code is exported into an S32 Design Studio project. The AI agent opens the project, places a breakpoint after the button press is detected on the Red LED path, prepares the debug session, and the breakpoint is reached when the corresponding button event occurs. Application code is generated and it is currently running on the target. Open the generated code in S32 Design Studio, add a breakpoint in the code right after the line where the application is checking that the button is pressed and the Red LED needs to be turned on, and start the debug session. Once the debug session is started, run the application on the board. Optional Step - Adapt the application to the hardware change The final stage demonstrates how the existing application can be adapted when the hardware changes. The RGB LED is rerouted to PTA0, PTA1, and PTA2, while the original signal names, Stateflow logic, and application behavior are preserved as the hardware configuration is updated. RGB LED pins were rerouted in the hardware. Hardware schematic has been changed and the RGB LED has been added externally to the board on the pins PTA0 - RGB_RED; PTA1 - RGB_GREEN and PTA2 - RGB_BLUE. Back up first the S32 Configuration Tools project associated with the model, then modify the S32 Configuration Tools external project to use the new LED configuration. De-initialize the previous pins for the RGB LED and initialize the new pins. Preserve the application logic and preserve the naming from the previous prompts. Why this matters: the application behavior does not change when the physical RGB routing changes. The target configuration moves the outputs to PTA0, PTA1, and PTA2 while the validated Stateflow logic and signal names remain unchanged. Verifying the Result Final check The project and dependencies are organized under C:\helloworld. The board GPIO assignments, polarity, and required logic values are captured from the hardware-analysis stage. The s32k312_rgb_led application implements the repeating Red > Green > Blue behavior. The 15-second simulation with seven button events validates the Stateflow behavior after any necessary fixes. The model uses the discovered hardware I/O and retains the signal names RGB_RED, RGB_GREEN, RGB_BLUE, and BTN_ADVANCE. A Stateflow variable counts valid button presses. The application is generated, built, and deployed to the target. The generated application is opened in S32 Design Studio for source-level debugging. After the hardware change, the previous RGB pins are de-initialized and PTA0/PTA1/PTA2 are configured while application logic is preserved. Troubleshooting Symptom What to inspect Wrong color or inverted LED behavior Recheck the hardware-analysis result and the discovered active levels used at the hardware interface. One press advances more than once Inspect the button stimulus and Stateflow press-event handling so that one valid press produces one sequence advance. Color does not turn off after one second Inspect Stateflow temporal logic and the output assignments on the transition back to the waiting state. Simulation differs from hardware Compare the deployed Dio mapping and polarity handling with the GPIO facts established during hardware analysis. Breakpoint is not visible in the Breakpoints GUI Document the observed GUI limitation and verify the intended debug location using the generated source and actual debugger behavior. Problems after rerouting the LEDs Verify that the former RGB pins were de-initialized and PTA0, PTA1, and PTA2 were initialized in the updated S32 Configuration Tools project. What This Demo Shows The application is simple, but the workflow captures a larger Model-Based Design pattern: understand the hardware, build an executable application model, validate the behavior before target integration, deploy it to real hardware, inspect generated code when needed, and absorb a late hardware change without rewriting the application logic. From prompt to hardware application using AI Agent: understand the board, model the behavior, validate the application, deploy, debug, and adapt the hardware without rewriting the application. Examples Getting Started
View full article
RTDをダウンロードできません - ダウンロードオプションがグレー表示されています S32 Design Studio(S32DS)でS32K344ボード用のRTDパッケージをダウンロード・インストールできません。RTDを選択またはダウンロードするオプションがグレー表示されており、利用できません。 S32DSを再起動し、利用可能なアップデートやパッケージを確認しましたが、問題は解決しません。このため、プロジェクトのセットアップおよび開発活動を進めることができません。 解決について確認し、アドバイスをいただけますか? 詳細: IDE:S32 Design Studio(S32DS) ターゲットMCU:S32K344 問題:RTDのダウンロードオプションがグレー表示されています 影響:RTDパッケージのインストール/ダウンロードができません   Re: Unable to Download RTD - Download Option Greyed Out 下の2つ目のタブだと見えますか?
View full article
i.MX8MP USBホストロックアップ(-110)低速デバイスでの物理的な取り外し ターゲット設定: SoC:NXP i.MX8MP ポート構成:USBポート合計4個(USB 2.0×2、USB 3.0×2) OS : yocto scarthgap 6.6.52 トポロジー: 私たちの設計では、i.MX8MP SoCは内部のUSB2(本設計ではUSB1回線はotgに接続)コントローラーをUSB 3.0モードで使い、アップストリーム接続を直接オンボードのFresco Logic FL5500-2F0ハブに接続しています。ハブはこの接続を下流の4つの物理ポートに分配します。2つのポートはUSB 3.0のフル機能に対応するように配線されており、残りの2つのポートはUSB 2.0のみに対応するように配線されています。 i.MX8MP(SoCコントローラー「USB2」ライン、USB 3.0モードで動作) - > USB 3.0ハブ(Fresco Logic FL5500-2F0、USB 3.0ポート2つとUSB 2.0ポートを露出)   問題の説明: i.MX8MPで致命的なxHCIコマンドリングのロックアップが発生しており、ハードウェアが再接続時にxchiドライバから発行されたデータコマンドに応答しなくなります。クラッシュ条件は非常に限定的で、単一のハードウェア3.0 USBポートでのみ発生し、他の3.0および2.0ポートではこの問題は発生しません。 ロックアップは、低速(LS)デバイスが下流の高速ハブから物理的に切断されている間に、他の3つのポートのいずれかに少なくとも1台の低速デバイスがバックグラウンドでアクティブに接続されている場合にのみ発生します(問題のあるポートに再接続する前にその低速デバイスを抜いておけば問題は発生しません)。 主な行動的孤立: ポートアイソレーション:同じマルチデバイスのアンプラグテストをもう一方のUSB 3.0ポートやUSB 2.0ポートで行うと、きれいに切断されます。クラッシュはUSB 3.0ポート1つに限定されています。スピードアイソレーション:バックグラウンドデバイスは低速でなければなりません。バックグラウンドで高速デバイス(USBストレージドライブなど)がどれだけあっても関係ありません。他にLSデバイスがなければ、切断は問題なく処理されます。 注: この問題を解決するために、物理的に抜き差しする前に、以下のコマンドを使用して不良の USB ポートの認証を解除しました。 echo 0 > /sys/bus/usb/devices/1-1.1/authorized USBドライバーのバインドを解除してバインドすると動作します。 使用港 ハブ上のバックグラウンドデバイス デバイスのプラグが抜かれています 切断方法 ホストコントローラの結果 USB 3.0(良好なポート) 低速 低速 物理的に引っ張る クリーンな分解 USB 2.0ポート 低速 低速 物理的に引っ張る クリーンな分解 USB 3.0(ポートの不具合) 高速回線のみ 低速 物理的に引っ張る クリーンな分解 USB 3.0(ポートの不具合) なし 低速 物理的に引っ張る クリーンな分解 USB 3.0(ポートの不具合) 低速 低速 ソフトウェア(認可=0) クリーンな分解 USB 3.0(ポートの不具合) 低速 低速 物理的に引っ張る コマンドリングタイムアウト (-110)、ホストがクラッシュしました ログ、 root@lec-imx8mp:~# lsusb バス 001 デバイス 001: ID 1d6b:0002 Linux Foundation 2.0 ルートハブ バス001 デバイス002: ID 1d5c:5510 Fresco Logic Frescologic USB2.0 HUB バス001 デバイス004: ID 413c:301a Dell Computer Corp. Dell MS116 光学式マウス バス001 デバイス005: ID 413c:2113 Dell Computer Corp. KB216 有線キーボード バス 002 デバイス 001: ID 1d6b:0003 Linux Foundation 3.0 ルートハブ バス002 デバイス002: ID 1d5c:5500 Fresco Logic Frescologic USB3.1Gen2 HUB root@lec-imx8mp:~# [ 39.686850] usb 1-1.2:USB接続切断、デバイス番号5 [ 41.191295] usb 1-1.1: xhci-hcd を使用する新しい低速 USB デバイス番号 6 root@lec-imx8mp:~# lsusb バス 001 デバイス 001: ID 1d6b:0002 Linux Foundation 2.0 ルートハブ [ 51.427313] XHCI-HCD、XHCI-HCD.1.オート:xHCIホストがエンドポイント停止コマンドに応答しません [ 51.443403] XHCi-HCD、XHCI-HCD.1.auto:xHCIホストコントローラーが応答しない、死んだとみなす [ 51.451350] XHCI-HCD XHCI-HCD.1.auto:HCが亡くなった。片付け中 [ 51.457035] usb 1-1-port1: usb_device を割り当てできませんでした [ 51.462339] usb 1-1: USB切断、デバイス番号2 バス 001 デバイス 002: ID 1d5c:5510 [ 51.467338] usb 1-1.4:USB接続切断、デバイス番号4 Fresco Logic Frescologic USB2.0 H[ 51.475602] usb 2-1: USB切断、デバイス番号2 バス001 デバイス004: ID 413c:301a Dell Computer Corp. Dell MS116 光学式マウス バス 002 デバイス 001: ID 1d6b:0003 Linux Foundation 3.0 ルートハブ バス002 デバイス002: ID 1d5c:5500 Fresco Logic Frescologic USB3.1Gen2 HUB root@lec-imx8mp:~# lsusb バス 001 デバイス 001: ID 1d6b:0002 Linux Foundation 2.0 ルートハブ バス 002 デバイス 001: ID 1d6b:0003 Linux Foundation 3.0 ルートハブ   i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Linux Yocto Project Re: i.MX8MP USB Host Lockup (-110) on Low Speed device Physical Unplug この問題に関するご意見や解決策があれば、大変助かります。 ありがとう
View full article
S32K312 LPUART – Framing Error at 1 Mbps Baud Rate with 30 MHz LPUART Clock Hi NXP Team, I am working with an NXP S32K312 MCU and using the LPUART peripheral. The required UART baud rate for the communication is 1 Mbps. The LPUART 6 functional clock is 30 MHz. I initially configured the UART with: Baud rate: 1,000,000 bps LPUART clock: 30 MHz SBR or Mantissa: 2 OSR or Divisor: 15 Data bits: 8 Parity: None Stop bits: 1 LSB first With this configuration, I observed a framing error during communication. I understand that with the LPUART baud rate calculation: Baud Rate = LPUART Clock divided by SBR multiplied by OSR I also tried a configuration intended to achieve exactly 1 Mbps: SBR = 2 OSR = 15 Baud rate = 30 MHz divided by 2 multiplied by 15 = 1 Mbps However, I am still observing a framing error. I also tried 921600 baud, but I observed a framing error at this baud rate as well. Current observations LPUART clock: 30 MHz Required communication baud rate: 1 Mbps UART configuration: 8 N 1 Framing error is observed at 1 Mbps Framing error is also observed at 921600 baud The communication is with a TI BQ79600 bridge The TX waveform is being monitored using a logic analyzer Could you please help clarify: Does the S32K312 LPUART reliably support 1 Mbps UART communication with a 30 MHz LPUART clock? Is there a recommended OSR and SBR combination for achieving 1 Mbps with a 30 MHz clock? Are there any known limitations or restrictions related to OSR values, SBR values, or baud rate accuracy at 1 Mbps? Is there any additional LPUART configuration required for reliable 1 Mbps communication? Is there any recommended clock frequency for the LPUART when communicating at 1 Mbps? Could the framing error be related to the LPUART sampling configuration or clock tolerance? I can provide the LPUART BAUD register value, RTD configuration, and logic analyzer capture if required. Please advise on the recommended configuration and any additional debugging steps. Thanks. Re: S32K312 LPUART – Framing Error at 1 Mbps Baud Rate with 30 MHz LPUART Clock Hello @gayathri123 , A framing error is a receiver-side error. Therefore, temporarily remuxing PTD9, which is used as LPUART6_TX, should not by itself set the LPUART framing-error flag. The framing error indicates that the receiver detected logic 0 where it expected a stop bit.   Could you please confirm whether the error is reported in LPUART6_STAT[FE], by the BQ79600 or only by the logic analyzer? The 2.75 ms LOW wake-up pulse is much longer than a UART frame. If the LOW level is also present on the S32K312 RX input while the receiver remains enabled, the LPUART may correctly report a framing error because no valid stop bit is detected. The flag may therefore originate from the wake-up phase and remain set when normal UART communication starts. As a test, please: Disable the LPUART receiver and transmitter before changing the pin mux. Generate the wake-up pulse using GPIO. Return the GPIO output to HIGH. Remux PTD9 to LPUART6_TX. Clear any previous receive error flags. Re-enable LPUART and wait for the required BQ79600 wake-up recovery time. Transmit a valid command frame. Please provide a logic-analyzer capture of both TX and RX, together with the LPUART6_STAT value before and after the wake-up pulse. It is particularly important to identify the exact moment when STAT[FE] becomes set. Best regards, Pavel Re: S32K312 LPUART – Framing Error at 1 Mbps Baud Rate with 30 MHz LPUART Clock Hi  We are using an S32K312 with LPUART6 configured at 1 Mbps. PTD9 is configured as the LPUART6 TX pin. We are observing a framing error during UART communication when we temporarily configure PTD9 as GPIO and then remux it back to LPUART6 TX. The sequence is as follows: Configure PTD9 as GPIO and drive it LOW for approximately 2.75 ms to generate the required wake-up pulse. Remux PTD9 back to LPUART6_TX. Transmit dummy data through LPUART6 at 1 Mbps. A framing error is observed during the UART communication. Re: S32K312 LPUART – Framing Error at 1 Mbps Baud Rate with 30 MHz LPUART Clock Hello @gayathri123 , Thank you for the detailed description. The first point to clarify is the LPUART baud-rate formula. For the S32K3 LPUART, the effective baud rate is calculated as:   Baud rate = LPUART functional clock / (SBR × (OSR + 1))   Therefore, if the BAUD register contains SBR = 2 and OSR = 15, the resulting baud rate is:   30 MHz / (2 × 16) = 937,500 baud   It is therefore not 1 Mbps. This deviation is large enough to cause a framing error when the communication partner operates at 1 Mbps. For a 30 MHz LPUART functional clock, an exact 1 Mbps baud rate can be obtained with:     SBR = 2 OSR register value = 14 Effective oversampling ratio = 15   30 MHz / (2 × 15) = 1,000,000 baud   Please note that some configuration tools may display the effective oversampling ratio, while the BAUD register stores this value minus one. For this reason, please read back the complete LPUART6_BAUD register after initialization and verify the actual OSR and SBR fields. The S32K312 LPUART can support 1 Mbps communication. A 30 MHz functional clock is also suitable because it allows the baud rate to be generated exactly. No special additional configuration should normally be required beyond the correct clock, baud-rate settings, frame format, pin configuration and receiver configuration. Best regards, Pavel
View full article
Using iMX8MP GPU on a process that call mlockall(MCL_FUTURE) causes kernel BUG() A customer reported an issue related to the use of the iMX8MP GPU (drawing using EGL). When the process that initializes the GPU previously called mlockall(MCL_FUTURE), as soon as the CMA area is mapped into userspace, the kernel reports the following BUG(): Kernel BUG at remap_pfn_range_internal+0x23c/0x2c8 Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP CPU: 0 PID: 3197 Comm: galcore_window_ Tainted: G O 6.6.142-7.7.0-devel #1-Torizon Hardware name: Toradex Verdin iMX8M Plus WB on Verdin Development Board (DT) pc : remap_pfn_range_internal+0x23c/0x2c8 x27: 00000000a2100000 x20: 0068000000000fcb x19: 0000007f90000000 ^^^^^^^^^^^^^^^^^^^^^^ the PTE already present Call trace: remap_pfn_range_internal+0x23c/0x2c8 remap_pfn_range+0x24/0x58 dma_direct_mmap+0xf4/0x150 dma_mmap_attrs+0x18/0x3c _CMAFSLMapUser+0x9c/0x150 [galcore] gckOS_LockPages+0xe4/0x148 [galcore] gckKERNEL_MapVideoMemory+0x90/0x1dc [galcore] gckVIDMEM_NODE_LockCPU+0x1b4/0x250 [galcore] _LockVideoMemory.isra.0+0x1f4/0x28c [galcore] gckKERNEL_Dispatch+0x210/0x1730 [galcore] gckDEVICE_Dispatch+0xcc/0x220 [galcore] drv_ioctl+0x340/0x444 [galcore] __arm64_sys_ioctl+0xac/0xf0 Kernel panic - not syncing: Oops - BUG: Fatal exception mlockall(MCL_FUTURE) is commonly used by real time applications, and the customer who reported the issue is using CODESYS to drive their HMI. We executed an AI-assisted analysis of the issue, and uncovered a plausible explanation for the reason the issue is being triggered: The CMA allocator in the galcore driver doesn't include an .mmap() hook. During the _CMAFSLMapUser() execution, it calls mmap() to get a vma, which is then used to locate the CMA area using find_vma(). The way mmap() is called causes the kernel to lazilly allocate a SHM area to fullfil the request. In normal cases, this allocation gets discarded moments later when the CMA are is found and remapped. However, when MCL_FUTURE is active the kernel cannot lazilly allocate the SHM area anymore, so it goes and populates the entire area before mmap() returns. In this case we have valid pages on this address, and the later call to remap_pfn_range() would end up silently discarding the memory management housekeeping information, which is exactly what the BUG() prevents. I'll attach a zip file which contains the source code of a program that reproduces the issue consistently without the need to run CODESYS. The AI agent suggested the following patch to fix it: diff -uNr a/hal/kernel/inc/gc_hal_options.h b/hal/kernel/inc/gc_hal_options.h --- a/hal/kernel/inc/gc_hal_options.h 2026-09-04 13:00:44.596621860 +0000 +++ b/hal/kernel/inc/gc_hal_options.h 2026-09-04 13:01:15.643862002 +0000 @@ -1471,9 +1471,17 @@ * Enable this macro can replace the /dev/zero by anon_inode: * [galcore] in /proc/ /maps. * Without the macro, run 'cat /proc/ /maps' will print "/dev/zero". + * + * It is also what gives the allocators an ->mmap handler, which is + * required so that the reservation made by vm_mmap() is created as a + * device mapping (VM_IO | VM_PFNMAP) rather than as ordinary anonymous + * memory. Without it, a process that has called mlockall(MCL_FUTURE) + * gets the range pre-faulted inside vm_mmap(), and the subsequent + * remap_pfn_range() then hits BUG_ON(!pte_none()) in remap_pte_range(). + * See tmp_mmap() in gc_hal_kernel_allocator.c. */ #ifndef gcdANON_FILE_FOR_ALLOCATOR -# define gcdANON_FILE_FOR_ALLOCATOR 0 +# define gcdANON_FILE_FOR_ALLOCATOR 1 #endif /* diff -uNr a/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c b/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c --- a/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c 2026-09-04 13:00:44.605314869 +0000 +++ b/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c 2026-09-04 13:01:15.644216883 +0000 @@ -400,7 +400,13 @@ gcmkHEADER_ARG("Allocator=%p Mdl=%p Cacheable=%d", Allocator, Mdl, Cacheable); #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 4, 0) +#if gcdANON_FILE_FOR_ALLOCATOR + /* Same as the gfp, dma and reserved_mem allocators: go through the + * allocator's anon file so that its ->mmap handler runs. */ + userLogical = (gctPOINTER)vm_mmap(Allocator->anon_file, +# else userLogical = (gctPOINTER)vm_mmap(gcvNULL, +# endif 0L, Mdl->numPages * PAGE_SIZE, PROT_READ | PROT_WRITE, diff -uNr a/hal/os/linux/kernel/gc_hal_kernel_allocator.c b/hal/os/linux/kernel/gc_hal_kernel_allocator.c --- a/hal/os/linux/kernel/gc_hal_kernel_allocator.c 2026-09-04 13:00:44.603242857 +0000 +++ b/hal/os/linux/kernel/gc_hal_kernel_allocator.c 2026-09-04 13:01:15.644041018 +0000 @@ -104,6 +104,36 @@ static int tmp_mmap(struct file *fp, struct vm_area_struct *vma) { + /* + * Declare the reservation as a device mapping with raw PFNs, before + * mmap() returns it to the caller. remap_pfn_range() sets both flags + * anyway; setting them here only makes them effective from the moment + * the VMA is created, and that is what matters: + * + * - the kernel treats VM_IO | VM_PFNMAP as VM_SPECIAL, documented in + * include/linux/mm.h as "Special vmas that are non-mergable, + * non-mlock()able". mmap_region() therefore clears VM_LOCKED from + * this VMA and leaves mm->locked_vm alone, and __mm_populate() + * skips it outright ("if (vma->vm_flags & (VM_IO | VM_PFNMAP)) + * continue;" in mm/gup.c). + * + * - so a process that has called mlockall(MCL_FUTURE) no longer has + * this range pre-faulted inside vm_mmap(). Every other mapping in + * that process keeps being locked and pre-faulted as before; only + * device memory, which is neither pageable nor swappable and gains + * nothing from being pre-faulted, is left out. + * + * - and the allocator's own remap_pfn_range(), a few microseconds + * later, therefore finds an empty range instead of one the kernel + * has just populated, so it no longer trips + * BUG_ON(!pte_none(ptep_get(pte))) in remap_pte_range(). + */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0) + vm_flags_set(vma, VM_IO | VM_PFNMAP); +#else + vma->vm_flags |= VM_IO | VM_PFNMAP; +#endif + return 0; } The upstream driver uses a different mechanism which bypasses this issue. Other galcore allocators use the same pattern (calling vm_mmap to get a vma) and thus are likely succeptible to the same BUG(). Could you please look into this and fix the galcore driver? This issue prevents a real use case from working properly, and is affecting our customer directly. Thank you, Rafael Re: Using iMX8MP GPU on a process that call mlockall(MCL_FUTURE) causes kernel BUG() Hi @rbeims  Let me run the test and then check with the GPU team. Best Regards, Zhiming Re: Using iMX8MP GPU on a process that call mlockall(MCL_FUTURE) causes kernel BUG() Hi @Zhiming_Liu , did you manage to reproduce the bug? If yes, do you have an ETA when the fix will be implemented in your BSP? Thanks.   Re: Using iMX8MP GPU on a process that call mlockall(MCL_FUTURE) causes kernel BUG() Hi @alvaro_tx  Our internal team tested this patch. Although it directly resolved the issue encountered by the customer, it caused problems during testing in other applications. We are still investigating the matter and have not reached a final conclusion. Best Regards, Zhiming Re: Using iMX8MP GPU on a process that call mlockall(MCL_FUTURE) causes kernel BUG() Hi @Zhiming_Liu , thanks for the clear report. Fully understood, and we also thought this could happen. All good.  Please keep working on this and let us know with any updates.  Thank you, Alvaro. 
View full article
i.MX8MP USB主机锁定(-110),低速设备物理拔出 目标设置: SoC:NXP i.MX8MP端口配置:共 4 个 USB 端口(2 个 USB 2.0,2 个 USB 3.0) 操作系统:Yocto Scarthgap 6.6.52 拓扑结构: 在我们的设计中,i.MX8MP SoC 使用其内部 USB2(在我们的设计中,USB1 线连接到 otg)控制器以 USB 3.0 模式直接提供上行连接到板载 Fresco Logic FL5500-2F0 集线器。然后,集线器将此连接向下分配到四个物理端口:两个端口采用 USB 3.0 全功能连接,而其余两个端口仅采用 USB 2.0 连接。 i.MX8MP(SoC 控制器“USB2”线,以 USB 3.0 模式运行)-> USB 3.0 集线器(Fresco Logic FL5500-2F0,提供 2 个 USB 3.0 端口和 2 个 USB 2.0 端口)   问题描述:我们正在追踪 i.MX8MP 上的一个致命的 xHCI 命令环锁定问题。该硬件在重新插拔后无法响应 xHCI 驱动程序发出的数据命令。崩溃条件非常特殊,仅限于一个硬件上的 USB 3.0 端口,其他 USB 3.0 和 2.0 端口均未出现此问题。 当低速 (LS) 设备从下游高速集线器物理拔出,而其他 3 个端口中的至少一个后台连接着至少一个低速设备时,锁定只会发生在特定的 USB 3.0 端口上(如果在尝试重新插入问题端口之前拔出后台低速设备,则不会出现此问题)。 关键行为隔离: 端口隔离:如果我们对另一个 USB 3.0 端口或 USB 2.0 端口执行完全相同的多设备拔插测试,则测试结果正常。故障仅限于单个 USB 3.0 端口。速度隔离:后台设备必须是低速设备。后台连接了多少高速设备(例如 USB 存储驱动器)并不重要;如果没有其他低速设备,拔出操作就能正常进行。 注意:缓解此问题的一个方法是,在尝试物理拔插之前,使用以下命令取消故障 USB 端口的授权: echo 0 > /sys/bus/usb/devices/1-1.1/authorized 如果我们解绑再重新绑定 USB 驱动程序,也能达到同样的效果。 使用的端口 集线器上的后台设备 设备正在拔掉电源 断开连接方法 主机控制器结果 USB 3.0(良好端口) 低速 低速 物理抽签 彻底拆解 USB 2.0端口 低速 低速 物理抽签 彻底拆解 USB 3.0(故障端口) 仅限高速 低速 物理抽签 彻底拆解 USB 3.0(故障端口) 无 低速 物理抽签 彻底拆解 USB 3.0(故障端口) 低速 低速 软件(已授权=0) 彻底拆解 USB 3.0(故障端口) 低速 低速 物理抽签 命令环超时(-110),主机死亡 日志, root@lec-imx8mp:~# lsusb 总线 001 设备 001:ID 1d6b:0002 Linux Foundation 2.0 根集线器 总线 001 设备 002:ID 1d5c:5510 Fresco Logic Frescologic USB2.0 集线器 总线 001 设备 004:ID 413c:301a 戴尔计算机公司 戴尔 MS116 光电鼠标 总线 001 设备 005:ID 413c:2113 戴尔电脑公司 KB216 有线键盘 总线 002 设备 001:ID 1d6b:0003 Linux Foundation 3.0 根集线器 总线 002 设备 002:ID 1d5c:5500 Fresco Logic Frescologic USB3.1Gen2 集线器 root@lec-imx8mp:~# [ 39.686850] usb 1-1.2:USB断开连接,设备编号5 [ 41.191295] usb 1-1.1:使用 xhci-hcd 的新型低速 USB 设备,设备编号为 6 root@lec-imx8mp:~# lsusb 总线 001 设备 001:ID 1d6b:0002 Linux Foundation 2.0 根集线器 [ 51.427313] xhci-hcd xhci-hcd.1.auto:xHCI 主机未响应停止端点命令 [ 51.443403] xhci-hcd xhci-hcd.1.auto:xHCI 主机控制器无响应,假定其已损坏 [ 51.451350] xhci-hcd xhci-hcd.1.auto:HC去世;清理工作 [ 51.457035] usb 1-1-port1:无法分配 usb_device [ 51.462339] usb 1-1:USB 断开连接,设备编号 2 总线 001 设备 002:ID 1d5c:5510 [ 51.467338] usb 1-1.4:USB断开连接,设备编号4 Fresco Logic Frescologic USB2.0 H[ 51.475602] usb 2-1:USB 断开连接,设备编号 2 总线 001 设备 004:ID 413c:301a 戴尔计算机公司 戴尔 MS116 光电鼠标 总线 002 设备 001:ID 1d6b:0003 Linux Foundation 3.0 根集线器 总线 002 设备 002:ID 1d5c:5500 Fresco Logic Frescologic USB3.1Gen2 集线器 root@lec-imx8mp:~# lsusb 总线 001 设备 001:ID 1d6b:0002 Linux Foundation 2.0 根集线器 总线 002 设备 001:ID 1d6b:0003 Linux Foundation 3.0 根集线器   i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Linux Yocto Project Re: i.MX8MP USB Host Lockup (-110) on Low Speed device Physical Unplug 任何关于此问题的见解或解决方案都将非常有帮助。 谢谢
View full article
"(gdb[23].proc[42000].threadGroup[i1],gdb[23].proc[42000].OSthread[1]).thread のソースがありません プログラムのデバッグ後、「'(gdb[23].proc[42000].threadGroup[i1]、'のソースが利用できません」というメッセージが表示されました。gdb[23].proc[42000]。OSthread[1]).thread[1].frame[0]'「」がポップアップしました。「再開」ボタンは灰色です。私が使っているソフトウェアは、ARMバージョン2018.R1用のS32 Design Studioです。この問題をどう解決すればいいのか教えていただけますか?ありがとう。S32K144EVB Re: No source available for "(gdb[23].proc[42000].threadGroup[i1],gdb[23].proc[42000].OSthread[ こんにちは、 このメッセージは通常、デバッガーが障害ハンドラー内で停止したか、ソースコードが利用できない無効なアドレスで停止したことを示しています。クリーンビルドを試み、ボードの電源を入れ直し、デバッグセッションを再開してください。また、GDB PEMicroのデバッグ構成で正しい*.elfファイルが選択されていることを確認してください。 さらに、標準的なNXP S32K144例プロジェクトで問題を再現可能かどうかもテストしてください。これにより、問題がアプリケーション固有のものかどうかを判断できます。 また、現在インストールしているARM 2018.R1のS32 Design Studioのアップデートレベルも確認してください。アップデート11(またはそれ以降)を使用していない場合は、S32K1xxデバイス向けの修正やSDKアップデートが含まれているため、このアップデートの適用をお勧めします。 BR、ペトル
View full article
スマートホームデバイスを使ってエネルギーを節約するには? スマートホームデバイスを使って電気代を減らそうとした人はいますか?新しい賃貸アパートに引っ越すので、光熱費を節約するために工夫を凝らしたいと思っています。パートナーと一緒に暮らす。
View full article
imx95 ジェイルハウス iommu 設定 こんにちは、 Jailhouse上でi.MX95のIOMMUを設定することは可能ですか? 私はhttps://github.com/nxp-imx/imx-jailhouse/blob/lf-6.18.20_2.0.0/configs/arm64/imx8qm.cとhttps://github.com/nxp-imx/imx-jailhouse/blob/lf-6.18.20_2.0.0/configs/arm64/imx95.cを比較していますが、後者には.iommu_unitsがありません。定義済み。これは見落としでしょうか、それともi.MX95では不可能な機能なのでしょうか?私の理解では、i.MX95は新しいSMMUv3をサポートしており、ルートセルファイルには次のようなものがあると思います。 .iommu_units= { ヤージュ .type = JAILHOUSE_IOMMU_SMMUV3, .base = 0x36600000、 .size = 0x100000、 }、 } ありがとうございます。 Re: imx95 jailhouse iommu configuration AEチームと話し合った。 IOMMU は i.MX95 ではデフォルトで有効になっています。 Re: imx95 jailhouse iommu configuration IOMMU設定はシステムマネージャーの設定ファイルとカーネルDTSでデフォルトで有効化されています
View full article
MCSPTE1AK144 – Hall FOC stops above ~600 rpm and automatic deployment from Simulink not working Hello, I am working with the NXP MCSPTE1AK144 # and a Sunrise PMSM motor, using the Hall-sensor PMSM FOC example Software setup: MATLAB R2025b NXP Support Package for S32K1xx 2.2.0 NXP Model-Based Design Toolbox for S32K1xx 4.3.0 The model builds successfully and generates the .mot file. When I manually copy the .mot file to the EVB-S32K144 drive, the motor runs successfully. Using the host model, I am able to start and stop the motor and change the speed reference. I am currently facing two issues. Motor stops above approximately 600 rpm The motor operates correctly at low speeds. I have tested operation from around 10 rpm and also increased the speed gradually. When the speed is increased above approximately 600 rpm, the motor stops and D11 starts flashing red. How can I identify the exact fault responsible for this shutdown? Which fault variable or register should I monitor? Automatic deployment from Simulink The Simulink model builds successfully and generates the .mot file, but the firmware is not automatically flashed to the board. Manually copying the same .mot file to the EVB-S32K144 drive works correctly. What is the correct configuration for automatically deploying the generated code to the S32K144 through OpenSDA? I also found an older NXP recommendation for this example using MATLAB R2021a with NXP Support Package S32K1xx 2.3.0. Would you recommend using this configuration instead of R2025b with MBDT 4.3.0? Thank you.
View full article
i.MX8MP USB Host Lockup (-110) on Low Speed device Physical Unplug Target Setup: SoC: NXP i.MX8MP Port Configuration: 4x USB Ports total (2x USB 2.0, 2x USB 3.0) OS : yocto scarthgap 6.6.52 Topology: In our design the i.MX8MP SoC uses its internal USB2(USB1 lines are connected to otg in our design) controller in USB 3.0 mode to provide the upstream connection directly to an onboard Fresco Logic FL5500-2F0 hub. The hub then distributes this connection downstream to four physical ports: two ports are wired for full USB 3.0 operation, while the remaining two ports are wired only for USB 2.0 operation. i.MX8MP (SoC Controller "USB2" lines, operating in USB 3.0 mode) -> USB 3.0 Hub (Fresco Logic FL5500-2F0, exposing 2x USB 3.0 and 2x USB 2.0 ports)   Issue Description: We are tracking down a fatal xHCI command ring lockup on the i.MX8MP,the hardware fails to respond to data commands issued by xchi drver on replug. The crash conditions are highly specific, isolating to a single hardware 3.0 usb port and the other 3.0 and 2.0 ports dont show this issue. The lockup only occurs on one specific USB 3.0 port when a Low-Speed (LS) device is physically unplugged from a downstream High-Speed Hub, while there is at least one other Low speed device actively connected in the background in one of other 3 ports(if the background device low speed device is unplugged before trying re-plug on the problematic port the issue wont occur). Key behavioral isolations: Port Isolation: If we perform this exact same multi-device unplug test on the other USB 3.0 port, or on the USB 2.0 ports, it tears down cleanly. The crash is isolated to a single USB 3.0 port. Speed Isolation: The background device must be Low-Speed. It does not matter how many High-Speed devices (like USB storage drives) are connected in the background; if there is no other LS device present, the unplug handles cleanly. note: One thing that mitigated this issue was un-authorising the bad usb port using the below command before trying physical un-plug and re-plug back in, echo 0 > /sys/bus/usb/devices/1-1.1/authorized It also works if we unbind and bind the usb driver. Port Used  Background Device(s) on Hub Device Being Unplugged Disconnect Method Host Controller Result USB 3.0 (Good Port) Low-Speed Low-Speed Physical Yank Clean Teardown USB 2.0 Ports Low-Speed Low-Speed Physical Yank Clean Teardown USB 3.0 (Failing Port) High-Speed(s) only Low-Speed Physical Yank Clean Teardown USB 3.0 (Failing Port) None Low-Speed Physical Yank Clean Teardown USB 3.0 (Failing Port) Low-Speed Low-Speed Software (authorised=0) Clean Teardown USB 3.0 (Failing Port) Low-Speed Low-Speed Physical Yank Cmd Ring Timeout (-110), Host Dies logs, root@lec-imx8mp:~# lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 1d5c:5510 Fresco Logic Frescologic USB2.0 HUB Bus 001 Device 004: ID 413c:301a Dell Computer Corp. Dell MS116 Optical Mouse Bus 001 Device 005: ID 413c:2113 Dell Computer Corp. KB216 Wired Keyboard Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 002 Device 002: ID 1d5c:5500 Fresco Logic Frescologic USB3.1Gen2 HUB root@lec-imx8mp:~# [ 39.686850] usb 1-1.2: USB disconnect, device number 5 [ 41.191295] usb 1-1.1: new low-speed USB device number 6 using xhci-hcd root@lec-imx8mp:~# lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub [ 51.427313] xhci-hcd xhci-hcd.1.auto: xHCI host not responding to stop endpoint command [ 51.443403] xhci-hcd xhci-hcd.1.auto: xHCI host controller not responding, assume dead [ 51.451350] xhci-hcd xhci-hcd.1.auto: HC died; cleaning up [ 51.457035] usb 1-1-port1: couldn't allocate usb_device [ 51.462339] usb 1-1: USB disconnect, device number 2 Bus 001 Device 002: ID 1d5c:5510 [ 51.467338] usb 1-1.4: USB disconnect, device number 4 Fresco Logic Frescologic USB2.0 H[ 51.475602] usb 2-1: USB disconnect, device number 2 Bus 001 Device 004: ID 413c:301a Dell Computer Corp. Dell MS116 Optical Mouse Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 002 Device 002: ID 1d5c:5500 Fresco Logic Frescologic USB3.1Gen2 HUB root@lec-imx8mp:~# lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub   i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Linux Yocto Project Re: i.MX8MP USB Host Lockup (-110) on Low Speed device Physical Unplug Any insight or fix on this issue would be hugely helpfull. thanks
View full article
imx95监狱iommu配置 您好, 是否可以在 Jailhouse 上配置 i.MX95 的 IOMMU? 我正在比较https://github.com/nxp-imx/imx-jailhouse/blob/lf-6.18.20_2.0.0/configs/arm64/imx8qm.c和https://github.com/nxp-imx/imx-jailhouse/blob/lf-6.18.20_2.0.0/configs/arm64/imx95.c ,后者没有任何.iommu_units。已定义。这是疏忽还是 i.MX95 无法实现?据我了解,i.MX95 支持较新的 SMMUv3,我预计在根单元文件中会看到类似这样的内容: .iommu_units= { { .type = JAILHOUSE_IOMMU_SMMUV3, .base = 0x36600000, .size = 0x100000, }, } 谢谢。 Re: imx95 jailhouse iommu configuration 已与AE团队讨论。 IOMMU 在 i.MX95 上默认启用。 Re: imx95 jailhouse iommu configuration IOMMU设置在系统管理器配置文件和内核dts中默认启用。
View full article
Application Command issue in 'examples/freemaster_examples/fmstr_example_pdbdm Dear All Downloaded sdk.sdk_2.x_lpcxpresso54114 with only FreeMASTER examples. It works correctly in any aspect apart the Application Command section where I find strange behavior More details has been posted in github here: https://github.com/nxp-mcuxpresso/mcuxsdk-examples/issues/10 Regards Paolo Re: Application Command issue in 'examples/freemaster_examples/fmstr_example_pdbdm Hello, if I understand the issue correctly, you do not see a reason why command 0x10 returns code 16 in the example application. The command 0x10 is registered for a callback function: So the function "my_appcmd_handler" gets called automatically when FreeMASTER probes the command execution.  The example code of this callback is quite trivial: Which is the reason you get the return code 16 (=0x10) as answer. I also confirm there is an issue in FreeMASTER with displaying a message for unknown responses as you reported for app.command with Id 0x02. The response 0xcd should be reported as "unknown response" but generates no message at all. Thanks, Michal
View full article
FRDM-IMX93:LinuxからLPSPI3レジスタにアクセスできない(devmem読み取り時のバスエラー) — 外部SPIデビック 概要 FRDM-IMX93ボードの P11 EXPIヘッダーに LPSPI3 を使って、2つの外部MCP2515 CANコントローラー(Waveshare 2-CHAN HAT、本物のRaspberry Piで動作確認)を起動しようとしています(GPIO_IO08 UM12181表21参照、Raspberry-Pi互換ヘッダー位置に一致するピンです)。 見つけたデバイスツリーレベルの問題(電源、ピンマックス、チップセレクト、pinctrl-assert-gpio)をすべて修正した後、SPIクロック(SCK)は物理ヘッダーピンを切り替え ず 、LPSPI3ブロックの直接レジスタ読み込みは バスエラーを引き起こします。別の既知の動作ペリフェラル(LPUART1)は同じアドレス空間から問題なく読み返します。これはLinuxデバイスツリーから修正できるものではなく、リソース/バスアクセス制限(RDCなど)を示しています。 ボード/ソフトウェア ボード:FRDM-IMX93(NXP)、SoC:MIMX9352CVVXMAB BSP: NXP i.MX リリース ディストリビューション、カーネル 6.18.2-1.0.0-gf49f45233f7b ターゲット周辺機器:lpspi3(spi@42550000、/aliasesでエイリアスされたspi2、/proc/device-tree/で確認された本物のdtsラベル__symbols__ lpspi3) テスト中の外部デバイス:CS0/CS1上の2× MCP2515(Waveshare 2-CH CAN HAT) 既に動作が確認されているもの(除外されたもの) ヘッダーに電力を供給します。reg_vexp_3v3 / reg_vexp_5v は、デフォルトで無効になっているレギュレータ固定ノードです (regulator_summary では use=0 と表示されています)。レギュレーター常時オン+レギュレーターブートオンを追加し、オーバーレイフラグメントのターゲティング&reg_vexp_3v3/&reg_vexp_5vを追加しました( __symbols__で実際のラベルが確認されました)。その後、P11に3.3V/5Vの電圧が物理的に存在していることを確認しました。 Pinmux。GPIO_IO08-11 は、imx93-pinfunc.h の公式マクロを使用して、LPSPI3_PCS0/SIN/SOUT/SCK に正しく多重化されています。input_reg/input_valはこれら3つの機能に対して0x0000/0x0であるため、DAISYチェーンセレクトは不要です(マクロ検査で除外され、個別レジスタは不要)。 チップセレクト。cs-gpios = 、(ビットバンギングされたGPIO CS。このノードに対するNXP独自のアップストリームボードサポートパターンに一致)。cat /sys/kernel/debug/gpio とマルチメーター/ロジックアナライザーで確認したところ、 CS0 は正しくトグルし、物理的にヘッダーピンに到達していることがわかりました。 pinctrl-assert-gpios。NXP独自のこのボード用アップストリーム&lpspi3リファレンスには、pinctrl-assert-gpios = <&pcal6408 0 GPIO_ACTIVE_HIGH>; が含まれています(この行はほとんどの公開ガイドには記載されておらず、ボード独自のdtsパッチにのみ記載されています)。追加しました。/proc/device-tree/__symbols__ で pcal6408 が解決されること、および cat /sys/kernel/debug/gpio で lpspi3 のデフォルトの pinctrl 状態が要求されると GPIO がアサートされる (出力 hi) ことを確認しました。 オーバーレイはきれいに適用されます。U-Bootのfdt applyからFDT_ERR_NOTFOUNDは発生せず、/sys/bus/spi/devices/にはSPIコアによってspi2.0とspi2.1が登録されていることが示されています。 ERR051608 (LPSPI TCR[PRESCALE] のエラータ)。spi-fsl-lpspi.c を確認しました履歴 — 修正(fsl、imx93-spi の prescale_max = 1)は、2024年8月 / 安定版 6.6.51 でメインラインに取り込まれました。2024年9月6.10日は、このカーネルバージョン(6.18.2)よりずっと前のもので、互換文字列(fsl、imx93-spi)はすでにベースボードのdtsに存在しているため、ドライバはこの制限を自動的に適用すべきです。完全に否定できるわけではないが(実際にPRESCALEフィールドが書き込まれたという直接的なレジスタ確認はない)、タイムラインから判断すると既に処理済みである可能性が高い。 実際の症状 CS0/CS1、MISO、MOSI、SCKが物理的なP11ピン(マルチメーター、CS0落ち込みエッジで10〜20 MSa/sのロジックアナライザーをトリガー)でプローブしつつ、転送を繰り返し再試行(ループ内でspidev_testし、Echo spi2.0 > /sys/bus/spi/drivers/mcp251x/bindを経て繰り返しMCP251xの再プローブを強制することで別々に実行しました): CS0の切り替え。マルチメーターとロジックアナライザーの両方で確認済み。 SCKは切り替えません。継続的に転送を試みても、変化はなく、活動は見られない。 MOSIは切り替えません。 両方のMCP2515が同じように失敗します:mcp251x spi2.0/spi2.1:リセット/プローブ失敗後、MCP251xはコンフモードに入らなかった。err=110(ETIMEDOUT)。つまり、ドライバ自身のSPIレベルのリセット+read-CANSTATシーケンスは応答せず、SCKがSoCを出ないのと一致している。 根本原因はデバイスツリーではなくクロック/バスアクセスに絞られます   # clk_enable_count is 0 despite the controller actively being used $ cat /sys/kernel/debug/clk/clk_summary | grep -i lpspi3 lpspi3_root 0 0 0 50000000 0 0 50000 N deviceless no_connection_id lpspi3 0 0 0 50000000 0 0 50000 N 42550000.spi per LPSpi3の機能クロック(per)クロックはenable_count=0と表示されますが、42550000.SPI(実際のバインドされた消費者)がループ内で転送を試みている間も、単に「未使用」ではありません(lpspi1/2/4はデバイス レスで0 と表示されるため、それだけでは決定的ではありません)。 決定的なテスト ― devmem を介したレジスタの直接読み取り:   $ devmem 0x44380000 32 # LPUART1 base — known-good peripheral 0x04040007 $ devmem 0x42550000 32 # LPSPI3 base (VERID register) Bus error (core dumped) 全く関係のない動作するペリフェラル(LPUART1、デバッグコンソール用)は同じCPU/バスのコンテキストから問題なく読み戻せます。LPSPI3のベースアドレスフォルトは、クロックゲーティングやピンマックスの考慮が問題になる前に、単純な32ビット読み取りで発生します。これはリソースドメインコントローラー(RDC)やそれに類するアクセス制御機構が、ハードウェアレベルでCortex-A55(Linux)ドメインをこのペリフェラルのアドレス範囲からブロックしているように見えます。Linuxデバイスツリーから設定可能なものとは無関係です。 NXPへの質問 FRDM-IMX93 の LPSPI3 は、別のドメイン (例:Cortex-M33 / Secure World)をボードのデフォルトのRDC構成に含めて、追加のSPL/ATF/TF-Aレベルの再構成なしでLinuxからは使えなくなるのでしょうか? もしそうなら、LPSPI3バスアクセスをCortex-A55の非セキュアドメインに再割り当てする方法(U-Boot SPLのRDC設定やOP-TEE/TF-Aの変更)は文書で記載されているのでしょうか?それとも、GPIO_IO08-11が壊れているにもかかわらず、このボードのP11ヘッダーで外部SPIとしては単純にサポートされていないのでしょうか? これは私のボード/カーネルビルド特有の問題でしょうか、それともデフォルトのFRDM-IMX93 BSPの既知の特性でしょうか?参照用のimx93-11x11-frdm-lpspi.dts(EVKの場合はimx93-11x11-evk-lpspi.dtsに相当)があれば非常に助かります。 再現方法 ベースボードdtb: i.MXリリースディストリビューションイメージに同梱されている標準のimx93-11x11-frdm.dtb(変更されていないNXP lpspi3 + pcal6408 + reg_vexp_3v3/reg_vexp_5vノード - すべて__symbols__経由で存在が確認されています)。 上記で説明したオーバーレイを適用します(レギュレータ常時オン、&lpspi3 上の pinctrl + cs-gpios + pinctrl-assert-gpios)。 spidev(組み込み、CONFIG_SPI_SPIDEV=y)を手動でspi2.0にバインドします。   echo spidev > /sys/bus/spi/devices/spi2.0/driver_override echo spi2.0 > /sys/bus/spi/drivers/spidev/bind spidev_test -D /dev/spidev2.0-s 1000000 -v — 転送は「成功」します(I/O エラーなし)が、MOSI/MISO が物理的に短絡されていても、RX データは TX のループバックではありません。 devmem 0x42550000 32 → バスエラー。 必要であれば、オーバーレイのソースコード、dmesgログ、clk_summary/gpioダンプなど、すべての情報を提供いたします。 Re: FRDM-IMX93: LPSPI3 registers inaccessible from Linux (Bus error on devmem read) — external SPI d こんにちは、 @irfanktm お元気でお過ごしのことと思います。 以下の投稿コミュニティをご覧ください。 https://community.nxp.com/t5/i-MX-Processors/FRDM-IMX93-LPSPI3-EXPI-P11-SPI-pins-produce-no-valid-SPI/td-p/2413472 よろしくお願いいたします。 サラス。
View full article
我想在 EVBMA7518S48V 上运行一个示例。 请帮忙,需要关于将初始程序烧录到该板上的整个工具链流程的详细信息。我已将我们遇到的错误附在下面。我还需要用户指南和手册的链接,另外,入门指南中有一个开放的图形用户界面工具,但我找不到BMA7518的这个工具。 另外,是否有直接的 .hex 文件?或者通过文件之类的东西,我们可以直接运行电路板吗? 用户指南中列出了所需的软件。 我拿到了 s32DS(如果版本重要请说明),但我不知道从哪里下载 unionGUI,我下载了 EVALGUI,但它不支持 7318 或 7518。哪里可以找到示例代码? • S32DS-ARM:S32 设计工作室 • UnionGUI • EVBMA7518S48V 示例代码 WhatsApp 图片 2026-09-16 下午 1:00:17 (1).jpeg WhatsApp 图片 2026-09-16 下午 1:00:17.jpeg Re: EVBMA7518S48V I want to run an example on it 您好, 我仍在与负责 EVBMA7518S48V 开发的团队进行内部核实。我会在收到他们的反馈后立即更新这个帖子。 BRs,托马斯 Re: EVBMA7518S48V I want to run an example on it 谢谢托马斯。
View full article
S32K312 LPUART – 1 Mbpsボーレート、30 MHz LPUARTクロックにおけるフレーミングエラー こんにちは、NXP チームの皆様、 NXP S32K312 MCUを使い、LPUARTペリフェラルを使っています。通信に必要なUARTボーレートは1Mbpsです。 LPUART 6の機能クロックは30MHzです。 最初にUARTを以下のように設定しました。 ボーレート:1,000,000 bps LPUARTクロック:30MHz SBRまたは仮数部:2 OSRまたは除数:15 データビット数:8 パリティ:なし ストップビット: 1 LSBファースト この構成では、通信中にフレーミングエラーが発生することを確認しました。 LPUARTのボーレート計算に関して、以下のことが理解できます。 ボーレート = LPUARTクロック÷SBR×OSR 正確に1Mbpsを実現することを目的とした構成も試してみました。 SBR = 2 OSR = 15 ボーレート = 30 MHz ÷ 2 × 15 = 1 Mbps しかし、依然としてフレーミングエラーが見られます。 921600bpsも試してみましたが、このボーレートでもフレーミングエラーが発生しました。 現在の観測結果 LPUARTクロック:30MHz 必要な通信ボーレート:1Mbps UART構成: 8 N 1 1 Mbpsでフレーミングエラーが観測されました 921600ボーでもフレーミングエラーが観測されています。 通信はTI BQ79600ブリッジを介して行われます。 ロジックアナライザを使用してTX波形を監視しています。 もう少し詳しく教えていただけますか: S32K312 LPUARTは30 MHzのLPUARTクロックで1 MbpsのUART通信を安定してサポートしていますか? 30MHzのクロックで1Mbpsを実現するための、推奨されるOSRとSBRの組み合わせはありますか? 1MbpsにおけるOSR値、SBR値、またはボーレート精度に関して、既知の制限事項や制約はありますか? 信頼性の高い1Mbps通信を実現するために、LPUARTの追加設定は必要ですか? 1Mbpsで通信する場合、LPUARTの推奨クロック周波数はありますか? フレーミング誤差はLPUARTサンプリング構成やクロック許容差に関連している可能性はありますか? 必要に応じてLPUART BAUDレジスタ値、RTD設定、ロジックアナライザのキャプチャも提供できます。 推奨される構成と、追加のデバッグ手順についてご教示ください。 ありがとうございます。 Re: S32K312 LPUART – Framing Error at 1 Mbps Baud Rate with 30 MHz LPUART Clock こんにちは、 @gayathri123 さん、 フレーミング誤差とはレシーバ側の誤差です。したがって、LPUART6_TXとして使用されるPTD9を一時的に再多重化しても、それ自体でLPUARTのフレーミングエラーフラグが設定されるべきではない。このフレーミングエラーは、レシーバが停止ビットを期待していた論理0を検出したことを示しています。   誤差がLPUART6_STAT[FE]で報告されているのか、BQ79600が報告しているのか、それともロジックアナライザだけで報告されているのか、確認していただけますか? 2.75ミリ秒のLOWウェイクアップパルスは、UARTフレームよりもはるかに長い。レシーバが有効なままS32K312 RX入力にもLOWレベルが存在する場合、有効な停止ビットが検出されないため、LPUARTは正しくフレーミングエラーを報告することがあります。したがって、このフラグはウェイクアップフェーズで発生し、通常のUART通信が開始された後も設定されたままになる可能性がある。 テストとして、以下をお試しください。 ピンマルチックスを変更する前に、LPUARTレシーバとトランスミッタを無効にしてください。 GPIOを使用してウェイクアップパルスを生成します。 GPIO出力をHIGHに戻します。 PTD9をLPUART6_TXにリマルチプレクサ。 以前の受信エラーフラグをすべてクリアします。 LPUARTを再度有効にし、BQ79600のウェイクアップ回復に必要な時間が経過するまで待ちます。 有効なコマンドフレームを送信してください。 ウェイクアップパルスの前後のLPUART6_STAT値とともに、TXとRXの両方のロジックアナライザによるキャプチャデータを提供してください。STAT[FE]が設定される正確な瞬間を特定することは特に重要です。 よろしくお願いいたします。 パベル Re: S32K312 LPUART – Framing Error at 1 Mbps Baud Rate with 30 MHz LPUART Clock こんにちは 当社では、 LPUART6を1Mbpsに設定したS32K312を使用しています。PTD9はLPUART6のTXピンとして設定されています。 PTD9を一時的にGPIOとして設定し、その後LPUART6 TXに再多重化すると、UART通信中にフレーミングエラーが発生することが確認されています。 手順は以下のとおりです。 PTD9をGPIOとして設定し、約 2.75ms 間LOWに駆動して 、必要なウェイクアップパルスを生成します。 PTD9 をLPUART6_TXに再多重化します。 LPUART6を介してダミーデータを1Mbpsで送信します。 UART通信中にフレーミングエラーが発生しています。 Re: S32K312 LPUART – Framing Error at 1 Mbps Baud Rate with 30 MHz LPUART Clock こんにちは、 @gayathri123 さん、 詳細な説明をありがとうございました。 まず最初に明確にしておくべき点は、LPUARTのボーレートの計算式です。S32K3 LPUARTの場合、実効ボーレートは次のように計算されます。   ボーレート = LPUART機能クロック / (SBR × (OSR + 1))   したがって、BAUDレジスタにSBR = 2、OSR = 15が格納されている場合、結果として得られるボーレートは次のようになります。   30 MHz / (2 × 16) = 937,500 ボー   したがって、1Mbpsではありません。このずれは、通信相手が1Mbpsで動作している場合、フレーミングエラーを引き起こすのに十分な大きさである。 30 MHzのLPUART機能クロックの場合、以下の方法で正確な1 Mbpsのボーレートを得ることができます:     SBR = 2 OSRレジスタ値 = 14 実効オーバーサンプリング比 = 15   30 MHz / (2 × 15) = 1,000,000 ボー   一部の設定ツールでは実効オーバーサンプリング比が表示される場合がありますが、BAUDレジスタにはこの値から1を引いた値が格納されていることにご注意ください。そのため、初期化後にLPUART6_BAUDレジスタ全体を読み出し、実際のOSRフィールドとSBRフィールドを確認してください。 S32K312 LPUARTは1 Mbpsの通信をサポートできます。30MHzの動作クロックも、ボーレートを正確に生成できるため適している。正しいクロック、ボーレート設定、フレームフォーマット、ピン構成、レシーバ設定以外に特別な追加設定は通常必要ありません。 よろしくお願いいたします。 パベル
View full article
JTAG_TMS pull up or pull down? S32K144 Hello: When I'm reading the safety manual of S32K1xx, there's chapter about debug mode. It says JTAG_TMS shall be pulled low to ensure that JTAGC TAP controller is disabled. How to understand this sentence? Is that mean I shall assert this pin to low by external components during normal operation (non-debug mode) ? Re: JTAG_TMS pull up or pull down? S32K144 Hello @Stanley_Xu , The recommendations in the S32K1xx Safety Manual and AN5426 apply to different use cases. AN5426 recommends a 10 kΩ to 47 kΩ pull-up on the JTAG_TMS/SWD_DIO pin. This is the recommended hardware configuration when JTAG or SWD access is required during development, programming, or debugging. However, the Safety Manual addresses the final in-field configuration of a safety-relevant application. According to Section 5.6.2.1 and assumption SM_047, debugging must be disabled in the field while the device is used for safety-relevant functions. For this operating condition, JTAG_TMS should be held low so that the JTAGC TAP controller remains disabled and cannot unintentionally interfere with normal application operation. Therefore, if the application is required to comply with assumption SM_047 of the S32K1xx Safety Manual, the final production hardware shall provide a means of keeping JTAG_TMS low in the field. This can be implemented using an external pull-down resistor or another system-level solution that guarantees the required low level and prevents an external source from asserting this signal. The TAP state diagram only shows how TMS controls state transitions on the rising edge of TCK. It does not by itself provide permanent debug protection. If an external debugger can actively drive TMS and TCK, the TAP controller can be moved through its state machine. Therefore, the TMS pull-down is a functional-safety measure intended to prevent unintended debug activation, not a security mechanism for permanently locking the debug interface. If debug access is required during development or manufacturing, separate development and production configurations may be necessary. Best regards, Pavel Re: JTAG_TMS pull up or pull down? S32K144 According to RM of Chapter 59 JTAG Controller (JTAGC), TMS status impact entering the dubug mode or not. As the diagram show, when the TMS set to 0, TAP will not enter debug status. So it would be safe to maintain low status while the hardware connection is recommended to pull-up to VDD through resistor 10k-47k according to AN5426
View full article
Unable to Download RTD - Download Option Greyed Out I am unable to download/install the RTD package for the S32K344 board in S32 Design Studio (S32DS). The option to select or download the RTD is greyed out and unavailable. I have restarted S32DS and checked the available updates/packages, but the issue persists. Due to this, I am unable to proceed with the project setup and development activities. Could you please check and advise on the resolution? Details: IDE: S32 Design Studio (S32DS) Target MCU: S32K344 Issue: RTD download option is greyed out Impact: Unable to install/download RTD package   Re: Unable to Download RTD - Download Option Greyed Out Could you see it is the second tab as below?
View full article
没有可用的源 "(gdb[23].proc[42000].threadGroup[i1],gdb[23].proc[42000].OSthread[1]).threa 调试程序后,出现消息“没有可用的源文件 '(gdb[23].proc[42000].threadGroup[i1],gdb[23].proc[42000].OSthread[1]).thread[1].frame[0]'“继续”按钮呈灰色,并弹出窗口。我使用的软件是 S32 Design Studio for ARM 版本 2018.R1。请问如何解决这个问题?谢谢。S32K144EVB Re: No source available for "(gdb[23].proc[42000].threadGroup[i1],gdb[23].proc[42000].OSthread[ 您好, 该消息通常表示调试器在故障处理程序中停止,或者在无效地址处停止,而该地址没有可用的源代码。请尝试重新编译,重启电路板,然后重新启动调试会话。同时确认在 GDB PEMicro 调试配置中选择了正确的 *.elf 文件。 此外,请测试是否可以使用标准的 NXP S32K144 示例项目重现该问题。这将有助于确定问题是否特定应用。 请同时检查您当前安装的 S32 Design Studio for ARM 2018.R1 的更新级别。如果您未使用更新 11(或更高版本),我们建议您应用此更新,因为它包含针对 S32K1xx 设备的修复程序和 SDK 更新。 BR,彼得
View full article