Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
MAYA-W166 与 IW416 如何使用 BT_WAKE_HOST 唤醒主机 请问如何使用 BT_WAKE_HOST 触发操作系统注册器? Re: MAYA-W166 WITH IW416 HOW TO BT_WAKE_HOST 您好, 请问您使用的是什么操作系统和主机? 请查看AN12849 。 问候, 丹尼尔。
查看全文
8M Nanoプロセッサ向けのm7コア i.MX USB実装 8M NanoプロセッサのM7コア i.MX USBを実装するための指針が欲しいです。NXP SDKを使いました。しかしドライブは応答せず、コントローラからの信号も弱いです。 Re: USB implementation on m7 core for i.MX 8M Nano processor こんにちは、 残念ながら、公式の i.MX SDKリリースにはUSB用のドライバーは提供されていません。 i.MXRTなどの他のデバイスから移植することは可能かもしれませんが、PHYとUSBの非コアレジスタが異なるため、移植は容易ではなく、お客様側で実装する必要があります。 よろしくお願いいたします。
查看全文
LPC55S28 CASPER ECC Multiply Execution Time I am trying to figure out if the below code is expected to execute within the time I'm measuring or if I have something set up wrong and it's making it very slow. This code is part of a function that generates a Public Key from given private key using kCASPER_ECC_P256. The below code uses a GPIO toggle to measure execution time. Between the Set and Clear GPIO calls, it takes 337mS. Which seems slow for hardware accelerated math for this operation. Is this expected? My MCU has a core clock of 148MHz. Is there a way to choose the clock source for the CASPER engine to speed this up? /* Base Generator Point G(x, y) for secp256r1 in 32-bit Little-Endian word arrays */ static const uint32_t G_x_le[8] = { 0xD898C296, 0xF4A13945, 0x2DEB33A0, 0x77037D81, 0x63A440F2, 0xF8BCE6E5, 0xE12C4247, 0x6B17D1F2 }; static const uint32_t G_y_le[8] = { 0x37BF51F5, 0xCBB64068, 0x6B315ECE, 0x2BCE3357, 0x7C0F9E16, 0x8EE7EB4A, 0xFE1A7F9B, 0x4FE342E2 }; uint32_t scalar_le[8]; uint32_t Q_x_le[8]; uint32_t Q_y_le[8]; /* Copy Big-Endian private scalar and convert to Little-Endian for CASPER */ memcpy(scalar_le, key_buffer, 32); swap_endian_32((uint8_t *)scalar_le); /* 1. Initialize CASPER coprocessor */ CASPER_Init(CASPER); CASPER_ecc_init(kCASPER_ECC_P256); HW_DB_PinSet(); /* 2. Compute Q = d * G using CASPER hardware */ CASPER_ECC_SECP256R1_Mul( CASPER, Q_x_le, Q_y_le, G_x_le, G_y_le, scalar_le ); HW_DB_PinClear(); 回复: LPC55S28 CASPER ECC Multiply Execution Time Hi @guitardenver  We measured the same operation using the MCUXpresso SDK CASPER example on an LPC55S28 EVK running at 150 MHz. A single call to CASPER_ECC_SECP256R1_Mul() required approximately 24.1 million CPU cycles, corresponding to about 160 ms execution time. Based on this result, the measured 337 ms in your application does not appear unreasonable, especially if additional key formatting, data conversion, initialization, or debug-build overhead is included. CASPER does not provide a separate user-configurable clock source. The execution time is primarily determined by the ECC software implementation that utilizes the CASPER accelerator. BR Harry Re: LPC55S28 CASPER ECC Multiply Execution Time There are a couple things you can do.  But I do not see any configurable clock options for CASPER engine on this MCU. 1. Use O2 optimizations for speed 2. Enable the Flash accelerator prefetch and wait state optimization.  SYSCON->FMCCR |= SYSCON_FMCCR_PREFEN_MASK;   After this I am able to get it down to 160mS   Re: LPC55S28 CASPER ECC Multiply Execution Time I am trying to figure out if the below code is expected to execute within the time I'm measuring or if I have something set up  Hey there! That 337ms for a hardware-accelerated ECC operation definitely sounds a bit high for a 148MHz MCU, even with P256. It's good you're looking into it. Sometimes driver overhead or clocking issues can sneak in. Have you checked the CASPER engine's specific clock source or any available documentation on optimizing its performance?
查看全文
MAYA-W166 WITH IW416 HOW TO BT_WAKE_HOST Please tell me how to trigger OS Registrar using BT_WAKE_HOST. Re: MAYA-W166 WITH IW416 HOW TO BT_WAKE_HOST Hi, Could you please tell me what OS and host are you using? Please take a look at AN12849. Regards, Daniel.
查看全文
基于 i.MX 8M Nano 处理器的 m7 内核上的 USB 实现 我需要一些关于在 i.MX 8M Nano 处理器 m7 核心上实现 USB 的指导,我使用了 nxp sdk。但是驱动器没有反应,控制器发出的信号很弱。 Re: USB implementation on m7 core for i.MX 8M Nano processor 你好, 遗憾的是,官方 i.MX SDK 版本中没有 USB 驱动程序。 或许可以从其他设备(例如 i.MXRT)移植过来,但是 PHY 和 USB 非核心寄存器不同,移植起来并不容易,需要你自己来实现。 顺祝商祺!
查看全文
Regarding the issue of S32K3XX being unable to automatically create a local IP address. Screenshot 2026-09-18 100140.png Screenshot 2026-09-18 100315.png Screenshot 2026-09-18 100756.png Hello: I've created my own local IP address in S32DS and disabled the local IP address in the LWIP protocol stack, but I get an error during single-step debugging, failing to establish a connection, as shown in the bottom right image above. What could be the problem? Is some setting missing? Is it that creating a local IP address is not allowed and must be configured in the protocol stack? Thank you again for taking the time to reply despite your busy schedule! Re: 关于S32K3XX无法自己建立本地IP地址的问题 Hello @sunshine88   , The IPv4 address itself is not the cause of this error. lwIP allows a static IPv4 address to be provided directly through netif_add() . According to the debugger screenshot, netif_add() returns NULL because the network-interface initialization callback, ETHIF_INIT , does not return ERR_OK . Therefore, the failure occurs during initialization of the Ethernet interface or its lower-level driver, before the interface can be added to lwIP. In your TCP/IP Stack configuration screenshot, the Enable iface option is not selected. Please enable the network interface and configure the required static IPv4 address, subnet mask, and gateway there. Then regenerate the configuration and use the initialization sequence from the corresponding S32K3 lwIP example. If you still want to assign the address in the application, please first verify whether netif_add() succeeds. Please note that this only makes the initialization failure easier to detect. It does not correct the underlying GMAC/Ethernet configuration. I recommend first building and running the original lwIP example for your exact S32K3 device and software-package versions without modifying its network initialization. Once the original example works, change only the static IPv4 address and confirm the result. Please also provide the following information if the initialization still fails: Exact S32K3 device and evaluation board S32 Design Studio version RTD and TCP/IP Stack package versions The definition of ETHIF_INIT and the error returned by that function Whether the unmodified lwIP example works on the same hardware It appears that the same question was submitted in three separate Community posts. To keep the troubleshooting information in one place, please continue the discussion in only one of them. Best regads, Pavel
查看全文
S32K311 bootloader porting I am currently porting a working Bootloader project from the S32K312 to the S32K311. I am using S32 Design Studio along with NXP RTD 4.9.0 and the GCC compiler. I am encountering two severe issues related to the Vector Table and Reset Handler that seem specific to the S32K311 / RTD 4.9 environment. Issue 1: Immediate UsageFault on Debugger Reset When launching the PEMicro debugger, the core crashes immediately during the reset script before ever reaching main(). Reset script (...) completed. UsageFault: An instruction executed with an invalid EPSR.T or EPSR.IT field. HardFault: A fault has been escalated to a hard fault. We checked startup_cm7.s and Vector_Table.s. We noticed that Reset_Handler was missing the .type Reset_Handler, %function directive, causing the ELF entry point to be an even address (e.g., 0x00402420 instead of 0x00402421), which naturally causes an ARM-mode UsageFault on the Cortex-M7. Even after fixing the .type directive and ensuring the Vector Table has the LSB set for Thumb mode, the PEMicro debugger still occasionally throws this UsageFault immediately upon reset. Issue 2: Interrupts jump to 0x0 (Uninitialized RAM Vector Table) When we successfully bypass the reset issue and reach main(), the system crashes the moment a hardware interrupt (like FlexCAN or SWT) triggers. The PC jumps to 0x00000000. Upon investigating memory, we found that the RAM vector table at __interrupts_ram_start (0x20000000) is completely uninitialized (filled with zeroes). We discovered that: startup_cm7.s sets VTOR to __RAM_INTERRUPT_START at the end of initialization but never copies the table from ROM. IntCtrl_Ip_Init(&IntCtrlConfig_0) (generated by the Platform component) sets VTOR if INT_CTRL_IP_ENABLE_VTOR_CONFIG is enabled, but it also does not copy the default vector table from flash to RAM. To work around this, we had to write a manual for-loop in main.c to physically copy the vector table from __interrupts_init_start to __interrupts_ram_start and update S32_SCB->VTOR before calling IntCtrl_Ip_InstallHandler(). got the base code from Unified bootloader Demo does anyone know a post where the bootloader for S32K311 with CAN was ported and posted?? Re: S32K311 bootloader porting Hi @ujwal12  For the Cortex-M7, the Reset Handler entry in the vector table must indicate Thumb mode by using an address with the LSB set. If the Reset_Handler symbol is not generated correctly as a function symbol, the linker may place an even address in the vector table, which can lead to a UsageFault during startup. For this reason, we generally do not recommend modifying startup_cm7.s or Vector_Table.s. By design, the S32K3 RTD uses a RAM-based relocatable interrupt vector table. During startup, the vector table is copied from Flash to RAM, and VTOR is updated to point to the RAM-based table. Regarding the availability of an S32K311 bootloader example, there is currently no official bootloader example specifically targeting the S32K311. The closest references available are the Example S32K312 Bootloader to Application Jump DS3.5 RTD300 and the Unified Bootloader Demo that you are already using.  Also, please note that the Unified Bootloader is an unofficial NXP demo that has only been published on the community forum, and therefore it is not supported by NXP technical support. BR, VaneB
查看全文
关于S32K3XX无法自己建立本地IP地址的问题 屏幕截图 2026-09-18 100140.png 屏幕截图 2026-09-18 100315.png 屏幕截图 2026-09-18 100756.png 你好:            现在我在S32DS 中中自己建立本机IP地址,设置LWIP协议栈中本地IP地址失效,但是单步调试时会报错,无法建立链接,如上最下面右侧所示,请问问题出在哪里?是缺少什么设置吗?难道时不允许自己建立本地IP,必须在协议栈中配置吗?          再次感谢在百忙之中回复! Re: 关于S32K3XX无法自己建立本地IP地址的问题 你好@sunshine88 , IPv4 地址本身并不是造成此错误的原因。lwIP 允许通过 netif_add() 直接提供静态 IPv4 地址。 根据调试器截图, netif_add() 返回 NULL ,因为网络接口初始化回调函数 ETHIF_INIT 没有返回 ERR_OK 。因此,故障发生在以太网接口或其底层驱动程序初始化期间,在将接口添加到 lwIP 之前。 在您的 TCP/IP 协议栈配置截图中, “启用接口”选项未被选中。请启用网络接口,并在该接口上配置所需的静态 IPv4 地址、子网掩码和网关。然后重新生成配置,并使用相应的 S32K3 lwIP 示例中的初始化序列。 如果您仍然想在应用程序中分配地址,请先验证 netif_add() 是否成功。 请注意,这只是使初始化失败更容易被检测到。它无法修正底层 GMAC/以太网配置。 我建议首先针对您的 S32K3 设备和软件包版本构建并运行原始的 lwIP 示例,不要修改其网络初始化。如果原示例运行正常,则仅更改静态 IPv4 地址并确认结果。 如果初始化仍然失败,请同时提供以下信息: 精确的 S32K3 设备和评估板 S32 设计工作室版本 RTD 和 TCP/IP 协议栈软件包版本 ETHIF_INIT 的定义以及该函数返回的错误 未经修改的 lwIP 示例是否能在相同的硬件上运行 同一个问题似乎在三个不同的社区帖子中被提交了。为了将故障排除信息集中在一个地方,请只在一个地方继续讨论。 此致敬礼, 帕维尔
查看全文
LPC55S28 CASPER ECC 乘法执行时间 我正在尝试弄清楚下面的代码是否应该在我测量的时间内执行完毕,或者我的设置是否出错导致它运行速度非常慢。这段代码是使用 kCASPER_ECC_P256 从给定的私钥生成公钥的函数的一部分。 以下代码使用 GPIO 开关来测量执行时间。设置和清除 GPIO 调用之间需要 337 毫秒。对于这种硬件加速的数学运算来说,这个速度似乎太慢了。这是预期之内的吗?我的MCU核心时钟频率为148MHz。有没有办法选择 CASPER 引擎的时钟源来加快速度? /* Base Generator Point G(x, y) for secp256r1 in 32-bit Little-Endian word arrays */ static const uint32_t G_x_le[8] = { 0xD898C296, 0xF4A13945, 0x2DEB33A0, 0x77037D81, 0x63A440F2, 0xF8BCE6E5, 0xE12C4247, 0x6B17D1F2 }; static const uint32_t G_y_le[8] = { 0x37BF51F5, 0xCBB64068, 0x6B315ECE, 0x2BCE3357, 0x7C0F9E16, 0x8EE7EB4A, 0xFE1A7F9B, 0x4FE342E2 }; uint32_t scalar_le[8]; uint32_t Q_x_le[8]; uint32_t Q_y_le[8]; /* Copy Big-Endian private scalar and convert to Little-Endian for CASPER */ memcpy(scalar_le, key_buffer, 32); swap_endian_32((uint8_t *)scalar_le); /* 1. Initialize CASPER coprocessor */ CASPER_Init(CASPER); CASPER_ecc_init(kCASPER_ECC_P256); HW_DB_PinSet(); /* 2. Compute Q = d * G using CASPER hardware */ CASPER_ECC_SECP256R1_Mul( CASPER, Q_x_le, Q_y_le, G_x_le, G_y_le, scalar_le ); HW_DB_PinClear(); 回复: LPC55S28 CASPER ECC Multiply Execution Time 嗨@guitardenver 我们使用 MCUXpresso SDK CASPER 示例在运行频率为 150 MHz 的 LPC55S28 EVK 上测量了相同的操作。对 CASPER_ECC_SECP256R1_Mul() 的一次调用大约需要 2410 万个 CPU 周期,相当于大约 160 毫秒的执行时间。 根据这一结果,您应用程序中测得的 337 毫秒似乎并不算不合理,特别是如果考虑到额外的密钥格式化、数据转换、初始化或调试版本开销的话。 CASPER 不提供单独的用户可配置时钟源。执行时间主要取决于使用 CASPER 加速器的 ECC 软件实现。 BR 哈里 Re: LPC55S28 CASPER ECC Multiply Execution Time 你可以做以下几件事。但是,我没有在这个MCU上看到CASPER引擎的任何可配置时钟选项。 1. 使用 O2 优化来提高速度 2.启用 Flash 加速器预取和等待状态优化。 SYSCON -> FMCCR |= SYSCON_FMCCR_PREFEN_MASK ;   之后我把它降到了160毫秒。   Re: LPC55S28 CASPER ECC Multiply Execution Time 我正在尝试弄清楚下面的代码是否应该在我测量的时间内执行,或者我是否设置了某些限制。 嘿!即使使用 P256,对于 148MHz 的 MCU 来说,硬件加速的 ECC 操作耗时 337 毫秒也确实有点高。你调查这件事是件好事。有时驱动程序开销或时钟问题可能会悄悄出现。您是否检查过 CASPER 引擎的具体时钟源,或者是否有任何关于优化其性能的可用文档?
查看全文
Is there a way to prevent task switching while BluetoothLEHost_Init() is executing? Hi, I have a question regarding BluetoothLEHost_Init() in the KW47 SDK. My application is running on FreeRTOS, and several tasks are created in advance using xTaskCreateStatic(). After creating these tasks, I call BluetoothLEHost_Init() to initialize BLE. While stepping through the SDK, I observed that during communication with the NBU, the initialization process waits for inter-task events. As a result, other lower-priority tasks are scheduled and start running while BluetoothLEHost_Init() is still executing and before the function call itself returns. To clarify, I am not referring to the host initialization completion callback provided to BluetoothLEHost_Init(). I do not need to wait for that callback. My concern is that task switching occurs before BluetoothLEHost_Init() returns. I would like to prevent other application tasks from running until the BluetoothLEHost_Init() function call itself has returned. My questions are: ・Is there any configuration, API, or recommended method to prevent task switching while BluetoothLEHost_Init() is executing (for example, while waiting for NBU communication)? ・Is there a way to ensure that BluetoothLEHost_Init() completes and returns without yielding execution to other tasks? ・If such a method exists, could you please provide guidance or an example of the recommended approach? My goal is to ensure that no application tasks begin their normal processing until BluetoothLEHost_Init() has returned. Any advice would be greatly appreciated. Re: Is there a way to prevent task switching while BluetoothLEHost_Init() is executing? Hi @t_hosomi, hope you are doing well. You can hold the execution of other tasks with different FreeRTOS approaches as explained below: Suspend tasks (vTaskSuspend) after creating them before starting the scheduler, this will make the task start in a suspended state which will make the scheduler not to switch to other tasks. Therefore, after returning from the BLE initialization, you would resume their execution (vTaskResume). Create an event group that blocks all tasks you require to run after BLE initialization and configure the wait for the event group bits to be indefinite. This approach would require jumping to each task and block them through the event group wait time, this will make the tasks to be inactive until the event group bits are cleared by the BLE initialization task. For both options I'd suggest referring to the FreeRTOS Reference Manual and for the second option, you may refer to the "freertos_event_cm33_core0" example from the SDK as it demonstrates how to create event groups and set tasks to wait for events. Please let me know if the information helps cover your requirements.
查看全文
Regarding the issue of S32K3XX failing to establish its own IP address on the LWIP protocol stack. Screenshot 2026-09-18 100140.png Screenshot 2026-09-18 100315.png Screenshot 2026-09-18 100756.png Hello: I've created my own local IP address in S32DS and disabled the local IP address in the LWIP protocol stack, but I get an error during single-step debugging, failing to establish a connection, as shown in the bottom right image above. What could be the problem? Is some setting missing? Is it that creating a local IP address is not allowed and must be configured in the protocol stack? Thank you again for taking the time to reply despite your busy schedule! Re: 关于S32K3XX 在LWIP 协议栈上自己建立IP地址无法建立的问题 Hello @sunshine88 , The IPv4 address itself is not the cause of this error. lwIP allows a static IPv4 address to be provided directly through netif_add() . According to the debugger screenshot, netif_add() returns NULL because the network-interface initialization callback, ETHIF_INIT , does not return ERR_OK . Therefore, the failure occurs during initialization of the Ethernet interface or its lower-level driver, before the interface can be added to lwIP. In your TCP/IP Stack configuration screenshot, the Enable iface option is not selected. Please enable the network interface and configure the required static IPv4 address, subnet mask, and gateway there. Then regenerate the configuration and use the initialization sequence from the corresponding S32K3 lwIP example. If you still want to assign the address in the application, please first verify whether netif_add() succeeds. Please note that this only makes the initialization failure easier to detect. It does not correct the underlying GMAC/Ethernet configuration. I recommend first building and running the original lwIP example for your exact S32K3 device and software-package versions without modifying its network initialization. Once the original example works, change only the static IPv4 address and confirm the result. Please also provide the following information if the initialization still fails: Exact S32K3 device and evaluation board S32 Design Studio version RTD and TCP/IP Stack package versions The definition of ETHIF_INIT and the error returned by that function Whether the unmodified lwIP example works on the same hardware It appears that the same question was submitted in three separate Community posts. To keep the troubleshooting information in one place, please continue the discussion in only one of them. Best regads, Pavel
查看全文
BluetoothLEHost_Init() の実行中にタスクの切り替えを防止する方法はありますか? こんにちは、 KW47 SDKのBluetoothLEHost_Init()について質問があります。 私のアプリケーションはFreeRTOS上で動作しており、いくつかのタスクはxTaskCreateStatic()を使って事前に作成しています。 これらのタスクを作成した後、BluetoothLEHost_Init() を呼び出して BLE を初期化します。SDKsをステップアップしていると、NBUとの通信中に初期化プロセスがタスク間イベント情報を待っていることに気づきました。その結果、BluetoothLEHost_Init() がまだ実行中で、関数呼び出し自体が戻る前に、他の優先度の低いタスクがスケジュールされ、実行が開始されます。 念のため申し上げますが、私が言及しているのは、BluetoothLEHost_Init() に提供されるホスト初期化完了コールバックのことではありません。私はそのコールバックを待つ必要はありません。 私が懸念しているのは、BluetoothLEHost_Init() が戻る前にタスク切り替えが発生することです。BluetoothLEHost_Init()関数呼び出し自体が戻るまで、他のアプリケーションタスクの実行を防ぎたいです。 私の質問は以下のとおりです。 ・BluetoothLEHost_Init()を実行している間(例えばNBU通信待ち中)にタスク切り替えを防ぐための設定、API、または推奨される方法はありますか? ・BluetoothLEHost_Init()が完了し戻ることを他のタスクに譲ることなく確実にする方法はありますか? ・もしそのような方法が存在するなら、推奨される方法の指針や例を教えていただけますか? 私の目標は、BluetoothLEHost_Init()が戻るまで、アプリケーションタスクが通常のプロセッシングを開始しないようにすることです。 どんなアドバイスでも大変ありがたいです。 Re: Is there a way to prevent task switching while BluetoothLEHost_Init() is executing? こんにちは、 @t_hosomi さん。お元気でお過ごしでしょうか。 以下に説明するように、異なるFreeRTOSアプローチで他のタスクの実行を保留することができます: スケジューラを起動する前にタスクを作成した後、タスクを一時停止(サスペンド)すると、タスクが一時停止状態に始まるため、スケジューラが他のタスクに切り替わらなくなります。したがって、BLEの初期化から戻った後、それらの実行を再開します(vTaskResume)。 BLE初期化後に実行すべきすべてのタスクをブロックするイベントグループを作成し、イベントグループのビットを無期限に待つ設定をしてください。この方法は各タスクにジャンプし、イベントグループの待ち時間でブロックする必要があり、これによりBLE初期化タスクによってイベントグループのビットがクリアされるまでタスクは非アクティブになります。 どちらの選択肢も FreeRTOSリファレンスマニュアル を参照することをお勧めします。後者については、イベントグループの作成方法やイベント待ちタスクの設定を示すSDKの「freertos_event_cm33_core0」例を参照することをお勧めします。 この情報がご要望にお応えできるかどうか、お知らせください。
查看全文
关于S32K3XX 在LWIP 协议栈上自己建立IP地址无法建立的问题 屏幕截图 2026-09-18 100140.png 屏幕截图 2026-09-18 100315.png 屏幕截图 2026-09-18 100756.png 你好:            现在我在S32DS 中中自己建立本机IP地址,设置LWIP协议栈中本地IP地址失效,但是单步调试时会报错,无法建立链接,如上最下面右侧所示,请问问题出在哪里?是缺少什么设置吗?难道时不允许自己建立本地IP,必须在协议栈中配置吗?          再次感谢在百忙之中回复! Re: 关于S32K3XX 在LWIP 协议栈上自己建立IP地址无法建立的问题 你好@sunshine88 , IPv4 地址本身并不是造成此错误的原因。lwIP 允许通过 netif_add() 直接提供静态 IPv4 地址。 根据调试器截图, netif_add() 返回 NULL ,因为网络接口初始化回调函数 ETHIF_INIT 没有返回 ERR_OK 。因此,故障发生在以太网接口或其底层驱动程序初始化期间,在将接口添加到 lwIP 之前。 在您的 TCP/IP 协议栈配置截图中, “启用接口”选项未被选中。请启用网络接口,并在该接口上配置所需的静态 IPv4 地址、子网掩码和网关。然后重新生成配置,并使用相应的 S32K3 lwIP 示例中的初始化序列。 如果您仍然想在应用程序中分配地址,请先验证 netif_add() 是否成功。 请注意,这只是使初始化失败更容易被检测到。它无法修正底层 GMAC/以太网配置。 我建议首先针对您的 S32K3 设备和软件包版本构建并运行原始的 lwIP 示例,不要修改其网络初始化。如果原示例运行正常,则仅更改静态 IPv4 地址并确认结果。 如果初始化仍然失败,请同时提供以下信息: 精确的 S32K3 设备和评估板 S32 设计工作室版本 RTD 和 TCP/IP 协议栈软件包版本 ETHIF_INIT 的定义以及该函数返回的错误 未经修改的 lwIP 示例是否能在相同的硬件上运行 同一个问题似乎在三个不同的社区帖子中被提交了。为了将故障排除信息集中在一个地方,请只在一个地方继续讨论。 此致敬礼, 帕维尔
查看全文
有没有办法防止在 BluetoothLEHost_Init() 执行期间进行任务切换? 您好, 我有一个关于 KW47 SDK 中的 BluetoothLEHost_Init() 的问题。 我的应用程序运行在 FreeRTOS 上,并且预先使用 xTaskCreateStatic() 创建了几个任务。 创建这些任务后,我调用 BluetoothLEHost_Init() 来初始化 BLE。在逐步调试 SDK 的过程中,我观察到在与 NBU 通信期间,初始化过程会等待任务间事件。因此,其他优先级较低的任务会被安排并在 BluetoothLEHost_Init() 仍在执行且函数调用本身返回之前开始运行。 需要澄清的是,我指的不是提供给 BluetoothLEHost_Init() 的主机初始化完成回调。我不需要等待回调。 我担心任务切换发生在 BluetoothLEHost_Init() 返回之前。我希望阻止其他应用程序任务运行,直到 BluetoothLEHost_Init() 函数调用本身返回为止。 我的问题是: ・是否有任何配置、API 或推荐的方法来防止在 BluetoothLEHost_Init() 执行期间(例如,在等待 NBU 通信期间)发生任务切换? ・有没有办法确保 BluetoothLEHost_Init() 完成并返回,而不将执行权让给其他任务? ・如果存在这样的方法,能否请您提供指导或推荐方法的示例? 我的目标是确保在 BluetoothLEHost_Init() 返回之前,任何应用程序任务都不会开始正常处理。 任何建议都将不胜感激。 Re: Is there a way to prevent task switching while BluetoothLEHost_Init() is executing? 嗨@t_hosomi ,希望你一切都好。 您可以使用以下所述的不同 FreeRTOS 方法来暂停其他任务的执行: 在启动调度程序之前创建任务(vTaskSuspend),这将使任务以挂起状态启动,从而使调度程序不会切换到其他任务。因此,从 BLE 初始化返回后,您将恢复它们的执行(vTaskResume)。 创建一个事件组,阻止所有需要在 BLE 初始化后运行的任务,并将事件组位的等待时间配置为无限期。这种方法需要跳转到每个任务,并在事件组等待时间内阻塞它们,这将使任务处于非活动状态,直到 BLE 初始化任务清除事件组位。 对于这两种选择,我都建议参考FreeRTOS 参考手册;对于第二种选择,您可以参考 SDK 中的“freertos_event_cm33_core0”示例,因为它演示了如何创建事件组和设置任务以等待事件。 请告诉我这些信息是否符合您的要求。
查看全文
S32K3XXがLWIPプロトコルスタック上で自身のIPアドレスを確立できない問題について。 スクリーンショット 2026-09-18 100140.png スクリーンショット 2026-09-18 100315.png スクリーンショット 2026-09-18 100756.png こんにちは: S32DSで独自のローカルIPアドレスを作成し、LWIPプロトコルスタックでローカルIPアドレスを無効にしましたが、上の右下の画像に示すように、シングルステップデバッグ中に接続確立に失敗するエラーが発生します。何が問題なのでしょうか?設定が不足しているのでしょうか?ローカルIPアドレスの作成は許可されておらず、プロトコルスタックで設定する必要があるということでしょうか? お忙しい中、お返事いただき、改めてありがとうございました! Re: 关于S32K3XX 在LWIP 协议栈上自己建立IP地址无法建立的问题 こんにちは、@sunshine88 さん。 IPv4アドレス自体がこのエラーの原因ではありません。lwIPでは、 netif_add() を介して静的IPv4アドレスを直接提供できます。 デバッガのスクリーンショットによると、 netif_add() はネットワークインターフェースの初期化コールバック ETHIF_INIT が ERR_OK 返さないため、 NULL を返します。したがって、エラーはイーサネットインターフェースまたはその下位ドライバの初期化時に発生し、インターフェースがlwIPに追加される前に発生します。 TCP/IPスタック構成のスクリーンショットでは、 「ifaceを有効にする」オプションが選択されていません。ネットワークインターフェースを有効にし、必要な静的IPv4アドレス、サブネットマスク、ゲートウェイを設定してください。次に、設定を再生成し、対応するS32K3 lwIPの例にある初期化シーケンスを使用します。 アプリケーションで住所を割り当てたい場合は、まず成功 netif_add() 確認してください。 これは初期化の失敗を検出しやすくするだけのものであることにご注意ください。GMAC/イーサネットの基礎設定を修正するわけではありません。 まずは、ネットワーク初期化を変更しずに、あなたのS32K3デバイスとソフトウェアパッケージのバージョンに合わせて元のlwIP例をビルドし実行することをお勧めします。元の例が正常に動作したら、静的IPv4アドレスのみを変更して結果を確認してください。 初期化がそれでも失敗する場合は、以下の情報も提供してください。 正確なS32K3デバイスと評価ボード S32 Design Studio版 RTDおよびTCP/IPスタックパッケージのバージョン ETHIF_INIT の定義と、その関数が返すエラー 変更されていないlwIPの例が同じハードウェアで動作するかどうか 同じ質問が3つの別々のコミュニティ投稿で寄せられたようです。トラブルシューティング情報を一箇所にまとめるため、議論はどちらか一方のフォーラムのみで行ってください。 よろしくお願いいたします。 パベル
查看全文
Regarding the issue of S32K3XX failing to establish its own IP address on the LWIP protocol stack. Hello: I've created my own local IP address in S32DS and disabled the local IP address in the LWIP protocol stack, but I get an error during single-step debugging, failing to establish a connection, as shown in the bottom right image above. What could be the problem? Is some setting missing? Is it that creating a local IP address is not allowed and must be configured in the protocol stack? Thank you again for taking the time to reply despite your busy schedule! 回复: 关于S32K3XX 在LWIP 协议栈上自己建立IP地址无法建立的问题 Hello @sunshine88 , Yes, Enable iface must remain selected because the generated configuration is required to initialize the Ethernet interface and connect it to lwIP. Disabling the interface and creating it only through your own netif_add() call is therefore not the correct approach for this example. For initial testing, please configure the static IPv4 address, subnet mask and gateway on the TCP/IP Stack configuration page and regenerate the code. The IP address may still be changed programmatically after the interface has been initialized, but the generated interface configuration itself must not be omitted. Best regards, Pavel 回复: 关于S32K3XX 在LWIP 协议栈上自己建立IP地址无法建立的问题 As mentioned above, after successfully running the LWIP Demo, all IP configurations must be done through the configuration page; manual configuration is not allowed, nor can IP configuration be disabled. The S32DS version I used is S32 Design Studio for S32 Platform Version: 3.5, and the RTD version is V4.0.0.The TCPIP_STACK version is V1.0.4. I'm confirming again, the IP address must be configured in the settings page. You cannot configure it manually in the disabled IP configuration page! Screenshot 2026-09-18 164944.png Screenshot 2026-09-18 165031.png Screenshot 2026-09-18 165228.png 回复: 关于S32K3XX 在LWIP 协议栈上自己建立IP地址无法建立的问题 Hello @sunshine88 , The IPv4 address itself is not the cause of this error. lwIP allows a static IPv4 address to be provided directly through netif_add() . According to the debugger screenshot, netif_add() returns NULL because the network-interface initialization callback, ETHIF_INIT , does not return ERR_OK . Therefore, the failure occurs during initialization of the Ethernet interface or its lower-level driver, before the interface can be added to lwIP. In your TCP/IP Stack configuration screenshot, the Enable iface option is not selected. Please enable the network interface and configure the required static IPv4 address, subnet mask, and gateway there. Then regenerate the configuration and use the initialization sequence from the corresponding S32K3 lwIP example. If you still want to assign the address in the application, please first verify whether netif_add() succeeds. Please note that this only makes the initialization failure easier to detect. It does not correct the underlying GMAC/Ethernet configuration. I recommend first building and running the original lwIP example for your exact S32K3 device and software-package versions without modifying its network initialization. Once the original example works, change only the static IPv4 address and confirm the result. Please also provide the following information if the initialization still fails: Exact S32K3 device and evaluation board S32 Design Studio version RTD and TCP/IP Stack package versions The definition of ETHIF_INIT and the error returned by that function Whether the unmodified lwIP example works on the same hardware It appears that the same question was submitted in three separate Community posts. To keep the troubleshooting information in one place, please continue the discussion in only one of them. Best regads, Pavel 回复: 关于S32K3XX 在LWIP 协议栈上自己建立IP地址无法建立的问题 Screenshot 2026-09-18 100140.png Screenshot 2026-09-18 100315.png Screenshot 2026-09-18 100756.png The above issue did not include uploaded code lines. Please check...
查看全文
S32DSライセンスの有効期限が切れました こんにちは、NXPサポートチームの皆さん、 私のS32DS v2.2ライセンスは2026年8月24日に期限切れとなりました。ライセンスの延長を手伝ってもらえますか? アクティベーションコード:563B-6314-7B07-7945 ご支援ありがとうございます。 Re: S32DS License Expired こんにちは、 お客様のS32DSライセンスが延長されました。以前のコードを使用して、S32DSを再度有効化してください。
查看全文
i.MX8M-Plus RDC Sema42 用于簇内隔离 我想使用 i.MX8M-Plus 上的 RDC 来隔离 A53 集群中的核心。是否可以使用 RDC 信号量来禁止 A53 集群中的某些 CPU 访问外围设备? 参考手册 IMX8MPRM Rev 3 对门寄存器 RDC_SEMAPHOREx_GATEn 中的 GTFSM 字段的工作方式没有完全说明(第 3.2.6.1 节)。它有 2 位用于指示锁定域,4 位用于指示哪个“处理器”正在锁定信号量。 这里的“处理器”是指集群(例如A53、M7)还是集群中的一个核心? 如果 A53 集群上的 core0 将信号量锁定到 UART1,core1...3 还能访问 UART1 吗? Re: i.MX8M-Plus RDC Sema42 for intra-cluster isolation 否。 在 i.MX8M Plus 上,RDC 信号量“处理器”是总线主控/RDC 主控,而不是单独的 A53 内核。对于远程桌面连接 (RDC) 而言,A53 集群显示为一个 A53 平台功能域。A53 四核集群被视为一个单一的主功能域,这意味着所有四个 A53 核心(core0–core3)都属于同一个 RDC 功能域。因此,Sema42 信号量的 GTFSM 字段标识的是哪个功能域(例如,A53 簇与 M7 核心)持有锁,而不是簇内的哪个单个核心。 因此,如果 A53 core0 锁定 UART1 的信号量,则 A53 core1–3 不会单独被该 RDC 信号量阻塞。如果它们在同一个 A53/RDC 功能域中,它们仍然可以访问 UART1。 对于集群内核心隔离,您需要依赖软件级机制(例如操作系统级资源管理或自旋锁),而不是硬件 RDC/Sema42。 Re: i.MX8M-Plus RDC Sema42 for intra-cluster isolation 谢谢你的回复。 i.MX 8QuadMax 有两个核心复合物(A53 和 A72)。是否可以使用 xRDC2 将这两个复合物区分开来? Re: i.MX8M-Plus RDC Sema42 for intra-cluster isolation 是的,A53 与 A72 隔离是一个有效的用例,前提是将它们建模为单独的 SCFW 资源分区并相应地分配资源。这与试图将 A53 core0 与 A53 core1 隔离不同,xRDC2 的设计目的并非如此。
查看全文
S32K118 中断 大家好, 我正在尝试在 LPTI 定时器或 LPTMR0 定时器上设置中断。 两个计时器都运行正常(结束计数标志将被结算),但 无法获取中断。 我使用的是S32K118评估板和S32DS IDE。 有人能帮帮我吗? 先行致谢。 Re: S32K118 Interrupts 您还可以通过安装“S32SDK_S32K1xx_RTM_4.0.2.exe”来获取中断示例。 Re: S32K118 Interrupts HI 请参考 S32DS v3.4 的 S32K1 SDK 4.0.3 中的 LPIT 和 LPTMR 中断示例。 lpit lptmr 中断 S32K1 SDK RTM 4.0.3.png 此致, 罗宾 ------------------------------------------------------------------------------- 笔记: - 如果此回复解答了您的问题,请点击“标记为正确答案”按钮。谢谢你! - 我们会持续关注帖子,从最后一条回复发出后持续7周,之后的回复将被忽略。 如果您之后有相关问题,请另开新帖并引用已关闭的帖子。 -------------------------------------------------------------------------------
查看全文
i.MX8 PCIe RC PERSTの外部プルダウン設計に関する技術的問い合わせ 背景: 現在、PERST#はi.MX8の通常のGPIOによって制御されており、外部プルアップ抵抗やプルダウン抵抗は追加されていません。電源投入時のブートROM/SPLステージでは、GPIO PADは初期化されず、高インピーダンスのフローティング状態のままです。ノイズの多い環境では、ピンレベルがトグルし、PCIeエンドポイントデバイスの異常リセットが発生してリンクが確立されません。フローティングノイズを除去するために外部抵抗を追加することを計画しており、2つの案を作成しました。NXPの公式見解を伺いたいと考えています。 スキーム1:プルアップ抵抗を3.3Vに接続する ブートローダーがGPIOを設定する前は、PADは高インピーダンス状態にあります。PERST#は連続的にハイに引き出され、リセットは早期に解除されるため、PCIe CEM仕様のTPV_PERSTのタイミング要件を満たせません(PERST#は電源が安定した後、少なくとも100msはアサート状態を保たなければなりません)。これにより電源オンの信頼性が低下しますか?NXPはこの方式を承認していますか? スキーム2:プルダウン抵抗をGNDに接続する ブート段階ではPERST#は低く保たれ、電源オン時のリセットタイミング要件を満たすことができます。しかし、通常システム動作中にプルダウン抵抗と外部ノイズの組み合わせでPERST#が予期せず低く引き込まれ、予期せぬデバイスリセットを引き起こす懸念があります。このリスクは現実的なのでしょうか?NXPはどのくらいの抵抗値を推奨していますか? 重要な質問: 公式に推奨されているシナリオ、つまりi.MX8 GPIOがPERST#を制御する場合、NXPは外部プルダウン抵抗の追加を許可していますか、それとも外部プルアップ/プルダウン抵抗を明示的に禁止していますか?PERST#を生成するためにPORハードウェア遅延回路を使用することは推奨されますか? ご返信をお待ちしております。ありがとう!       Re: Technical Inquiry External Pull--down Design for i.MX8 PCIe RC PERST EPの場合、EPの電源はRCによって制御され、RCがEPの電源をオンにするとRSTもRCで制御され、電源投入のタイミングが達成されます。あなたの用途では、EPをIMX8と一緒に電源を入れ、その後EPの電源アップシーケンスに合わせて外部10kプルダウンを追加するのが推奨されています。あなたが言及したノイズ効果(RSTのフローティングによるもの)については、外部10k電源ダウンによって除去されます。(他に強力な外部懸垂器具がない場合)。    
查看全文