Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
S32K312用RTDの取り付け 私はS32K312のために、S32 Design Studio v 3.6.6 で以下の開発環境を設定しようとしています。 1. SW32K3_S32M27x_RTD_R23-11_7.0.1_D2603_DesignStudio_updatesite.zip をダウンロードしました。 2. S32 Design Studio 3.6.6で「S32拡張とアップデート」を開いたWindows 11で動作し、S32K3のリアルタイム・ドライバをインストールしました(示す通り): durga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.png 3. IDEを再起動するよう促されたら(PCの再起動も試しました) これではK3ファミリのサポートが見当たりません。「新規プロジェクト」ダイアログには、このオプションは表示されません。 durga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.png 下記のように「S32K3XX」ドライバーをインストールしようとすると: durga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.png 以下のようなエラーが表示されます。 durga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.png この一連のプロセスをS32DS v.6.2で繰り返すと少し改善されました。「新しいプロジェクト」ダイアログにK312のオプションが表示されていますが、SDKは表示されていません。 durga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.png 私は何が間違っているのでしょうか? Re: Installing RTD for S32K312 こんにちは、 @VaneBさん 残念ながら、S32DS 3.6.6 には同等の機能がありません。また、RTDのバージョンを7.0.1から6.0.0にダウングレードしてみました。 3.6.6で動作する特定のバージョンはありますか? Re: Installing RTD for S32K312 こんにちは、 @durga_choudhuryさん このスクリーンショットは私のS32DS 3.6.10のものです。インストール;しかし、あなたのIDEでも同様のセットアップが見られるはずです。 VaneB_0-1788893776567.pngVaneB_0-1788893776567.pngVaneB_0-1788893776567.pngVaneB_0-1788893776567.pngVaneB_0-1788893776567.pngVaneB_0-1788893776567.pngVaneB_0-1788893776567.pngVaneB_0-1788893776567.pngVaneB_0-1788893776567.pngVaneB_0-1788893776567.png また、あなたが共有してくれたスクリーンショットを見る限り、RTD 7.0.1をインストールできているのがわかります。RTD 7.0.1はS32K3開発パッケージに依存しているため、すでにそのパッケージがインストールされている可能性が高いです。 Re: Installing RTD for S32K312 こんにちは、 @VaneBさん あなたのコメントについて、もう少し詳しく説明してください。 S32K1xx用の「開発パッケージ」がインストールされているのを確認しました(これも私が使っているMCUファミリです): durga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.png しかし、K3には同様のものは見当たらない。 では、どうやってインストールすればいいのでしょうか?繰り返しますが、これまでに私がやったことは以下の通りです: 1. SW32K3_S32M27x_RTD_R23-11_7.0.1_D2603_DesignStudio_updatesite.zip をダウンロードしました 2. S32 DS v 3.6.6にアップデートサイトとして追加しました。 3. 以下のものをインストールしました。 durga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.png Re: Installing RTD for S32K312 こんにちは、 @durga_choudhuryさん S32DS 3.6.6からインストール時には、S32K3開発パッケージがインストールされていないようです。 S32DS 3.6.2に関して、RTD 7.0.1はS32DS 3.6.4を使用して開発および検証されたことにご注意ください。したがって、S32DS 3.6.4 の使用をお勧めします。または、互換性を確保し、潜在的な問題を回避するために、より新しいリリースを使用してください。 他に確認すべき点として、ツールチェーンが挙げられます。プロジェクトを作成する際は、NXP GCC 10.2.0がインストールされ、プロジェクトツールチェーンとして選択されていることを確認してください。 BR、VaneB Re: Installing RTD for S32K312 こんにちは、 @durga_choudhuryさん 私の環境では、RTD 7.0.0を使用しています。S32DS 3.6.6と共にインストールされました。しかし、前述のとおり、これらのバージョン間でセットアップ方法が非常に似ているため、RTD 7.0.1は問題なく動作するはずです。 設置の詳細を教えていただけますか? Re: Installing RTD for S32K312 こんにちは、 @VaneBさん サポートありがとうございます。URLをもう一度確認してもらえますか?この方法でアップデートしようとすると、S32 DS から次のようなエラーが発生します。 durga_choudhury_0-1789063889394.pngdurga_choudhury_0-1789063889394.pngdurga_choudhury_0-1789063889394.pngdurga_choudhury_0-1789063889394.pngdurga_choudhury_0-1789063889394.pngdurga_choudhury_0-1789063889394.pngdurga_choudhury_0-1789063889394.pngdurga_choudhury_0-1789063889394.png 例えば、RESTタイプのアプリケーションでアクセスしようとすると、wgetを実行すると、HTTPエラー404(見つかりません)が発生します。 それはNXP内部の問題かもしれません(つまり、(公開サーバーではない)? Re: Installing RTD for S32K312 こんにちは、 @durga_choudhuryさん 以下の方法を試していただけますか?S32DSでは「新しいソフトウェアをインストールする→ヘルプ」へ行きます...これによりインストールウィンドウが開きます。「作業対象:」フィールドに、次の更新サイトを入力します。 https://www.nxp.com/lgfiles/updates/Eclipse/S32DS_3.6 利用可能なアップデートの一覧が、以下に示すような形で表示されます。リストにS32 Design Studio S32K3xx開発パッケージが見つかるか確認し、インストールを試してみてください。 VaneB_0-1789057150680.pngVaneB_0-1789057150680.pngVaneB_0-1789057150680.pngVaneB_0-1789057150680.pngVaneB_0-1789057150680.pngVaneB_0-1789057150680.pngVaneB_0-1789057150680.png パッケージが表示されなかったりインストールが失敗した場合は、最新のS32DSバージョンへのアップデートをおすすめします。現在のインストール環境に一部のコンポーネントが不足しているか、インストール/アップデート中に何らかの破損が発生した可能性があります。 Re: Installing RTD for S32K312 こんにちは、 @VaneBさん 以下に、私が試した2つのファイルを示します(どちらも同じ問題が発生しました)。 durga_choudhury_0-1789048352154.pngdurga_choudhury_0-1789048352154.pngdurga_choudhury_0-1789048352154.pngdurga_choudhury_0-1789048352154.pngdurga_choudhury_0-1789048352154.pngdurga_choudhury_0-1789048352154.png S32DSに関する情報は以下のとおりです。 durga_choudhury_1-1789048467186.pngdurga_choudhury_1-1789048467186.pngdurga_choudhury_1-1789048467186.pngdurga_choudhury_1-1789048467186.pngdurga_choudhury_1-1789048467186.pngdurga_choudhury_1-1789048467186.png 以下に、インストール手順の詳細を、1枚のスクリーンショットに収まる範囲で示します。他に何か情報が必要ですか? durga_choudhury_2-1789048687291.pngdurga_choudhury_2-1789048687291.pngdurga_choudhury_2-1789048687291.pngdurga_choudhury_2-1789048687291.pngdurga_choudhury_2-1789048687291.pngdurga_choudhury_2-1789048687291.png Re: Installing RTD for S32K312 こんにちは、 @VaneBさん 残念ながら、私の環境では動作しません。 durga_choudhury_0-1789083559046.pngdurga_choudhury_0-1789083559046.pngdurga_choudhury_0-1789083559046.pngdurga_choudhury_0-1789083559046.pngdurga_choudhury_0-1789083559046.png Re: Installing RTD for S32K312 こんにちは、 @durga_choudhuryさん 提供されたリンクは通常のウェブアドレスではないことにご注意ください。これはS32DSが利用可能なソフトウェアパッケージやアップデートにアクセスするためのアップデートサイトに対応しています。 更新サイトの完全なリストを表示するには、S32DS拡張機能と更新ウィンドウを開き、「サイトの管理」を選択します。そこにはIDEが認識するすべての更新サイトが見つかります。 Re: Installing RTD for S32K312 こんにちは、 @durga_choudhuryさん 別のマシンでテストしていただけますか? また、アップデートサイトへのアクセスを妨げるファイアウォールやプロキシ、セキュリティポリシーがないかITチームに確認する価値があります。 Re: Installing RTD for S32K312 これは確かに、当社のプロキシサーバーに何らかの問題があるようです。企業ネットワーク外のコンピュータで動作します。 サポートありがとうございます。
記事全体を表示
KW45:编程/调试期间间歇性线路确认故障和闪存擦除失败 大家好, 我目前正在使用基于 KW45 的定制板,在固件编程和调试过程中遇到了间歇性问题。 我分别使用 SEGGER J-Link 和 NXP MCU-Link 调试探针测试了该电路板,两种探针都出现了该问题。 定制板的启动配置与 KW45 EVK 相同,JTAG/SWD 连接也已检查,看起来是正确的。 然而,我发现出现了以下情况: 当我尝试转储或编程一个已知可以正常运行的应用程序时: 有时应用程序编程成功,但在编程或启动调试会话后,设备最终会跳转到故障地址。 调试器随后在该位置停止。 在某些编程或转储尝试过程中,我收到 Wire ACK 故障。 MCUXpresso 在其他时候报道: 执行 MI 命令时出错 我还尝试使用 MCUXpresso 擦除闪存,但闪存擦除操作本身并未成功完成。 已执行的检查 已检查 JTAG/SWD 连接,连接似乎正常。 我们使用 SEGGER J-Link 和 NXP MCU-Link 调试探针测试了该问题。 已将启动配置与 KW45 EVK 进行了比较。 我使用一个已知可以正常运行的应用程序进行测试。 该问题是间歇性的:有时编程成功,但有时会出现 Wire ACK 故障或 MI 命令错误。 也尝试过闪存擦除,但未能成功完成。 我的问题 什么原因会导致 KW45 在转储或编程代码时间歇性地报告 Wire ACK 故障? 执行 MI 命令时出错? 编程后跳转到或停止在意外或无效的内存地址? 即使尝试完全擦除闪存也失败了吗? 由于该问题包括间歇性 Wire ACK 故障和闪存擦除期间的故障,我怀疑这可能与调试接口、SWD/JTAG 信号完整性、电源稳定性、RESET 序列、闪存控制器状态、设备安全/配置、启动配置或其他硬件级问题有关,而不是应用程序本身的问题。 请问您能否提供以下方面的推荐操作流程: 恢复或擦除 KW45 设备。 确认调试接口功能正常。 检查设备是否已锁定或处于阻止正常编程的状态。 确定 Wire ACK 故障是由目标硬件、调试探针、电源/复位行为还是 SWD/JTAG 信号完整性引起的。 如有需要,我可以提供以下信息: MCUXpresso IDE 版本:25.6.1 测试的调试探针:SEGGER J-Link 和 NXP MCU-Link 完整的错误日志,包括 Wire ACK 故障详情。 调试控制台输出 JTAG/SWD 和启动连接示意图 SWD/JTAG时钟频率 电源和 RESET 配置 来自故障状态的内存/寄存器信息 非常感谢您能提供任何故障排除步骤方面的指导。 先行致谢。 Re: KW45: Intermittent Wire ACK Fault During Programming/Debugging and Flash Erase Failure 你好,希望你一切都好。   首先,请您确认一下您定制主板的一些硬件细节: BOOT_CFG (PTA4) 网络是否有下拉电阻连接到 GND?VDD_SYS 和 VDD_CORE 去耦电容是否已安装?因为这些是提供反馈通路并维持内部稳压器输出电压稳定性所必需的。   要尝试恢复设备,请尝试以下步骤: 您能否通过 ISP 模式访问您的设备?为此,在 RESET 期间将 BOOT_CONFIG (PTA4) 拉高,以强制设备进入 ISP 模式(在 KW47-EVK 上,这是 SW4)。 进入ISP模式后,打开命令提示符并运行以下命令: # Confirms ROM bootloader communication is working, a successful response confirms the device is reachable via ISP blhost.exe -p COMX get-property 1 # Reveals whether the device is in OEM_OPEN or a secured lifecycle state blhost.exe -p COMX get-property 07 # Perform a mass erase of the CM33 and NBU Program Flash blhost.exe -p COMX flash-erase-all blhost.exe -p COMX flash-erase-all 2 之后,您可以尝试运行 hello_world 或 BLE 示例,以确保电路板正常工作。 另外,请确认一下,您之前运行的是哪个应用程序?你有没有用低功耗的例子进行测试?设备也可能进入了低功耗状态,在低功耗运行期间禁用了SWD调试接口,这将导致LinkServer或J-Link无法正常连接。 此致, 索菲亚。 Re: KW45: Intermittent Wire ACK Fault During Programming/Debugging and Flash Erase Failure 您好,女士。 感谢您的详细回复。 关于硬件细节: BOOT_CFG (PTA4) 下拉:是的,我们定制的板上的 BOOT_CFG (PTA4) 网络有一个下拉电阻连接到 GND。 VDD_SYS 和 VDD_CORE 去耦电容:是的,所需的去耦电容已安装在板上。我已附上相关的原理图部分/图像,显示了VDD_SYS 和 VDD_CORE 的连接以及去耦电容。 同时,我将按照您建议的步骤,通过ISP 模式访问设备,并尝试使用 blhost 命令检查设备状态并执行批量擦除。 关于之前运行的应用程序: 该应用程序基于FreeRTOS ,并集成了以下外设/模块: FreeRTOS LPSPI0 带 DMA 通用IO LPSPI1 带 FIFO WDOG 关于低功耗问题,我在应用中并没有特意使用任何具体的低功耗示例。 我将执行 ISP 恢复程序,并告知您结果,特别是以下方面: 获取属性 1 获取属性 07 全部擦除 全部擦除 2 如果您建议在进行这些测试时进行任何其他硬件检查或测量,请告诉我。 Prashanth1_0-1789454497591.png普拉山斯1_0-1789454497591.png Prashanth1_1-1789454501864.pngPrashanth1_1-1789454501864.png 再次感谢您的支持。 此致, 普拉桑特
記事全体を表示
Does NXP official have a code routine for configuring external boot for S32K344 chip? Does NXP official have a code routine and tutorial for configuring external boot for S32K344 chip? We would like to configure the chip to boot from the SD card? Re: Does NXP official have a code routine for configuring external boot for S32K344 chip? In a nonsecure boot configuration - does the first bootloader run from ROM (is it immutable)? Can this first bootloader be configured to boot the subsequent bootloaders/application images from an external source/flash? Re: Does NXP official have a code routine for configuring external boot for S32K344 chip? This device does not offer an option to boot from external memory. Device supports secure and nonsecure boot modes but in both cases it is internal flash boot.
記事全体を表示
S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on specific Device: S32K312 Toolchain: Green Hills ELXR (compiler) HSE Firmware: s32k312_hse_fw_0.13.0_2.55.0_pb250129.bin Debugger: Lauterbach TRACE32 Software: AUTOSAR RTD-based Bootloader (FBL) + Application (APP), two-image structure ISSUE SUMMARY On a subset of production units, the CPU hangs immediately after a Functional (software) reset. The same units always boot correctly after a Destructive (power-on) reset. The hang does not reproduce on our reference/known-good units. EVIDENCE THAT AN NMI OCCURS BEFORE ANY APPLICATION CODE EXECUTES 1) CPU context captured at the hang point (auto-stacked exception frame): - R0-R3 = 0x00000000, R12 = 0x00000000 - LR = 0xFFFFFFFF (reset default -> no BL has executed yet) - PC = 0x00416904 (the very first instruction address of our Reset_Handler) - xPSR = 0x01000000 2) SCB->ICSR = 0x00000802 Chibeom_3-1785136456875.pngChibeom_3-1785136456875.pngChibeom_3-1785136456875.pngChibeom_3-1785136456875.pngChibeom_3-1785136456875.pngChibeom_3-1785136456875.pngChibeom_3-1785136456875.png - VECTACTIVE[8:0] = 2 -> NMI is the currently active exception - RETTOBASE = 1 This confirms the CPU is currently executing inside the NMI handler. 3) Our vector table entry for the NMI offset correctly points to our own default exception handler, so this is a genuine NMI event, not vector table corruption. REGISTERS CHECKED AT THE SAME HANG STATE (all read as clean / inactive) - MC_RGM_DES = 0x00000000 (not a destructive reset) - MC_RGM_FES = 0x20000000 (bit 29 only) (only "software functional reset" flag set, no other functional reset source flagged) - FCCU: STAT, N2AF_STATUS, A2FF_STATUS, N2FF_STATUS, NCF_S0, IRQ_STAT all = 0x00000000 - CMU_FC instances 0, 3, 4: SR = 0x00000000 (no frequency high/low fault) - PMC LVSC = 0x00000000 (no LVD/HVD flag, latched or live) - ERM (0x4025C000): could not be read on either good or failing units (likely clock-gated in our configuration), so ERM status is unverified. QUESTIONS 1. Are there any NMI sources -- other than FCCU / CMU_FC / PMC / MC_RGM -- that could fire before the application's Reset_Handler executes its first instruction? 2. Since the HSE subsystem runs independently of the application core, is it possible for an application-core Functional reset (which does not reset HSE) to create a state mismatch that triggers an NMI on the application core? 3. Is there a known errata for S32K312 matching this symptom (NMI only on functional/software reset, never on power-on reset)? Any guidance on additional registers to check, or documentation covering NMI sources outside FCCU / ERM / CMU_FC / PMC, would be greatly appreciated. Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci Hi @Chibeom, Could you please read registers MU_0.MUB CSSR0 and MU_1.MUB CSSR0 at the hang state, and confirm whether bit 0 (NMIC) is set in either of them? Thank you Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci Hi @danielmartynek , Thank you for pointing us to MU_0.MUB / MU_1.MUB CSSR0. CSSR0 (bit 0, NMIC) on both MU_0.MUB and MU_1.MUB reads 0x00000000 on the failing unit at the hang state, so the MU->NMI request path (CCR0[NMI] / CSSR0[NMIC]) does not appear to be pending. However, while comparing MU registers between a known-good unit and a failing unit (both captured at the identical hang-state address range), we found a consistent difference:                                Good unit Failing unit MU_0.MUB VER 0x0300000F 0x0300000F (identical) MU_0.MUB PAR 0x20200404 0x20200404 (identical) MU_0.MUB CR 0x00000000 0x00000000 (identical) MU_0.MUB SR 0x00000000 0x00000002 <- MURIP set MU_1.MUB VER/PAR/CR: identical between good and failing units MU_1.MUB SR 0x00000000 0x00000002 <- MURIP set So on BOTH MU instances, SR bit 1 (MURIP) is set only on the failing unit, consistently. Per the reference manual, MURIP indicates that "processor A" has issued an MU reset, and can only be cleared by a system reset (not by an MU reset). Since the CPU is frozen inside the NMI handler before executing any application code, it could not have cleared this flag itself, so it must have been set prior to (or as part of) this boot sequence. We'd appreciate your input on the following: 1. For MU_0.MUB and MU_1.MUB, which processor is "processor A" (i.e. who sets MURIP)? Our header only exposes the "MUB" register block at the application-core-accessible address -- does this imply the application core is always "processor B" and HSE is "processor A" for these instances? 2. Does "system reset" (required to clear MURIP) include a Functional/SW reset of the application core, or only a Destructive/POR reset? If MURIP is not cleared by our functional reset, that would explain why it stays set across SW reset while it is clear after power-on. 3. Independent of the NMI question: is a set/stuck MURIP flag itself expected or considered anomalous during normal operation? 4. Since CSSR0[NMIC] currently reads 0, is it possible for hardware to auto-clear NMIC upon NMI exception entry, or does it only clear via an explicit software write (in which case NMIC=0 would mean the MU->NMI channel was never asserted in the first place)? Thanks again for your help so far. Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci Hi @Chibeom, I'm sorry for the delay. I was out of office for two days. 1. Yes, the HSE_B core controls the MUA interfaces of MU_0 and MU_1. 2. Any system reset should reset MURIP. 3. I would consider this an anomaly, as I do not have much information about it. 4. It requires an explicit write, as it is a W1C register. Can you make sure that HSE_B is inactive at the time the functional reset is triggered? Also, what is the state of HSE_B while the application is stuck in the NMI handler? Can you read the standard HSE GPR (0x4039_C028), FSR, and GSR registers on the MU_0 B side? Do you use the NMI pin in the application? Regards, Daniel Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci Hi Daniel, Please find three combined register-dump screenshots attached, followed by our findings organized by your questions. -------------------------------------------------------- ATTACHMENTS -------------------------------------------------------- Attachment 1: GOOD unit (Secure Debug enabled, running normally) Chibeom_3-1785730814252.pngChibeom_3-1785730814252.pngChibeom_3-1785730814252.pngChibeom_3-1785730814252.pngChibeom_3-1785730814252.pngChibeom_3-1785730814252.pngChibeom_3-1785730814252.png Attachment 2: FAILING unit, immediately BEFORE the functional reset is triggered (normal operation) Chibeom_4-1785730831377.pngChibeom_4-1785730831377.pngChibeom_4-1785730831377.pngChibeom_4-1785730831377.pngChibeom_4-1785730831377.pngChibeom_4-1785730831377.pngChibeom_4-1785730831377.png Attachment 3: FAILING unit, AFTER the functional reset, stuck in the NMI handler (hang state) Chibeom_5-1785730838688.pngChibeom_5-1785730838688.pngChibeom_5-1785730838688.pngChibeom_5-1785730838688.pngChibeom_5-1785730838688.pngChibeom_5-1785730838688.pngChibeom_5-1785730838688.png -------------------------------------------------------- FINDINGS 1) HSE_B activity at the time the functional reset is triggered, and 2) state of HSE_B while stuck in the NMI handler: Comparing Attachment 2 (before reset) and Attachment 3 (after reset, hang state) on the failing unit, every register we checked reads IDENTICALLY before and after the reset: - MU_0.MUB / MU_1.MUB TSR = 0x0000000F, RSR = 0x00000000 (no pending messages on transmit/receive channels, unchanged by the reset) - MU_0.MUB GSR = 0x00000000 (unchanged) - MU_0.MUB FSR = 0x03600000 (unchanged) - HSE GPR (0x4039C028) = 0x000001C1 (unchanged) - MU_0.MUB / MU_1.MUB SR bit 1 (MURIP) = 0x00000002 -- already set BEFORE the reset is triggered, and remains set, unchanged, after the reset So MURIP was already set prior to this reset cycle, and the functional reset itself does not change any of these HSE-related registers. For reference, on a good unit with the same Secure Debug configuration (Attachment 1), MURIP reads 0x00000000 on both MU_0.MUB and MU_1.MUB, while HSE GPR and WKPU NCR read the same values as the failing unit. 3) Regarding whether a set/stuck MURIP is anomalous: Understood, thank you for confirming. 4) NMI pin usage: We do not use the WKPU-routed NMI path (WKPU_IP_USED is not enabled; no WKPU driver code is compiled into either our bootloader or application image). WKPU NCR (0x402B4008) = 0x60000000 identically across all three attachments. NSR = 0x00000000 in all cases. Since this is unchanged across all units and conditions, we don't believe an external/WKPU-routed NMI source is involved. SUMMARY OF FINDINGS SO FAR MURIP (MU_0.MUB and MU_1.MUB SR bit 1) is already set on the failing unit BEFORE the functional reset is even triggered, and remains unchanged throughout the hang. It reads 0 on a good unit with the same Secure Debug configuration. This is the only consistent, reproducible difference we have found across every register we've compared (FCCU, CMU_FC, PMC, WKPU, and MU CSSR0/GSR/TSR/RSR/GPR/FSR). Since MURIP is set by "processor A" (HSE_B) and should be cleared by "any system reset" per your answer, and since it is already set before our functional reset is triggered (and the reset itself does not appear to change it), this suggests HSE_B issued an MU reset at some earlier point that was never cleared by a "system reset" recognized by HSE_B. QUESTIONS 1. Is there a way to determine, from the HSE side, what would cause HSE_B (processor A) to issue an MU reset in the first place? We'd like to understand why MURIP gets set at all. 2. Is there a recommended way for us to trigger a reset that HSE_B recognizes as a "system reset" (to clear MURIP) from application software, short of a full power cycle? 3. Could a stuck MURIP flag on the application-core side be related to the NMI we are observing, or are these more likely two independent symptoms of the same earlier event? Thanks again for your continued help with this. Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci Hello @Chibeom, Thank you for the detailed register dumps. I have escalated the questions around MURIP behavior and the potential NMI path between HSE_B and CM7_0 to our internal HSE team, as this seems to be not documented. I will get back to you once I have their input. Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci Hello @danielmartynek,  Thank you for the update, and for escalating the MURIP / NMI path question to your internal HSE team. We appreciate it, and we'll wait for their input. In the meantime, we found an additional data point that may be relevant, so we wanted to share it now rather than wait. While comparing OTP fields in the UTEST Flash area between a good unit and a failing unit, we found a difference in the Lifecycle slots. CUST_DEL (0x1B000220-22F) and OEM_PROD (0x1B000230-23F) are identically programmed (0x55AA50AF across all words) on both the good unit and the failing unit. The difference is in the IN_FIELD slot (0x1B000240-24F): - Good unit: begins being programmed Chibeom_2-1786069927793.pngChibeom_2-1786069927793.pngChibeom_2-1786069927793.pngChibeom_2-1786069927793.pngChibeom_2-1786069927793.pngChibeom_2-1786069927793.pngChibeom_2-1786069927793.png - Failing unit: reads as unprogrammed (0xFFFFFFFF) Chibeom_1-1786069910918.pngChibeom_1-1786069910918.pngChibeom_1-1786069910918.pngChibeom_1-1786069910918.pngChibeom_1-1786069910918.pngChibeom_1-1786069910918.pngChibeom_1-1786069910918.png We are still double-checking the exact byte pattern within the IN_FIELD slot on our side, but the good/failing difference at this slot appears consistent. Could you clarify: 1. Does this suggest that the failing unit's configuration became corrupted or incomplete partway through the transition into IN_FIELD? 2. Could an incomplete or missing lifecycle advancement to IN_FIELD explain the NMI/hang behavior we have been investigating in this thread? 3. Is there a safe way to check or complete this lifecycle advancement on the failing units, without a full production re-flow? Thanks again for your help. Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci Hi @Chibeom, Based on the memory view, OEM_PROD = Inactive, IN_FIELD = Erased. Can you please first read the DCM registers: RM, rev.12, Section 39.3.1 DCM memory map. And Section 38.2.3 Read-Only GPR On Destructive Reset 3 (DCMROD3)? You can also use the HSE_FW APIs to get the LC attribute? Thank you Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci Hi @danielmartynek , Thank you for pointing us to the DCM memory map and DCMROD3. We captured DCMSTAT (0h), DCMLCS (8h), DCMLCS_2 (80h), and DCMROD3 (208h) on both units, and decoded them against RM rev.9. ---------------------------------------------------- CAPTURED VALUES ---------------------------------------------------- Good unit: Chibeom_0-1786500129171.pngChibeom_0-1786500129171.pngChibeom_0-1786500129171.pngChibeom_0-1786500129171.pngChibeom_0-1786500129171.pngChibeom_0-1786500129171.pngChibeom_0-1786500129171.png - DCMSTAT (0h) = 0x00000E11 - DCMLCS (8h) = 0x00000000 - DCMLCS_2 (80h) = 0x00000000 - DCMROD3 (208h) = 0x00000000 Failing unit: Chibeom_1-1786500144600.pngChibeom_1-1786500144600.pngChibeom_1-1786500144600.pngChibeom_1-1786500144600.pngChibeom_1-1786500144600.pngChibeom_1-1786500144600.pngChibeom_1-1786500144600.png - DCMSTAT (0h) = 0x00000E03 - DCMLCS (8h) = 0x06184104 - DCMLCS_2 (80h) = 0x00000006 - DCMROD3 (208h) = 0x00400000 ---------------------------------------------------- DECODED FIELDS (FAILING UNIT ONLY, since good unit reads all-zero) ---------------------------------------------------- DCMSTAT: - bit1 DCMERR = 1 (DCM completed with error) -- good unit has this bit = 0 - bit4 DCMLCST = 0 (LC scanning status not "completed successfully") -- good unit has this bit = 1 DCMLCS: - bits 21-19 DCMLCC4 (IN_FIELD Marking) = 011b = "Region is erased/virgin" - bits 15-13 DCMLCC3 (OEM_PROD Marking) = 010b = "Marked as inactive" - bits 27-25 DCMLCC5 (Pre-FA Marking) = 011b = "erased/virgin" - All associated *_ECE/*_CFE/*_CSS bits = 0. DCMLCS_2: - bits 3-1 DCMLCC6 (FA Marking) = 011b = "erased/virgin" DCMROD3: - bit22 LC_ERR = 1 ("Error In Life Cycle Scanning") This is consistent with the UTEST OTP dump we shared earlier: the IN_FIELD slot on the failing unit reads as erased/virgin. ---------------------------------------------------- HSE_FW API RESULT (HseReadLifecycle) ON THE FAILING UNIT ---------------------------------------------------- HseReadLifecycle() returns 0x10 = HSE_LC_IN_FIELD. So from the HSE firmware's point of view, the current lifecycle is already IN_FIELD. This appears to conflict with the DCM/OTP data above: DCM's DCMLCC4 field reads IN_FIELD marking as "erased/virgin," and the UTEST OTP IN_FIELD slot (0x1B000240h onward) reads as unprogrammed (0xFFFFFFFF), yet the HSE API reports the lifecycle as confirmed IN_FIELD. We wanted to share this as-is rather than draw a conclusion, since we don't know whether HSE tracks lifecycle through a separate/secure store independent of the DCM flash marking, or whether this indicates the marking itself is the problem. Regards, Chibeom Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci Hello @Chibeom, Thanks for the data. Since the IN_FIELD slot is still in the erased state, could you try setting the attribute again to advance it? As I mentioned, the case is currently under internal discussion. I will update this thread as soon as I have any new information. Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci Hi @Chibeom, Probably the HSE service responsible for advancing the Life Cycle (LC) was interrupted, leaving the LC in this state. The LC and LC Control (DCMLCC) register reports 0x77 (IN_FIELD) as the HSE_FW does, but the UTEST area is not programmed correctly. In theory, you could program the UTEST IN_FIELD slot using a debugger, which should clear the DCM error.  Regards, Daniel Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci Hello @danielmartynek  We tried setting the IN_FIELD attribute again on the failing unit, as suggested. Result: HSE_SRV_RSP_NOT_ALLOWED (0xAA55A21C) Regards, Chibeom Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci Hi @danielmartynek  Thank you for the suggestion to program the UTEST IN_FIELD slot using a debugger. We checked our internal OTP field reference table, and the IN_FIELD lifecycle slot (1B00_0240-024F) is listed as write-protected for any master except HSE once LC > MCU_PROD (OEM_PROD). Since HseReadLifecycle() on this unit already reports IN_FIELD, this LC condition appears to already be met. Could you clarify how a debugger write to this slot would be expected to succeed under this protection rule? Is there a specific procedure, mode, or authentication step required for the debugger to be treated as an allowed master in this case? Separately, do you have any findings yet on why the LC advancement to IN_FIELD was left in this partial state in the first place? We'd like to understand the root cause, not just the recovery step, if that analysis is available. Thank you, Chibeom Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci Hi @Chibeom, Thank you for the information. It seems there is no option to recover the MCU at this point. One possibility is that the HSE set attribute service request to advance the LC was interrupted by a system reset (I understand the LC was not advanced using the LCW within the IVT).: Do you read the HSE response of the service request? Do you log whether there was an error? Before triggering the service, do you verify that HSE_STATUS_INIT_OK is set? How many boards/MCUs are affected by this issue? Is it limited to a few units, or have you observed it across a larger number of devices? Thank you, Daniel Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci Hi @Chibeom, Do you have any update? Thank you Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci Hi @danielmartynek , Apologies for the delayed response, and thank you for the questions. Here are our answers: 1. For the LC advance sequence, we read the HSE service responses (from the DebugAuth, AdvanceLifecycle, and ReadLifecycle calls) and use them to determine an overall success/fail status. We don't log which specific call failed or the individual error code -- only the overall OK/FAIL result exists, and it is not persisted anywhere. So we have no record of what happened during the original LC advancement on these units. 2. Neither our LC-update function nor its caller explicitly checks HSE_STATUS_INIT_OK before triggering the AdvanceLifecycle service. We check HSE_STATUS_INIT_OK once at the beginning of our download flow, by reading the MU_0.MUB FSR register (0x4038C104) and deriving hseStatus_t from it (mask/shift on FSR bits 16-31, as done in Hse_Ip_GetHseStatus). This check is not repeated before the lifecycle advancement step later in the flow. For additional context, our production equipment log for the failing units shows the following sequence: FSR check completed (OK) -> App download -> Secure Debug Enable -> FAIL Note that "Secure Debug Enable" in our equipment log refers to the entire procedure that includes the LC advancement (DebugAuth, AdvanceLifecycle, and ReadLifecycle together) -- it's logged as a single pass/fail step, so we cannot tell from this log which of the sub-steps actually failed. Our debug equipment (TRACE32) has checked HSE_STATUS_INIT_OK as part of our existing debug flow, but our download/programming equipment (production line) may not have consistently checked this at the point in the sequence where the LC advancement is triggered. Regarding the number of affected units: we currently have 2 boards/MCUs showing this issue. We also have two follow-up questions: - Is reading the FSR register and deriving hseStatus_t from it this way a valid/recommended way to check HSE_STATUS_INIT_OK? - We currently check HSE_STATUS_INIT_OK once at the beginning of our download flow, via this register read. Should it also be checked specifically before triggering the lifecycle advancement? Thank you, Chibeom Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci Hi @danielmartynek , I hope you're doing well. I wanted to check in and see if there have been any updates on this thread. We'd appreciate any guidance you can share when you get a chance. Thank you, Chibeom Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci Hi @Chibeom, Apologies for the delay — I have been waiting for feedback from the HSE team, but have not received a clear explanation for the NMI. The LC_ERR flag in DCMROD3: it can trigger an NMI only if FCCU NCF 3 is configured to generate one. To your questions: Yes, that is correct. The HSE_STATUS_INIT_OK flag should be checked after any system reset. The application must wait for this flag before changing system clocks or using any HSE service. Once set, it remains set. The application can additionally poll the WFI flag of the HSE_B core (PRTN0_CORE2_STAT[WFI]) to determine whether the HSE_B is busy or idle. On the topic of the interrupted LC advancement — there is one more possible root cause worth investigating. Changing the lifecycle modifies the contents of the UTEST flash, and the UTEST flash resides in the same RWW (Read-While-Write) partition as Code Flash Block 0. If any code is executing from Block 0 during the UTEST write, an RWW error will occur and can prevent the lifecycle change from completing successfully. To avoid this, the application must ensure there is no concurrent access to Block 0 while the LC advancement service is in progress. Note that the cache may mask this issue in most cases, but in certain corner cases, particularly when the application uses a non-synchronized event, it can result in a cache miss, making the problem visible. Regards, Daniel
記事全体を表示
GUI Guider 1.10.1 では、背景の不透明度が 0 の場合、背景スタイルのプロパティが省略されます。 環境 GUI Guider: 1.10.1 LVGL: 8.3 ウィジェット: ボタン スタイルパーツ: LV_PART_MAIN スタイル状態: LV_STATE_DEFAULT 問題の説明 GUI Guider 1.10.1 で再現可能なコード生成の問題を発見しました。 ボタンに背景色が設定されているにもかかわらず、背景の不透明度が0に設定されている場合、GUI Guiderは対応する背景色プロパティを生成しません。 実行時に背景の透明度を動的に変更すると、予期しない動作が発生します。 再生 ボタンを作成して設定します。 背景色:#F08300 背景の不透明度: 0 次に、LVGL 8.3コードを生成します。 GUI Guider が生成するもの: lv_obj_set_style_bg_opa(ui->screen_password_btn_15, 0、 LV_PART_MAIN | LV_STATE_DEFAULT); しかし、設定した背景色は生成されません。 lv_obj_set_style_bg_color(ui->screen_password_btn_15, lv_color_hex(0xF08300) LV_PART_MAIN | LV_STATE_DEFAULT); テスト:背景の不透明度のみを0から1に変更する 背景色の#F08300はそのままに、背景の不透明度だけを0から1に変更しました。 コードを再生成した後、GUI Guiderは以下を生成します。 lv_obj_set_style_bg_opa(ui->screen_password_btn_15, 1、 LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_color(ui->screen_password_btn_15, lv_color_hex(0xF08300) LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_grad_dir(ui->screen_password_btn_15, LV_GRAD_DIR_NONE、 LV_PART_MAIN | LV_STATE_DEFAULT); したがって、生成されるコードは、背景の不透明度が正確に0であるかどうかによって異なります。 背景の不透明度 = 0: bg_opaが生成されます bg_color は生成されません 背景の不透明度 = 1: bg_opaが生成されます bg_color が生成されます その他の背景プロパティも生成されます 実行時への影響 私のアプリケーションは背景の不透明度を使って現在選択されているパスワード番号を示します。 背景色はGUI Guiderで #F08300 として設定され、アプリケーションは背景の不透明度のみを動的に変更します。 例: lv_obj_set_style_bg_opa(btn, LV_OPA_COVER、 LV_PART_MAIN | LV_STATE_DEFAULT); 初期の背景不透明度が0のボタンの場合、生成されるコードには設定された背景色が含まれません。 アプリケーションが不透明度を0からLV_OPA_COVERに変更すると、ボタンはGUI Guiderで設定された #F08300 色の代わりにLVGLテーマまたはデフォルトの背景色を表示します。 その動作は以下のとおりです。 GUI Guiderの設定: 背景色 = #F08300 背景の不透明度 = 0 生成されたコード: bg_opa = 0 bg_color は生成されません ランタイム: bg_opa が LV_OPA_COVER に変更されました 結果: #F08300の代わりに、デフォルトまたはテーマの背景色が表示されます。 応急措置 アプリケーションコード内で背景色を明示的に設定すると、以下の問題が解決します。 lv_obj_set_style_bg_color(btn, lv_color_hex(0xF08300) LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_opa(btn, LV_OPA_COVER、 LV_PART_MAIN | LV_STATE_DEFAULT); 別の回避策としては、GUI Guiderで背景の不透明度を1に設定する方法があります。これにより、GUI Guiderは設定された背景色を生成するようになります。 しかし、これは初期のUI状態を変更してしまうため、理想的とは言えません。 期待される動作 背景色と背景の不透明度は、それぞれ独立したLVGLスタイルプロパティです。 ユーザーが明示的に以下を設定する場合: 背景色 = #F08300 背景の不透明度 = 0 GUI Guiderは、生成されたコードにおいて両方のプロパティを保持するはずです。 lv_obj_set_style_bg_opa(btn, 0、 LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_color(btn, lv_color_hex(0xF08300)、 LV_PART_MAIN |LV_STATE_DEFAULT); bg_color bg_opa が0のときは目に見える影響はありませんが、アプリケーションが実行時に動的にbg_opaが変化すると重要になります。 現在のコード生成動作では、GUI Guiderで設定された背景色情報が失われます。 実際の行動 GUI Guider 1.10.1 では、背景の不透明度が 0 の場合、背景スタイルのプロパティが省略されるようです。 不透明度を0から1に変更するだけで、背景色やその他の背景プロパティが再生成されます。 再現手順 GUI Guider 1.10.1 でボタンを作成する。 背景色を#F08300に設定してください。 背景の不透明度を0に設定してください。 LVGL 8.3コードを生成します。 値0のlv_obj_set_style_bg_opaが生成されていることを確認してください。 #F08300 を指定した lv_obj_set_style_bg_color は生成されないことに注意してください。 背景の不透明度のみを0から1に変更してください。 コードを再度生成してください。 #F08300 を指定した lv_obj_set_style_bg_color が生成されていることを確認してください。 実行時に、元のボタンの不透明度をLV_OPA_COVERに変更します。 設定された背景色は、アプリケーションが明示的に設定しない限り表示bg_colorないことに注意してください。 質問 これはGUI Guider 1.10.1における意図的なコードサイズ最適化なのでしょうか、それともコード生成の問題なのでしょうか? もしこの最適化が意図的であれば、GUI Guiderはバックグラウンド不透明度が0のときにバックグラウンドプロパティを保持するオプションを提供してくれますか? ランタイムアプリケーションはLVGLスタイルのプロパティを動的に変更することが多いため、初期の不透明性だけでbg_colorを省略すると、UI設定とは異なる実行時の挙動が生じる可能性があります。 Re: GUI Guider 1.10.1 omits background style properties when Background Opacity is 0 こんにちは、 @zzjgood さん、 投稿ありがとうございます。 あなたが説明した行動を再現できます。これはコード生成の問題だと思います。ユーザーが背景色を明示的に設定する場合、GUI Guiderは初期の背景不透明度が0でも対応するbg_colorコードを保持するか、透明オブジェクトの背景スタイルプロパティを保持するオプションを提供するべきです。この件はGUI-Guiderチームに報告し、修正を依頼します。さらに、当社の内部エスカレーションプロセスに基づき、以下の情報を提供していただけるとありがたいです。 - どのNXP製品を使っていますか? - 最終的なアプリケーションは? 現在の実用的な回避策は、アプリケーションコード内で背景色と不透明度の両方を明示的に設定することです。 コピー lv_obj_set_style_bg_color(btn, lv_color_hex(0xF08300), LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_opa(btn, LV_OPA_COVER, LV_PART_MAIN | LV_STATE_DEFAULT); お役に立てば幸いです。 BR セレステ Re: GUI Guider 1.10.1 omits background style properties when Background Opacity is 0 はい、ご返信ありがとうございます。 Re: GUI Guider 1.10.1 omits background style properties when Background Opacity is 0 こんにちは、 @zzjgood さん、 お元気でお過ごしでしょうか。 この件に関して最新情報が入りました。バージョン1.10.1では、不透明度が0に設定されている場合に背景スタイルのコード生成をスキップする動作は、不要な生成コードを削減するために意図的に設計されたものです。同じ論理は境界線のスタイルにも当てはまります。 お客様のユースケースでは、残りのスタイルコードを生成することが依然として有益であることは理解しています。しかし、v1.xブランチは既に更新されていません。対照的に、v2.xは値に関係なくユーザー設定のスタイルプロパティをすべて生成し、あなたのシナリオを完全にサポートします。 したがって、Gui-guider v2.xへの移行をお勧めします。 現代的な組み込みGUIファストを作成 | NXP Semiconductors よろしくお願いいたします。 セレステ
記事全体を表示
连续两次测量中接收灵敏度相差 10dB 我发现我们一款使用 QN9083 BLE SoC 的产品出现了异常行为。当我测量设备接收器灵敏度时,我发现连续两次测量之间有高达 10dB 的差异。我正在使用 CMW100 的广播模式进行测量,该设备放置在屏蔽的射频盒中。在不打开盒子和/或改变设备位置的情况下,连续进行 RxS 测量,设备的响应差异高达 10dB(即 -91dBm 和 -81dBm),这是意料之外的,以前从未发生过。这种行为是随机的。我正在寻找硬件和软件方面可能的原因。 Re: Rx sensitivity differs by 10dB between consecutive measurements 你好, 连续两次灵敏度测量结果之间出现高达 10 dB 的变化,这通常是我们意想不到的。 能否告知您当前使用的软件/SDK 版本? 另外,您能否澄清一下: 这种情况是发生在单个设备上还是多个产品上? 您是否在不同的单元中观察到过同样的情况? 使用相同的测量设置,能否在 NXP 开发板上重现该问题? 这些信息将有助于确定问题是硬件、软件还是测试环境特有的。 顺祝商祺! 里卡多 Re: Rx sensitivity differs by 10dB between consecutive measurements 您好,感谢您的回复。我的回答如下: 能否告知您当前使用的软件/SDK 版本? 5.0 版本基于156414(控制器子系统)和 156821(主机子系统) 这种情况是发生在单个设备上还是多个产品上? 同一款产品。使用其他产品从未遇到过问题。 您是否在不同的单元中观察到过同样的情况? 是的,但并非始终如此。 使用相同的测量设置,能否在 NXP 开发板上重现该问题? 我需要一块搭载 QN9083 芯片的开发板,以及一个能将芯片设置为广播模式的固件。 谢谢!       Re: Rx sensitivity differs by 10dB between consecutive measurements 关于BLE版本的其他信息: SDK 2.2.3 BLE 1.5.6,支持 BLE Core 5.0。 Re: Rx sensitivity differs by 10dB between consecutive measurements @Ricardo_Zamora 我使用 QN9080-DK 进行了测量。虽然我没有看到 10dB 的差异,但仍然存在 5dB 的波动(见下方数据)。可能是什么原因造成的? furbani_0-1784214895282.pngfurbani_0-1784214895282.pngfurbani_0-1784214895282.png Re: Rx sensitivity differs by 10dB between consecutive measurements 嗨@Ricardo_Zamora,您有时间查看我发布的数据/答案吗? 谢谢。 Re: Rx sensitivity differs by 10dB between consecutive measurements 我测量了 W236 FRDM 板,看看辐射 RSSI 的变化有多大。变化幅度可达 4dB。 RomanPBudek_0-1789049903611.pngRomanPBudek_0-1789049903611.png RomanPBudek_1-1789049923585.pngRomanPBudek_1-1789049923585.png Re: Rx sensitivity differs by 10dB between consecutive measurements @RomanPBudek谢谢你的更新。你使用什么仪器进行测量的?如果您也能测量一下我们这款设备的尺寸,我想寄送一台给您。 谢谢
記事全体を表示
安装S32 Design Studio for ARM 2.2无法激活 安装S32 Design Studio for ARM 2.2: 1.在激活时选择online则报图一错误,使用https://community.nxp.com/t5/S32-Design-Studio-Knowledge-Base/Troubleshooting-Activation-fails-with-error-message-FNP-ERROR-0/ta-p/1123259后报图二错误,但是我的电脑服务中FlexNet Licensing Service时启动状态 2.使用offline激活,完全参照官网步骤后,报图三错误,我该如何正确激活并安装此版本软件? Re: 安装S32 Design Studio for ARM 2.2无法激活 我已经完全按照步骤做了,依旧不行 Re: 安装S32 Design Studio for ARM 2.2无法激活 嗨@aether FNP 错误 20 通常与组件未正确安装或当前用户无法访问有关。请尝试以下步骤: 完全卸载 S32DS for ARM v2.2,并删除 C:\NXP\S32DS_ARM_v2.2 中所有剩余的文件。 备份并清除隐藏文件夹 C:\ProgramData\FLEXnet\ 的内容。 重新下载并安装适用于 ARM 的基本 S32DS v2.2 软件包(不包含 Update 2)。 以管理员权限运行安装程序,并确保防病毒软件或安全软件没有阻止安装程序运行。 BR,VaneB Re: 安装S32 Design Studio for ARM 2.2无法激活 嗨@aether 能否请您提供一下安装日志文件(.log)?它应该位于: C:\NXP\S32DS_ARM_v2.2\_S32 Design Studio for ARM Version 2.2_installation\Logs
記事全体を表示
ARINC615A 数据加载,使用 JTAG 访问密码保护 当未安装 HSE 固件时,可以使用CUST_DB_PSWD_A字段和设备生命周期配置来限制 S32K3 上的 SWD/JTAG 访问。假设更新是由应用程序或引导加载程序软件处理,而不是通过调试接口处理,启用此密码保护是否会对向处理器执行 ARINC 615A 软件数据加载产生任何影响? Re: ARINC615A Data loading with JTAG Access password protected CUST_DB_PSWD_A 仅限制 SWD/JTAG 调试访问。我不熟悉您的 ARINC 615A 实现的细节,但如果软件加载完全由您的应用程序或引导加载程序处理,我认为调试密码本身不会产生任何影响。 最终,这是特定应用,取决于 ARINC 615A 在您的系统中是如何实现的。如果更新机制不使用调试接口,则调试访问限制通常应独立于软件加载过程。任何其他限制都将取决于您的生命周期配置和应用程序网络安全设计。
記事全体を表示
GUI Guider 1.10.1 omits background style properties when Background Opacity is 0 Environment GUI Guider: 1.10.1 LVGL: 8.3 Widget: Button Style Part: LV_PART_MAIN Style State: LV_STATE_DEFAULT Problem Description I found a reproducible code-generation issue in GUI Guider 1.10.1. When a button has a configured background color but its Background Opacity is set to 0, GUI Guider does not generate the corresponding background color property. This causes unexpected behavior when the background opacity is changed dynamically at runtime. Reproduction Create a Button and configure: Background Color: #F08300 Background Opacity: 0 Then generate the LVGL 8.3 code. GUI Guider generates: lv_obj_set_style_bg_opa(ui->screen_password_btn_15, 0, LV_PART_MAIN | LV_STATE_DEFAULT); However, the configured background color is not generated: lv_obj_set_style_bg_color(ui->screen_password_btn_15, lv_color_hex(0xF08300), LV_PART_MAIN | LV_STATE_DEFAULT); Test: Change only Background Opacity from 0 to 1 I changed only the Background Opacity from 0 to 1, while keeping the same Background Color #F08300. After regenerating the code, GUI Guider generates: lv_obj_set_style_bg_opa(ui->screen_password_btn_15, 1, LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_color(ui->screen_password_btn_15, lv_color_hex(0xF08300), LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_grad_dir(ui->screen_password_btn_15, LV_GRAD_DIR_NONE, LV_PART_MAIN | LV_STATE_DEFAULT); Therefore, the generated code differs depending on whether Background Opacity is exactly 0. Background Opacity = 0: bg_opa is generated bg_color is not generated Background Opacity = 1: bg_opa is generated bg_color is generated other background properties are also generated Runtime Impact My application uses the background opacity to indicate the currently selected password digit. The background color is configured in GUI Guider as #F08300, while the application dynamically changes only the background opacity. For example: lv_obj_set_style_bg_opa(btn, LV_OPA_COVER, LV_PART_MAIN | LV_STATE_DEFAULT); For a button whose initial Background Opacity is 0, the generated code does not contain the configured background color. When the application changes the opacity from 0 to LV_OPA_COVER, the button displays the LVGL theme or default background color instead of the #F08300 color configured in GUI Guider. The behavior is: GUI Guider configuration: Background Color = #F08300 Background Opacity = 0 Generated code: bg_opa = 0 bg_color is not generated Runtime: bg_opa is changed to LV_OPA_COVER Result: The default or theme background color is displayed instead of #F08300. Workaround Explicitly setting the background color in application code resolves the issue: lv_obj_set_style_bg_color(btn, lv_color_hex(0xF08300), LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_opa(btn, LV_OPA_COVER, LV_PART_MAIN | LV_STATE_DEFAULT); Another possible workaround is setting Background Opacity to 1 in GUI Guider, because this causes GUI Guider to generate the configured background color. However, this changes the initial UI state and is therefore not ideal. Expected Behavior Background Color and Background Opacity are separate LVGL style properties. If the user explicitly configures: Background Color = #F08300 Background Opacity = 0 I would expect GUI Guider to preserve both properties in the generated code: lv_obj_set_style_bg_opa(btn, 0, LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_color(btn, lv_color_hex(0xF08300), LV_PART_MAIN | LV_STATE_DEFAULT); Although bg_color has no visible effect while bg_opa is 0, it becomes relevant when the application dynamically changes bg_opa at runtime. The current code-generation behavior loses the background color information configured in GUI Guider. Actual Behavior GUI Guider 1.10.1 appears to omit background style properties when Background Opacity is 0. Changing only the opacity from 0 to 1 causes the background color and other background properties to be generated again. Steps to Reproduce Create a Button in GUI Guider 1.10.1. Set Background Color to #F08300. Set Background Opacity to 0. Generate LVGL 8.3 code. Observe that lv_obj_set_style_bg_opa with value 0 is generated. Observe that lv_obj_set_style_bg_color with #F08300 is not generated. Change only Background Opacity from 0 to 1. Generate the code again. Observe that lv_obj_set_style_bg_color with #F08300 is now generated. At runtime, change the opacity of the original button to LV_OPA_COVER. Observe that the configured background color is not displayed unless bg_color is explicitly set by the application. Question Is this an intentional code-size optimization in GUI Guider 1.10.1, or is it a code-generation issue? If this optimization is intentional, could GUI Guider provide an option to preserve background properties when Background Opacity is 0? Runtime applications commonly change LVGL style properties dynamically, so omitting bg_color based only on its initial opacity can result in runtime behavior that differs from the UI configuration. Re: GUI Guider 1.10.1 omits background style properties when Background Opacity is 0 Hello @zzjgood , Thanks for your post.  I can reproduce the behavior you described. I think this is a code-generation issue. If the user explicitly configures a Background Color, GUI Guider should preserve the corresponding bg_color code even when the initial Background Opacity is 0, or provide an option to preserve background style properties for transparent objects. I will report this to the GUI-Guider team for further fix. In addition, according to our internal escalation process, we would appreciate it if you could provide the following information: - Which NXP product are you using? - What is your end application? The current practical workaround is to explicitly set both the background color and opacity in the application code: Copy lv_obj_set_style_bg_color(btn, lv_color_hex(0xF08300), LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_opa(btn, LV_OPA_COVER, LV_PART_MAIN | LV_STATE_DEFAULT); Hop it helps. BR Celeste Re: GUI Guider 1.10.1 omits background style properties when Background Opacity is 0 Hello @zzjgood , Hope you are doing great. We got update about this issue. In v1.10.1, the behavior of skipping background style code generation when the opacity is set to 0 was intentionally designed to reduce unnecessary generated code. The same logic also applies to border styles. We understand that, in your use case, generating the remaining style code may still be beneficial. However, the v1.x branch is no longer being updated. In contrast, v2.x generates all user-configured style properties regardless of their values, which fully supports your scenario. Therefore, we recommend that migrating to Gui-guider v2.x.  Create Modern Embedded GUIs Fasts | NXP Semiconductors Regards, Celeste Re: GUI Guider 1.10.1 omits background style properties when Background Opacity is 0 Alright, thank you for your reply.
記事全体を表示
在 S32 Design Studio for Power Architecture v2.1 中,PEmicro GDB 启动失败 您好, 我正在测试的电路板是 MTRCKTSPS5744P(带有 MPC5744P MCU 的三相 PMSM 电机控制开发套件)。 不知何故,下载过程不太顺利。 点击调试按钮后,下载失败,此时会弹出此窗口。 eunwoo_lee_0-1789496057004.png 弹出一个窗口,显示此错误信息。 服务启动序列错误 PEmicro GDB 启动失败:GDB 服务器无法与目标处理器建立连接。请检查您的连接和电源。请确认调试配置中的启动设置是否准确。 控制台面板显示此消息。 来自“127.0.0.1”的连接,通过 127.0.0.1。从端口“53438”到7224的连接 PE错误:警告。部件运行时无法读取寄存器。 PE错误:警告。部件运行时无法读取内存。@0(4 字节) PE错误:警告。部件运行时无法读取内存。@0(4 字节) PE错误:警告。部件运行时无法读取寄存器。 PE错误:警告。部件运行时无法读取内存。@0(4 字节) PE错误:警告。部件运行时无法读取内存。@0(4 字节) PE错误:警告。部件运行时无法写入二进制文件。40001000 - 长度:0 - 值:二进制数据 PE错误:警告。部件运行时无法写入二进制文件。40001000 - 长度:460 - 值:二进制数据 PE错误:警告。部件运行时无法写入二进制文件。40001460 - 长度:460 - 值:二进制数据 PE错误:警告。部件运行时无法写入二进制文件。400018c0 - 长度:460 - 值:二进制数据 PE错误:警告。部件运行时无法写入二进制文件。40001d20 - 长度:2e0 - 值:二进制数据 PE错误:GDB客户端处理:发生异常:程序异常! 异常类:EIDCONNCLOSEDGRACEFULLY 消息:连接已正常关闭。 地址 0X0046EA89 通过 127.0.0.1 与“127.0.0.1”断开连接。通过端口“53438”与7224断开连接 目标设备已断开连接。 你知道有什么办法解决这个问题吗? 谢谢。 Re: PEmicro GDB Launch Failure in S32 Design Studio for Power Architecture v2.1 你好, 你知道有什么办法解决这个问题吗? 正如消息中所述,您无法在运行时写入/读取寄存器。首先在调试器中停止代码执行,然后才能修改寄存器、内存等…… MPC5744P 正在运行用户代码,P&E 探针无法停止设备,因此所有内存/寄存器访问均失败,下载操作中止。 这看起来不像是一个闪存编程问题,而更像是调试器在下载之前未能停止 MPC5744P 的运行。 例如,微控制器中是否存在启用了 SWT0 的软件? 或者这是一个没有运行任何软件的全新样本? 顺祝商祺! Peter
記事全体を表示
S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_2025 不支持 HB200x AUTOSAR R21-11 版本 0.8.0 您好,NXP, 我尝试将 HB200x AUTOSAR 规范 SDK 集成到 S32 Design Studio 中,但收到以下错误消息: 问题:在工具链/IDE 项目中找不到 Mc33hb。该项目无法编译! 级别:错误 类型:验证 工具:工具链/IDE 项目 来源:外围设备 目标:工具链/IDE 项目:M7_0 资源:platform.driver.mc33hb 甚至包括 CDD_Mb33Hb.c 文件在 S32 Design Studio 应用程序 (v3.6.4) 中安装 SDK 时,尚未添加 CDD_Mb33Hb.h 等文件。 Re: HB200x AUTOSAR R21-11 Version 0.8.0 not supported by S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_ 你好, 您似乎使用了错误的RTD版本。根据 HB200x AUTOSAR R21-11 0.8.0 发行说明,该软件可以基于 SW32K3_RTD_4.4_R21-11_3.0.0_D2303_DS_updatesite.zip 使用(该软件需要安装在 S32 Design Studio IDE v3.5 中)。 PetrS_0-1789471295419.pngPetrS_0-1789471295419.png BR,彼得
記事全体を表示
PEmicro GDB Launch Failure in S32 Design Studio for Power Architecture v2.1 Hi, The board I am testing is MTRCKTSPS5744P (3-Phase PMSM Motor Control Development Kit with MPC5744P MCU). For some reason, the download process doesn't go well. This window pops up after failure in downloading when I click debug button. eunwoo_lee_0-1789496057004.png An window pops up showing this error message. Error in services launch sequence PEmicro GDB Launch Failure : The GDB Server was not able to establish a connection to the target processor. Please check your connections and power. Verify that the launch settings in the Debug Configuration are accurate. Console panel displays this message. Connection from "127.0.0.1" via 127.0.0.1. Connection from port "53438" to 7224 PE-ERROR: Warning. Can't read registers while part is running. PE-ERROR: Warning. Can't read memory while part is running. @0 (4 bytes) PE-ERROR: Warning. Can't read memory while part is running. @0 (4 bytes) PE-ERROR: Warning. Can't read registers while part is running. PE-ERROR: Warning. Can't read memory while part is running. @0 (4 bytes) PE-ERROR: Warning. Can't read memory while part is running. @0 (4 bytes) PE-ERROR: Warning. Can't Write Binary while part is running. 40001000 - Length of: 0 - Value of: Binary Data PE-ERROR: Warning. Can't Write Binary while part is running. 40001000 - Length of: 460 - Value of: Binary Data PE-ERROR: Warning. Can't Write Binary while part is running. 40001460 - Length of: 460 - Value of: Binary Data PE-ERROR: Warning. Can't Write Binary while part is running. 400018c0 - Length of: 460 - Value of: Binary Data PE-ERROR: Warning. Can't Write Binary while part is running. 40001d20 - Length of: 2e0 - Value of: Binary Data PE-ERROR: GDB Client Processing : Exception Occured : PROGRAM EXCEPTION! EXCEPTION CLASS: EIDCONNCLOSEDGRACEFULLY MESSAGE: CONNECTION CLOSED GRACEFULLY. ADDRESS 0X0046EA89 Disconnected from "127.0.0.1" via 127.0.0.1. Disconnection by port "53438" from 7224 Target Disconnected. Is there any solution you know for this problem? Thanks. Re: PEmicro GDB Launch Failure in S32 Design Studio for Power Architecture v2.1 Hello, Is there any solution you know for this problem? As the message explains you cannot write/read registers on the fly. First stop the execution of the code in debugger and then you can modify the registers, memory, etc... The MPC5744P is running user code and the P&E probe is unable to halt the device, therefore all memory/register accesses fail and the download operation aborts. This looks less like a flash programming problem and more like a debugger failing to halt the MPC5744P before download. Is there for example SW with SWT0 enabled in the microcontroller? Or is it a fresh sample with no SW running? Best regards, Peter
記事全体を表示
ARINC615A Data loading with JTAG Access password protected When HSE firmware is not installed, SWD/JTAG access on the S32K3 can be restricted using the CUST_DB_PSWD_A field and device lifecycle configuration. Would enabling this password protection have any impact on performing an ARINC 615A software data load to the processor, assuming the update is handled by application or bootloader software rather than through the debug interface? Re: ARINC615A Data loading with JTAG Access password protected CUST_DB_PSWD_A only restricts SWD/JTAG debug access. I am not familiar with the details of your ARINC 615A implementation, but if the software load is handled entirely by your application or bootloader, I would not expect the debug password itself to have any impact. Ultimately, this is application-specific and depends on how ARINC 615A has been implemented in your system. If the update mechanism does not use the debug interface, debug access restrictions should generally be independent of the software loading process. Any additional limitations would depend on your lifecycle configuration and application security design.
記事全体を表示
KW45:プログラミング/デバッグ中の断続的なワイヤACK障害およびフラッシュ消去失敗 チームの皆さん、こんにちは。 現在、KW45ベースのカスタムボードを使用しているのですが、ファームウェアのプログラミングとデバッグ中に断続的な問題が発生しています。 SEGGER J-LinkとNXP MCU-Linkのデバッグプローブの両方で基板をテストしましたが、問題は両方のプローブで発生しました。 このカスタムボードはKW45 EVKと同じブート構成を採用しており、JTAG/SWD接続も確認済みで、問題ないようです。 しかし、以下のような挙動が見られます。 動作が確認されているアプリケーションをダンプしたりプログラムしたりしようとすると: 時にはアプリケーションが成功裏にプログラムされますが、プログラムやデバッグセッション開始後、デバイスは最終的にフォールトアドレスにジャンプします。 デバッガーはその場所で停止します。 プログラミングやダンプ処理中に、ワイヤACKフォルトが発生することがあります。 MCUXpressoは、別の時には次のように報告している。 MIコマンドの実行中にエラーが発生しました。 MCUXpressoからフラッシュメモリを消去しようと試みましたが、フラッシュメモリの消去操作自体が正常に完了しませんでした。 既に実施済みのチェック JTAG/SWD接続を確認したところ、問題ないようです。 この問題はSEGGER J-LinkとNXP MCU-Linkデバッグプローブの両方でテストされました。 ブート構成はKW45 EVKと比較された。 テストには動作が確認されているアプリケーションを使っています。 この問題は断続的に発生します。プログラミングが成功することもありますが、ワイヤACKエラーやMIコマンドエラーが発生することもあります。 フラッシュメモリの消去も試みましたが、正常に完了しませんでした。 私の質問 KW45がコードのダンプやプログラミング中に断続的にWire ACKの故障を報告する原因は何でしょうか? MIコマンドの実行中にエラーを報告しますか? プログラミング後に、予期しないまたは無効なメモリ アドレスにジャンプまたは停止する? フラッシュメモリの完全消去を試みても失敗する? 問題には断続的なWire ACKの故障やフラッシュ消去時の故障が含まれているため、これはデバッグインターフェース、SWD/JTAGの信号整合性、電源の安定性、リセットシーケンス、フラッシュコントローラの状態、デバイスのセキュリティ/設定、起動設定、あるいは他のハードウェアレベルの問題に関連しているのではないかと疑っています。 以下のような推奨される手順を教えていただけますか: KW45デバイスを復元または消去します。 デバッグインターフェースが正しく動作しているか確認してください。 デバイスがセキュリティ保護されているか、または通常のプログラミングを妨げる状態になっていないかを確認してください。 ワイヤACK障害が、ターゲットハードウェア、デバッグプローブ、電源/リセット動作、またはSWD/JTAG信号の完全性のいずれかに起因するものかどうかを判断します。 必要に応じて以下の情報を提供できます。 MCUXpresso IDE バージョン:25.6.1 テストしたデバッグプローブ:SEGGER J-LinkおよびNXP MCU-Linkです ワイヤACK障害の詳細を含む完全なエラーログ デバッグコンソール出力 JTAG/SWDおよびブート接続の概略図 SWD/JTAGクロック周波数 電源およびリセット設定 障害状態からのメモリ/レジスタ情報 推奨されるトラブルシューティング手順についてご教示いただければ大変ありがたいです。 よろしくお願いいたします。 Re: KW45: Intermittent Wire ACK Fault During Programming/Debugging and Flash Erase Failure こんにちは、奥様。 詳細なご回答をありがとうございました。 ハードウェアの詳細について: BOOT_CFG (PTA4) プルダウン:はい、当社のカスタムボードでは、BOOT_CFG (PTA4) ネットにGNDへのプルダウン抵抗が接続されています。 VDD_SYSおよびVDD_COREデカップリングコンデンサ:はい、必要なデカップリングコンデンサは基板上に実装されています。VDD_SYSとVDD_COREの接続およびデカップリングコンデンサを示す関連する回路図の断面図/画像を添付しました。 その間に、ISP モードで デバイスにアクセスするための手順を進め、blhostコマンドでデバイスの状態を確認し、大量消去を実行してみます。 以前に実行されていたアプリケーションについて: このアプリケーションは FreeRTOS をベースにしており、以下のペリフェラル/モジュールを統合しています: FreeRTOS DMA対応LPSPI0 汎用I/O (GPIO) LPSPI1(FIFO付き) WDOG 低消費電力の質問については、アプリケーションで特定の低消費電力の例を意図的に使ったわけではありません。 ISP復旧手順を実行し、結果をお知らせします。特に以下の点についてお知らせします。 get-property 1 get-property 07 フラッシュ消去 フラッシュ消去2 これらのテストを実施する際に、他に推奨するハードウェアのチェックや測定があればお知らせください。 Prashanth1_0-1789454497591.pngPrashanth1_0-1789454497591.pngプラシャンス1_0-1789454497591.png Prashanth1_1-1789454501864.pngPrashanth1_1-1789454501864.pngプラシャンス1_1-1789454501864.png 改めてサポートありがとうございます。 よろしくお願いします、 プラシャント Re: KW45: Intermittent Wire ACK Fault During Programming/Debugging and Flash Erase Failure こんにちは、お元気でお過ごしでしょうか。   まず最初に、カスタムボードのハードウェア詳細を確認していただけますか: BOOT_CFG(PTA4)ネットにはGNDへのプルダウン抵抗が接続されていますか?VDD_SYSおよびVDD_COREのデカップリングコンデンサは実装されていますか?これらは、フィードバック経路を提供し、内部レギュレータ出力の電圧安定性を維持するために必要となる。   デバイスの復旧を試みるには、以下の手順をお試しください。 ISPモードでデバイスにアクセスできますか?そのためには、リセット中にBOOT_CONFIG(PTA4)をハイレベルにプルアップして、デバイスをISPモードに強制的に切り替えます(KW47-EVKの場合はSW4です)。 ISPモードに入ったら、コマンドプロンプトを開き、以下のコマンドを実行します。 # Confirms ROM bootloader communication is working, a successful response confirms the device is reachable via ISP blhost.exe -p COMX get-property 1 # Reveals whether the device is in OEM_OPEN or a secured lifecycle state blhost.exe -p COMX get-property 07 # Perform a mass erase of the CM33 and NBU Program Flash blhost.exe -p COMX flash-erase-all blhost.exe -p COMX flash-erase-all 2 その後、hello_worldやBLEの例を試して、基板が正常に動作しているか確認してみてください。 念のため確認ですが、以前どのアプリケーションを実行しましたか?低消費電力のサンプルでもテストしましたか?また、デバイスが低消費電力状態に入り、低消費電力運転中にSWDデバッグインターフェースが無効化され、LinkServerやJ-Linkが正常に接続できなくなる可能性もあります よろしくお願いします、 ソフィア。
記事全体を表示
HB200x AUTOSAR R21-11 バージョン 0.8.0 S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_2025 がサポートしていません こんにちは、NXPさん。 HB200x AUTOSAR仕様SDKをS32 Design Studioに統合しようとしましたが、以下のエラーメッセージが表示されます。 問題点:Mc33hbはツールチェーン/IDEプロジェクトに存在しません。プロジェクトはコンパイルできません! レベル: エラー タイプ:検証 ツール:ツールチェーン/IDEプロジェクト 起源:ペリフェラル ターゲット:ツールチェーン/IDEプロジェクト:M7_0 リソース:platform.driver.mc33hb CDD_Mb33Hb.c ファイルでさえCDD_Mb33Hb.hなどは、SDKがS32 Design Studioアプリケーション(v3.6.4)にインストールされた際には追加されていませんでした。 Re: HB200x AUTOSAR R21-11 Version 0.8.0 not supported by S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_ こんにちは、 どうやら間違ったRTDバージョンを使用しているようです。HB200x AUTOSAR R21-11 0.8.0リリースノートに基づき、このソフトウェアはSW32K3_RTD_4.4_R21-11_3.0.0_D2303_DS_updatesite.zip(S32 Design Studio IDE v3.5にインストールする必要があります)上で使用可能です。 PetrS_0-1789471295419.pngPetrS_0-1789471295419.png BR、ペトル
記事全体を表示
安装 S32K312 的 RTD 我正在尝试在 S32 Design Studio v 3.6.6上为 S32K312 设置开发环境,具体步骤如下: 1. 下载了 SW32K3_S32M27x_RTD_R23-11_7.0.1_D2603_DesignStudio_updatesite.zip 2. 在 S32 Design Studio 3.6.6 中打开了“S32Extensions and Updates”。在 Windows 11 系统上运行,并已安装 S32K3 实时驱动程序,如下所示: durga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.png 3. 按照提示重启了IDE(我也尝试过重启电脑)。 由此看来,我无法看到对 K3 系列的支持。“新建项目”对话框中没有显示此选项: durga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.png 如果我尝试安装如下所示的“S32K3XX”驱动程序: durga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.png 我收到如下所示的错误信息: durga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.png 现在在 S32DS v 3.6.2 上重复整个过程略有改善:现在“新建项目”对话框中列出了 K312 选项,但没有列出其 SDK: durga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.png 我做错了什么? Re: Installing RTD for S32K312 嗨@VaneB 很遗憾,我在S32DS 3.6.6上没有对应的版本。我已经尝试将 RTD 版本从 7.0.1 降级到 6.0.0。 是否有适用于 3.6.6 的特定版本? Re: Installing RTD for S32K312 你好@durga_choudhury 截图来自我的 S32DS 3.6.10 系统。安装过程;但是,您应该会在 IDE 中看到类似的设置。 VaneB_0-1788893776567.pngVaneB_0-1788893776567.pngVaneB_0-1788893776567.pngVaneB_0-1788893776567.pngVaneB_0-1788893776567.pngVaneB_0-1788893776567.pngVaneB_0-1788893776567.pngVaneB_0-1788893776567.pngVaneB_0-1788893776567.pngVaneB_0-1788893776567.png 另外,根据你分享的截图,我可以看到你已经成功安装了 RTD 7.0.1。由于 RTD 7.0.1 依赖于 S32K3 开发包,因此该软件包很可能已经安装。 Re: Installing RTD for S32K312 嗨@VaneB 请详细说明一下您的评论。 我看到我安装了 S32K1xx 的“开发包”(这也是我使用的 MCU 系列): durga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.png 但我发现K3并没有类似的功能。 那么我该如何安装呢?重申一下,我目前为止所做的工作是: 1. 下载了 SW32K3_S32M27x_RTD_R23-11_7.0.1_D2603_DesignStudio_updatesite.zip 2. 已将其添加为 S32 DS v 3.6.6的更新站点 3. 安装了以下软件: durga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.png Re: Installing RTD for S32K312 你好@durga_choudhury 来自您的 S32DS 3.6.6安装过程中,似乎没有安装 S32K3 开发包。 关于 S32DS 3.6.2,请注意,RTD 7.0.1 是使用 S32DS 3.6.4 开发和验证的。因此,我们建议使用 S32DS 3.6.4 版本。或者使用更新的版本以确保兼容性并避免潜在问题。 此外,还需要验证工具链。创建项目时,请确保已安装 NXP GCC 10.2.0 并选择其作为项目工具链。 BR,VaneB Re: Installing RTD for S32K312 你好@durga_choudhury 我的配置是RTD 7.0.0。随 S32DS 3.6.6 一起安装。但是,如前所述,RTD 7.0.1 应该可以正常工作,因为这些版本的设置非常相似。 能否分享一下您的安装详情? Re: Installing RTD for S32K312 你好@durga_choudhury 请注意,提供的链接并非常规网址。它对应于 S32DS 使用的更新站点,用于访问可用的软件包和更新。 要查看完整的更新站点列表,请打开 S32DS 扩展和更新窗口,然后选择“管理站点”。您可以在这里找到 IDE 识别的所有更新站点。 Re: Installing RTD for S32K312 你好@durga_choudhury 请您尝试以下操作?在 S32DS 中,转到“帮助”→“安装新软件”……这将打开安装窗口。在“使用以下方式操作:”字段中,输入以下更新站点: https://www.nxp.com/lgfiles/updates/Eclipse/S32DS_3.6 应该会显示一个可用更新列表,类似于下面显示的内容。请检查列表中是否能找到 S32 Design Studio S32K3xx 开发包,并尝试安装。 VaneB_0-1789057150680.pngVaneB_0-1789057150680.pngVaneB_0-1789057150680.pngVaneB_0-1789057150680.pngVaneB_0-1789057150680.pngVaneB_0-1789057150680.pngVaneB_0-1789057150680.png 如果代码包,软件包未出现或安装失败,我建议更新到最新的 S32DS 版本。当前安装可能缺少某些元器件,或者在安装/更新过程中某些文件损坏。 Re: Installing RTD for S32K312 嗨@VaneB 很遗憾,它对我不起作用: durga_choudhury_0-1789083559046.pngdurga_choudhury_0-1789083559046.pngdurga_choudhury_0-1789083559046.pngdurga_choudhury_0-1789083559046.pngdurga_choudhury_0-1789083559046.pngdurga_choudhury_0-1789083559046.png Re: Installing RTD for S32K312 嗨@VaneB 以下是我尝试过的两个文件(都存在同样的问题): durga_choudhury_0-1789048352154.pngdurga_choudhury_0-1789048352154.pngdurga_choudhury_0-1789048352154.pngdurga_choudhury_0-1789048352154.pngdurga_choudhury_0-1789048352154.png 以下是关于S32DS的信息: durga_choudhury_1-1789048467186.pngdurga_choudhury_1-1789048467186.pngdurga_choudhury_1-1789048467186.pngdurga_choudhury_1-1789048467186.pngdurga_choudhury_1-1789048467186.png 以下是一些安装细节,尽可能全部显示在一张屏幕截图中。您还需要其他信息吗? durga_choudhury_2-1789048687291.pngdurga_choudhury_2-1789048687291.pngdurga_choudhury_2-1789048687291.pngdurga_choudhury_2-1789048687291.pngdurga_choudhury_2-1789048687291.png Re: Installing RTD for S32K312 嗨@VaneB 感谢您的支持。请您再次确认一下网址好吗?如果我尝试从这里更新,S32 DS 会报错,如下所示: durga_choudhury_0-1789063889394.pngdurga_choudhury_0-1789063889394.pngdurga_choudhury_0-1789063889394.pngdurga_choudhury_0-1789063889394.png 如果我尝试通过 REST 类型的应用程序访问它,例如:使用 wget 下载时,出现 HTTP 错误 404(未找到)。 会不会是恩智浦内部的问题(例如,(不在面向公众的服务器上)? Re: Installing RTD for S32K312 你好@durga_choudhury 请您在另一台机器上测试一下好吗? 此外,最好与您的 IT 团队确认是否存在防火墙、代理或网络安全策略阻止访问更新站点。 Re: Installing RTD for S32K312 这似乎确实是我们的代理服务器出了问题。它可以在公司网络之外的计算机上运行。 非常感谢您的支持。
記事全体を表示
S32K312: NMI は Reset_Handler の実行前にトリガーされ、特定の機能 (SW) リセット後にのみトリガーされます デバイス: S32K312 ツールチェーン:Green Hills ELXR(コンパイラ) HSEファームウェア:s32k312_hse_fw_0.13.0_2.55.0_pb250129.bin デバッガ:Lauterbach TRACE32 ソフトウェア:AUTOSAR RTDベースのブートローダー(FBL)+アプリケーション(APP)、2イメージ構造 問題の概要 一部の生産ユニットでは、機能処理の直後にCPUがハングします (ソフトウェア)リセット。同じユニットは破壊的 (電源投入)リセット。このフリーズは、当社の基準品/正常品では再現しません。 NMIがアプリケーションコード実行前に発生している証拠 1) ハングポイントでキャプチャされるCPUコンテキスト(自動スタックされた例外フレーム): - R0-R3 = 0x00000000、R12 = 0x00000000 - LR = 0xFFFFFFFF(デフォルトリセット -> まだBLが実行されていない) - PC = 0x00416904(Reset_Handlerの最初の命令アドレス) - xPSR = 0x01000000 2) SCB->ICSR = 0x00000802 Chibeom_3-1785136456875.pngChibeom_3-1785136456875.pngChibeom_3-1785136456875.pngChibeom_3-1785136456875.pngChibeom_3-1785136456875.pngChibeom_3-1785136456875.pngChibeom_3-1785136456875.png - VECTACTIVE[8:0] = 2 -> NMI は現在アクティブな例外です - RETTOBASE = 1 これは、CPUが現在NMIハンドラ内で実行されていることを確認するものです。 3) NMIオフセットのベクトルテーブルエントリが自分のオフセットを正しく指している デフォルトの例外ハンドラなので、これはベクターではなく本物のNMIイベントです テーブルの破損。 レジスタはすべて同じハング状態(すべてクリーン/非アクティブと読み取られる)でチェックされました。 - MC_RGM_DES = 0x00000000(破壊的なリセットではない) - MC_RGM_FES = 0x20000000(ビット29のみ)(「ソフトウェア機能リセット」のみ) フラグセット、他の関数なし リセットソースフラグが設定されています) - FCCU:STAT、N2AF_STATUS、A2FF_STATUS、N2FF_STATUS、NCF_S0、IRQ_STAT all = 1 0x00000000 - CMU_FCインスタンス0、3、4:SR = 0x00000000(高低周波数フォルトなし) - PMC LVSC = 0x00000000(LVD/HVDフラグなし、ラッチまたはライブ) - ERM(0x4025C000):良好または故障したユニットで読み取れませんでした (おそらく私たちの設定ではクロックゲートされているため)、ERMの状態は未確認です。 質問 1. FCCU / CMU_FC / PMC / MC_RGM以外にNMIの情報源はありますか? アプリケーションのReset_Handlerが実行する前に、 最初の指示? 2. HSEサブシステムはアプリケーションコアとは独立して動作するため、 アプリケーションコアの機能リセットが可能である(ただし、 リセットHSE)を起動して状態の不一致を作り、NMIをトリガーします。 アプリケーションコア? 3. この症状に一致するS32K312の既知の訂正表はありますか?(NMIのみ) 機能/ソフトウェアのリセットで、電源オン時のリセットは一切ありません)。 追加のレジスターの確認や、ドキュメントについての指針はありますか? FCCU/ERM/CMU_FC/PMC以外のNMIの情報源があれば大変ありがたいです。 Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci こんにちは、 @Chibeom さん。 ハング状態のレジスタMU_0.MUB CSSR0とMU_1.MUB CSSR0を読み取り、ビット0(NMIC)がどちらかに設定されているか確認していただけますか? よろしくお願い申し上げます。 Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci こんにちは、 @danielmartynek さん、 MU_0.MUB / MU_1.MUB CSSR0 をご指摘いただきありがとうございます。 MU_0.MUBとMU_1.MUBの両方のCSSR0(ビット0、NMIC)0x00000000は ハング状態で故障したユニット、したがってMU->NMIリクエストパス(CCR0[NMI] / CSSR0[NMIC])は保留中ではないようです。 しかし、既知の良品ユニットと 故障したユニット(両方とも同じハング状態のアドレス範囲でキャプチャされました)、 一貫した違いが見られました。                                  良好なユニット 不良ユニット MU_0.MUB VER 0x0300000F 0x0300000F (同一) MU_0.MUB PAR 0x20200404 0x20200404 (同一) MU_0.MUB CR 0x00000000 0x00000000 (同一) MU_0.MUB SR 0x00000000 0x00000002 <- MURIP セット MU_1.MUB VER/PAR/CR: 正常ユニットと故障ユニットで同一 MU_1.MUB SR 0x00000000 0x00000002 <- MURIP セット SO、両方のMUインスタンスで、SRビット1(MURIP)は故障した 部分のみに設定されています。一貫して。リファレンス・マニュアルによると、MURIPは次のように示しています。 「プロセッサA」はMUリセットを発行しており、クリアできるのは システムリセット(多数ユニットリセットによるものではありません)。 CPUはNMIハンドラー内でフリーズし、実行前に何も実行しません アプリケーションコード自体がこのフラグをクリアできなかったはずなので、 この起動シーケンスの前またはその一部として設定されている必要があります。 以下の点についてご意見をお聞かせいただければ幸いです。 1.MU_0.MUBおよびMU_1.MUBの場合、どのプロセッサが「プロセッサA」(すなわち MURIPは誰が設定しているのでしょうか?ヘッダーは「MUB」レジスタブロックのみを公開します。 アプリケーションコアアクセス可能なアドレスは、 アプリケーションコアは常に「プロセッサB」、HSEは常に「プロセッサA」となります こういう場合に? 2. 「システムリセット」(MURIPをクリアするために必要)には機能型/ソフトウェアが含まれますか? アプリケーションコアのリセット、それとも破壊的/PORリセットだけ?もし MURIPは機能リセットによってクリアされないため、 電源投入後はクリアされるが、ソフトウェアリセット後も設定は維持される。 3. NMI の問題とは関係なく、MURIP フラグ自体がセット/スタック状態になっているか。 通常運転中に想定される、あるいは異常とみなされる事象か? 4. CSSR0[NMIC] が現在0を読み取っているため、ハードウェアは NMI例外エントリ時にNMICを車載クリアするのか、それとも以下でのみクリアされるのか 明示的なソフトウェア書き込み(この場合、NMIC=0はMU->NMIチャネルはそもそもアサートされていませんでした)? 改めて、これまでのご助力に感謝します。 Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci こんにちは、 @Chibeom さん。 遅れて申し訳ありません。私は2日間オフィスを不在にしていました。 1. はい、HSE_BコアはMU_0とMU_1のMUAインターフェースを制御します。 2. システムリセットはMURIPをリセットする。 3. これは例外的なことだと考えています。私自身はあまり情報を持っていません。 4. これはW1Cレジスタであるため、明示的な書き込みが必要です。 機能リセットがトリガーされた時点でHSE_Bが非アクティブであることを確認できますか? また、アプリケーションがNMIハンドラーに閉じ込められている間、どのような状態HSE_Bですか? MU_0 B面の標準HSE GPR(0x4039_C028)、FSR、GSRレジスタを読めますか? アプリケーションでNMIピンを使っていますか? よろしくお願いいたします。 ダニエル Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci こんにちは、ダニエルさん。 添付されている3つの結合レジスタダンプのスクリーンショットをご覧ください。 皆様からのご質問に基づいて整理した調査結果です。 -------------------------------------------------------- 添付ファイル -------------------------------------------------------- 添付資料1:正常なユニット(セキュアデバッグ有効、正常に動作中) Chibeom_3-1785730814252.pngChibeom_3-1785730814252.pngChibeom_3-1785730814252.pngChibeom_3-1785730814252.pngChibeom_3-1785730814252.pngChibeom_3-1785730814252.pngChibeom_3-1785730814252.png 添付資料2:機能リセット直前の故障ユニット トリガーされました(通常動作) Chibeom_4-1785730831377.pngChibeom_4-1785730831377.pngChibeom_4-1785730831377.pngChibeom_4-1785730831377.pngChibeom_4-1785730831377.pngChibeom_4-1785730831377.pngChibeom_4-1785730831377.png 添付資料3:機能リセット後、故障したユニットが NMIハンドラ(ハング状態) Chibeom_5-1785730838688.pngChibeom_5-1785730838688.pngChibeom_5-1785730838688.pngChibeom_5-1785730838688.pngChibeom_5-1785730838688.pngChibeom_5-1785730838688.pngChibeom_5-1785730838688.png -------------------------------------------------------- 調査結果 1) 機能リセットがトリガーされた時点での HSE_B アクティビティ、 2) NMIハンドラで停止している間のHSE_Bの状態: 添付ファイル2(リセット前)と添付ファイル3(リセット後)を比較すると、 故障したユニットでは、ハング状態)で、チェックしたすべてのレジスタが読み取られます。 リセット前とリセット後、全く同じ状態: - MU_0.MUB / MU_1.MUB TSR = 0x0000000F、RSR = 0x00000000(保留なし) 送信/受信チャネル上のメッセージはリセットによって変更されませんでした) - MU_0.MUB GSR = 0x00000000(変更なし) - MU_0.MUB FSR = 0x03600000(変更なし) - HSE GPR(0x4039C028)= 0x000001C1(変更なし) - MU_0.MUB / MU_1.MUB SR ビット1(MURIP)= 0x00000002 -- すでに設定済み リセットがトリガーされる前、そして設定されたまま、変更されず、その後も リセット SO、このリセットサイクルの前にすでにMURIPが設定されており、 機能リセット自体はこれらのHSE関連のいずれも変えません レジスター。 参考までに、同じセキュアデバッグ機能を備えた良質なユニットでは 構成(添付ファイル1)では、MURIPは両方とも0x00000000を読み取ります MU_0.MUBとMU_1.MUBは、HSE GPRとWKPU NCRは同じ内容です。 故障したユニットとしての値。 3) セット/スタックしたMURIPが異常かどうかについて: 承知いたしました。ご確認いただきありがとうございます。 4) NMIピンの使用: WKPUルーティング済みのNMIパスは使っていません(WKPU_IP_USEDは有効ではありません。 WKPUのドライバーコードはブートローダーにコンパイルされていません。 アプリケーション画像)。WKPU NCR (0x402B4008) = 0x60000000 全く同じ 3つの添付ファイルすべてにおいて。NSR = すべての場合において0x00000000。以来 これはすべてのユニットと条件で変更されていません。 外部/WKPU経由のNMIソースが関与しています。 これまでの調査結果の概要 MURIP (MU_0.MUB および MU_1.MUB SR ビット 1) は既に障害発生時に設定されています 機能リセットがトリガーされる前のユニットであり、 吊り下げ期間中、変化はなかった。同じ仕様の良品では0と表示されます セキュアなデバッグ構成。これが唯一一貫して再現可能な方法です 比較したすべてのレジスタ(FCCU、 CMU_FC、PMC、WKPU、MU CSSR0/GSR/TSR/RSR/GPR/FSR)を担当しています。 MURIPは「プロセッサA」(HSE_B)によって設定されており、クリアされるべきです。 あなたの回答によれば「任意のシステムリセット」と呼ばれ、すでに設定されているので 機能リセットがトリガーされます(リセット自体は表示されません) 変更するために)、これはHSE_B以前にMUリセットを発行したことを示唆しています HSE_Bが認識した「システムリセット」で解除されなかったポイントです。 質問 1. HSE側から、何が原因になるのかを判断する方法はありますか? そもそも(プロセッサA)はMUリセットをHSE_Bするのでしょうか?私たちは MURIPがそもそも設定される理由を理解したい。 2. リセットをトリガーする推奨方法はありますかHSE_B アプリケーションから「システムリセット」(MURIPをクリアするため)として認識します ソフトウェア、フル電源サイクル以外は? 3. アプリケーションコア側で詰まったMURIPフラグは、 観測しているNMIでしょうか、それともこれらはより独立している可能性が高いのでしょうか 以前の同じイベント情報の症状? この件に関して引き続きご協力いただき、改めて感謝申し上げます。 Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci こんにちは、 @danielmartynek さん、 最新情報のご提供、そしてMURIP/NMIパスのエスカレーションに感謝いたします。 社内の安全衛生チームに質問してください。感謝します、そして待ちます 彼らの意見。 その間に、関連性のある追加のデータポイントを発見しました。 だから待つのではなく、今のうちに共有したいと思いました。 UTEST Flash領域のOTPフィールドを良品と比較すると また、故障したユニットでは、ライフサイクル スロットに違いが見られました。 CUST_DEL (0x1B000220-22F) と OEM_PROD (0x1B000230-23F) は同一です 良品ユニットと 故障したユニット。 違いはIN_FIELDスロット(0x1B000240-24F)にあります。 - 正常ユニット:プログラミングが開始される Chibeom_2-1786069927793.pngChibeom_2-1786069927793.pngChibeom_2-1786069927793.pngChibeom_2-1786069927793.pngChibeom_2-1786069927793.pngChibeom_2-1786069927793.pngChibeom_2-1786069927793.png - ユニットの不具合: プログラムされていない (0xFFFFFFFF) と読み取られます Chibeom_1-1786069910918.pngChibeom_1-1786069910918.pngChibeom_1-1786069910918.pngChibeom_1-1786069910918.pngChibeom_1-1786069910918.pngChibeom_1-1786069910918.pngChibeom_1-1786069910918.png IN_FIELD内の正確なバイトパターンを現在も再確認中です。 我々の側のスロットだが、このスロットでの良し悪しの差は 一貫性のある。 もう少し詳しく教えていただけますか: 1.これは故障したユニットの構成が 移行の途中で破損または不完全になった IN_FIELD? 2. 未完成または欠落したライフサイクルの進展がIN_FIELD この件で調べているNMI/ハングの挙動について説明してください Thread? 3. このライフサイクル進行を安全に確認または完了する方法はありますか? 故障しているユニットに対して、完全な生産リフローなしで? ご協力ありがとうございました。 Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci こんにちは、 @Chibeom さん。 メモリビューに基づくと、OEM_PROD = 非アクティブ、IN_FIELD = 消去済みとなります。 まずDCMの登録簿を読んでいただけますか:RM、rev.12、セクション 39.3.1 DCM メモリ マップ。 セクション38.2.3 破壊的リセット時の読み取り専用GPR 3 (DCMROD3) はどうでしょうか? HSE_FW APIを使ってLC属性を取得することもできますよね? よろしくお願い申し上げます。 Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci こんにちは、 @Chibeom さん。 詳細なレジスタダンプをありがとうございます。MURIPの動作と、HSE_BとCM7_0間の潜在的なNMI経路に関する疑問点について、社内のHSEチームに報告しました。これは文書化されていないようです。彼らからの意見が届き次第、改めてご連絡いたします。 Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci こんにちは、 @danielmartynek さん、 DCMメモリマップとDCMROD3について教えていただき、ありがとうございます。両方のユニットでDCMSTAT(0h)、DCMLCS(8h)、DCMLCS_2(80h)、およびDCMROD3(208h)をキャプチャし、RM rev.9に対してデコードしました。 ---------------------------------------------------- 捕捉された価値 ---------------------------------------------------- 良いユニット: Chibeom_0-1786500129171.pngChibeom_0-1786500129171.pngChibeom_0-1786500129171.pngChibeom_0-1786500129171.pngChibeom_0-1786500129171.pngChibeom_0-1786500129171.pngChibeom_0-1786500129171.png - DCMSTAT (0h) = 0x00000E11 - DCMLCS (8h) = 0x00000000 - DCMLCS_2 (80h) = 0x00000000 - DCMROD3 (208h) = 0x00000000 不具合のあるユニット: Chibeom_1-1786500144600.pngChibeom_1-1786500144600.pngChibeom_1-1786500144600.pngChibeom_1-1786500144600.pngChibeom_1-1786500144600.pngChibeom_1-1786500144600.pngChibeom_1-1786500144600.png - DCMSTAT (0h) = 0x00000E03 - DCMLCS (8h) = 0x06184104 - DCMLCS_2 (80h) = 0x00000006 - DCMROD3 (208h) = 0x00400000 ---------------------------------------------------- デコードされたフィールド(正常なユニットはすべてゼロを読み取るため、故障したユニットのみ) ---------------------------------------------------- DCMSTAT: - bit1 DCMERR = 1 (DCMがエラーで完了) -- 正常なユニットではこのビットは0です - bit4 DCMLCST = 0 (LCスキャン状態が「正常に完了」していない) -- 正常なユニットではこのビットは1になります DCMLCS: - ビット 21-19 DCMLCC4 (IN_FIELD マーキング) = 011b = "領域は消去済み/未使用です" - ビット 15-13 DCMLCC3 (OEM_PROD マーキング) = 010b = "非アクティブとしてマークされています" - ビット 27-25 DCMLCC5 (Pre-FA マーキング) = 011b = "消去済み/未使用" - 関連するすべての *_ECE/*_CFE/*_CSS ビット = 0。 DCMLCS_2: - ビット 3-1 DCMLCC6 (FA マーキング) = 011b = "消去済み/未使用" DCMROD3: - bit22 LC_ERR = 1 ("ライフサイクルスキャン中にエラーが発生しました") これは、以前共有したUTEST OTPダンプと一致しています。故障したユニットのIN_FIELDスロットは、消去済み/未使用と読み取られます。 ---------------------------------------------------- 障害発生ユニットにおけるHSE_FW APIの結果(HseReadLifecycle) ---------------------------------------------------- HseReadLifecycle() は 0x10 = HSE_LC_IN_FIELD を返します。したがって、HSEファームウェアの観点から見ると、現在のライフサイクルはすでに十分IN_FIELDです。 これは上記の DCM/OTP データと矛盾しているようです。DCM の DCMLCC4 フィールドは IN_FIELD として「消去済み/未使用」と表示され、UTEST OTP の IN_FIELD スロット (0x1B000240h 以降) は未プログラム (0xFFFFFFFF) と表示されますが、HSE API はライフサイクルが IN_FIELD として確認されていると報告しています。 HSEがDCMフラッシュマーキングとは独立した別の安全なストレージを通じてライフサイクルを追跡しているのか、あるいはこれがマーキング自体に問題があることを示しているのかが不明なため、結論を出すのではなく、現状のまま共有することにしました。 よろしくお願いいたします。 チボム Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci こんにちは、 @Chibeom さん。 データ提供ありがとうございます。 IN_FIELDスロットがまだ消去された状態なので、属性をもう一度設定して進めてみることはできますか? 先ほども述べた通り、この事件は現在内部で議論中です。 新しい情報が入り次第、このThreadを更新します。 Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci こんにちは、 @Chibeom さん。 おそらく、ライフサイクル(LC)の推進を担当するHSEサービスが中断されたため、LCがこのような状態に陥ったのだろう。 LCおよびLC制御(DCMLCC)レジスタはHSE_FWと同様に0x77(IN_FIELD)を報告するが、UTEST領域は正しくプログラムされていない。理論上は、デバッガを使ってUTEST IN_FIELDスロットをプログラムでき、DCMエラーをクリアできるはずです。 よろしくお願いいたします。 ダニエル Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci こんにちは、 @danielmartynek さん。 ご提案いただいたとおり、不具合が発生しているユニットでIN_FIELD属性を再度設定してみました。 結果: HSE_SRV_RSP_NOT_ALLOWED (0xAA55A21C) よろしくお願いいたします。 チボム Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci こんにちは、 @danielmartynek さん。 UTEST IN_FIELDスロットをデバッガを使ってプログラムするというご提案、ありがとうございます。 社内OTPフィールド参照テーブルを確認したところ、IN_FIELDライフサイクルスロット(1B00_0240-024F)は、LC > MCU_PROD(OEM_PROD)以降、HSEを除くすべてのマスタに対して書き込み保護されていると記載されています。このユニットの HseReadLifecycle() は既に IN_FIELD を報告しているため、この LC 条件は既に満たされているようです。 この保護ルールの下で、このスロットにデバッガを書き込むとどのようにして成功することが期待されるのか、説明していただけますか?この場合、デバッガが許可されたマスターとして扱われるには、特定の手続き、モード、認証ステップが必要ですか? それとは別に、LCからIN_FIELDへの昇格がそもそもこのような不完全な状態のまま放置された理由について、何か調査結果は出ていますか?可能であれば、復旧手順だけでなく、根本原因についても理解したいと考えています。 ありがとう、 チボム Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci こんにちは、 @Chibeom さん。 情報ありがとうございます。 現時点ではMCUを復元する選択肢はないようです。 考えられる可能性の一つは、LCを進めるためのHSE設定属性サービス要求がシステムリセットによって中断されたことです(IVT内のLCWを使用してLCが進められなかったことは理解しています)。 HSEからのサービスリクエストに対する回答を読みましたか?エラーが発生したかどうかをログに記録していますか? サービスをトリガーする前に、HSE_STATUS_INIT_OKが設定されていることを確認していますか? この問題の影響を受ける基板/MCUの数はいくつですか?ごく一部の端末に限られる現象ですか、それともより多くの端末で確認されていますか? ありがとうございました。 ダニエル Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci こんにちは、 @Chibeom さん。 何か最新情報はありますか? よろしくお願い申し上げます。 Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci こんにちは、 @danielmartynek さん。 返信が遅くなり申し訳ありません。ご質問いただきありがとうございました。以下が私たちの回答です。 1.LC アドバンス シーケンスでは、HSE サービス応答 (DebugAuth、AdvanceLifecycle、および ReadLifecycle 呼び出しから) を読み取り、それらを使用して全体的な成功/失敗ステータスを判断します。どの呼び出しが失敗したか、あるいは個々のエラーコードはログに記録されません。全体的なOK/FAILの結果のみが存在し、それはどこにも保存されません。したがって、これらのユニットで最初のLCの進階時に何が起こったかの記録はありません。 2. 当社のLC更新機能もその呼び出し元も、AdvanceLifecycleサービスをトリガーする前にHSE_STATUS_INIT_OKを明示的にチェックしません。ダウンロードフローの開始時に、MU_0.MUB FSRレジスタ(0x4038C104)を読み取り、そこからhseStatus_tを導出することによって、HSE_STATUS_INIT_OKを一度チェックします(Hse_Ip_GetHseStatusで行われるように、FSRビット16~31をマスク/シフトします)。このチェックは、フローの後半にあるライフサイクル進行ステップの前には繰り返されません。 追加の参考として、故障したユニットの本番機器ログは以下の順を示しています:FSRチェック完了(OK) -> App Download -> Secure Debug Enable -> FAIL なお、機器ログの「Secure Debug Enable」はLCの進行を含む全手順(DebugAuth、AdvanceLifecycle、ReadLifecycleを合わせて)を指します。単一のパス/フェイルステップとして記録されているため、どのサブステップが実際に失敗したかはこのログから判断できません。 当社のデバッグ機器(TRACE32)は、既存のデバッグフローの一部としてHSE_STATUS_INIT_OKをチェックしていますが、ダウンロード/プログラミング機器(生産ライン)は、LCの進行がトリガーされるシーケンスの時点でこれを一貫してチェックしていない可能性があります。 影響を受けるユニット数について:現在、この問題が発生しているボード/MCUは2台です。 さらに、2つの追加質問があります。 - FSRレジスタを読み取ってそこからhseStatus_tを導出する方法は、HSE_STATUS_INIT_OKを確認するための有効な/推奨される方法でしょうか? - 現在、ダウンロードフローの開始時に、このレジスタ読み取りを介して HSE_STATUS_INIT_OK を一度チェックしています。ライフサイクルの進行を開始する前に、具体的にチェックする必要があるでしょうか? チボムさん、ありがとうございます。 Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci こんにちは、 @danielmartynek さん。 お元気でお過ごしでしょうか。このスレッドに何か進展があるか確認したくて投稿しました。 機会があれば、どんなアドバイスでも教えていただけるとありがたいです。 ありがとう、 チボム Re: S32K312: NMI triggered before Reset_Handler executes, only after Functional (SW) Reset, on speci こんにちは、 @Chibeom さん。 遅れて申し訳ありません。HSEチームからのフィードバックを待っていましたが、NMIに関する明確な説明はまだ得られていません。 DCMROD3のLC_ERRフラグ:FCCU NCF 3がNMIを生成するように設定されている場合にのみ、NMIをトリガーできます。 ご質問にお答えします。 はい、その通りです。 システムのリセット後には、HSE_STATUS_INIT_OKフラグを確認する必要があります。アプリケーションはこのフラグを待ってからシステムクロックを変更したり、HSEサービスを利用したりする必要があります。一度設定すると、そのまま維持されます。さらに、アプリケーションはHSE_Bコア(PRTN0_CORE2_STAT[WFI])のWFIフラグをポーリングし、HSE_Bが忙しいかアイドルかを判断できます。 断続的なLC進行についてですが、もう一つ調査すべき根本原因が考えられます。ライフサイクルを変更するとUTESTフラッシュの内容が変更され、UTESTフラッシュはCode Flash Block 0と同じRWW(Read-While-Write)パーティションに存在します。UTEST書き込み中にBlock 0からコードが実行されている場合、RWWエラーが発生し、ライフサイクル変更が成功裏に完了しなくなることがあります。これを防ぐために、申請はLC昇進サービス中にブロック0への同時アクセスがないことを保証しなければなりません。キャッシュはほとんどの場合この問題を隠すことがありますが、特に同期されていないイベント情報を使う場合、キャッシュミスが発生し問題が目に見える場合もあります。 よろしくお願いいたします。 ダニエル
記事全体を表示
KW45: Intermittent Wire ACK Fault During Programming/Debugging and Flash Erase Failure Hi Team, I am currently working with a KW45-based custom board and facing an intermittent issue during programming and debugging the firmware. I have tested the board with both a SEGGER J-Link and an NXP MCU-Link debug probe, and the issue occurs with both probes. The custom board has the same boot configuration as the KW45 EVK, and the JTAG/SWD connections have also been checked and appear to be correct. However, I am seeing the following behaviour: When I try to dump or program a known-working application: Sometimes the application is programmed successfully, but after programming or starting a debug session, the device eventually jumps to a fault address. The debugger then halts at that location. During some programming or dumping attempts, I receive a Wire ACK fault. At other times, MCUXpresso reports: Error while executing the MI command I also tried to erase the flash from MCUXpresso, but the flash erase operation itself does not complete successfully. Checks already performed JTAG/SWD connections have been checked and appear to be correct. The issue was tested with both a SEGGER J-Link and an NXP MCU-Link debug probe. Boot configuration has been compared with the KW45 EVK. I am using a known-working application for testing. The issue is intermittent: programming sometimes succeeds, but at other times a Wire ACK fault or MI command error occurs. Flash erase has also been attempted, but it does not complete successfully. My questions What could cause the KW45 to: Intermittently report a Wire ACK fault while dumping or programming code? Report Error while executing the MI command? Jump or halt at an unexpected or invalid memory address after programming? Fail even when attempting a full flash erase? Since the issue includes intermittent Wire ACK faults and failure during flash erase, I suspect this may be related to the debug interface, SWD/JTAG signal integrity, power-supply stability, reset sequence, flash controller state, device security/configuration, boot configuration, or another hardware-level issue rather than the application itself. Could you please suggest the recommended procedure to: Recover or erase the KW45 device. Verify that the debug interface is functioning correctly. Check whether the device is secured or in a state that prevents normal programming. Determine whether the Wire ACK fault is caused by the target hardware, debug probe, power/reset behavior, or SWD/JTAG signal integrity. I can provide the following information if required: MCUXpresso IDE version: 25.6.1 Debug probes tested: SEGGER J-Link and NXP MCU-Link Complete error log, including the Wire ACK fault details Debug console output Schematic of the JTAG/SWD and boot connections SWD/JTAG clock frequency Power-supply and reset configuration Memory/register information from the failed state Any guidance on the recommended troubleshooting steps would be greatly appreciated. Thanks in advance. Re: KW45: Intermittent Wire ACK Fault During Programming/Debugging and Flash Erase Failure Hi Ma'am, Thank you for your detailed response. Regarding the hardware details: BOOT_CFG (PTA4) pull-down: Yes, the BOOT_CFG (PTA4) net has a pull-down resistor to GND on our custom board. VDD_SYS and VDD_CORE decoupling capacitors: Yes, the required decoupling capacitors are populated on the board. I have attached the relevant schematic sections/images showing the VDD_SYS and VDD_CORE connections and decoupling capacitors. Meanwhile, I will proceed with the steps you suggested to access the device through ISP mode and will try the blhost commands to check the device state and perform the mass erase. Regarding the application that was previously running: The application is based on FreeRTOS and integrates the following peripherals/modules: FreeRTOS LPSPI0 with DMA GPIO LPSPI1 with FIFO WDOG Regarding the low-power question, I did not intentionally use any specific low-power example in the application. I will perform the ISP recovery procedure and let you know the results, particularly for: get-property 1 get-property 07 flash-erase-all flash-erase-all 2 Please let me know if there are any additional hardware checks or measurements you recommend while I perform these tests. Prashanth1_0-1789454497591.pngPrashanth1_0-1789454497591.pngPrashanth1_0-1789454497591.png Prashanth1_1-1789454501864.pngPrashanth1_1-1789454501864.pngPrashanth1_1-1789454501864.png Thanks again for your support. Best regards, Prashanth Re: KW45: Intermittent Wire ACK Fault During Programming/Debugging and Flash Erase Failure Hello, hope you are doing well.   Firstly, could you please confirm some hardware details from your custom board: Does the BOOT_CFG (PTA4) net have a pull-down resistor to GND? Are the VDD_SYS and VDD_CORE decoupling capacitors populated? As these are required to provide a feedback path and maintain voltage stability on the internal regulator output.   To attempt to recover the device, please try the following steps: Are you able to access your device through ISP mode? For this, pull BOOT_CONFIG (PTA4) high during reset to force the device into ISP mode (on a KW47-EVK this is SW4) Once in ISP mode, open a command prompt and run the following commands: # Confirms ROM bootloader communication is working, a successful response confirms the device is reachable via ISP blhost.exe -p COMX get-property 1 # Reveals whether the device is in OEM_OPEN or a secured lifecycle state blhost.exe -p COMX get-property 07 # Perform a mass erase of the CM33 and NBU Program Flash blhost.exe -p COMX flash-erase-all blhost.exe -p COMX flash-erase-all 2 Afterwards, you could try running a hello_world or BLE example to make sure the board is working properly. Also, just to confirm, which application did you run previously? Did you test with any low power examples? It is also possible that the device entered a low‑power state, disabling the SWD debug interface during low-power operation, which would prevent LinkServer or J-Link from connecting normally Best regards, Sofia.
記事全体を表示
S32 Design Studio for ARM 2.2 はアクティベートできません。 S32 Design Studio for ARM 2.2をインストールします。 1. アクティベーション中に「オンライン」を選択すると、図 1 に示すエラーが発生します。https ://community.nxp.com/t5/S32-Design-Studio-Knowledge-Base/Troubleshooting-Activation-fails-with-error-message-FNP-ERROR-0/ta-p/1123259を使用すると、図 2 に示すエラーが発生します。ただし、私のコンピュータの FlexNet サービスは...ライセンスサービスは立ち上げ段階です 2. オフライン認証を使用する際に、公式サイトの手順に正確に従ったところ、図3に示すエラーが発生しました。このバージョンのソフトウェアを正しく認証およびインストールするにはどうすればよいでしょうか? Re: 安装S32 Design Studio for ARM 2.2无法激活 手順通りにやったのですが、それでもうまくいきません。 Re: 安装S32 Design Studio for ARM 2.2无法激活 こんにちは、 @aetherさん。 FNPエラー20は通常、部品が正しくインストールされていないか、現在のユーザーがアクセスできないことに関連しています。以下の方法を試していただけますか: ARM v2.2用のS32DSを完全にアンインストールし、C:\NXP\S32DS_ARM_v2.2の残っているファイルも削除してください。 隠しフォルダ C:\ProgramData\FLEXnet\ の内容をバックアップして削除してください。 ベースのS32DS for ARM v2.2パッケージを再ダウンロードしてインストールしてください(アップデート2なし)。 管理者権限でインストーラーを実行し、ウイルス対策ソフトやセキュリティソフトがブロックしていないか確認してください。 BR、VaneB Re: 安装S32 Design Studio for ARM 2.2无法激活 こんにちは、 @aetherさん。 インストールログファイル(.log)を共有してもらえますか?それは以下の通りです: C:\NXP\S32DS_ARM_v2.2\_S32 Design Studio for ARM Version 2.2_installation\Logs
記事全体を表示
GUI Guider 1.10.1 在背景不透明度为 0 时会忽略背景样式属性。 环境 GUI 指南:1.10.1 LVGL:8.3 小部件:按钮 款式部分:LV_PART_MAIN 样式状态:LV_STATE_DEFAULT 问题描述 我在 GUI Guider 1.10.1 中发现了一个可重现的代码生成问题。 当按钮配置了背景颜色,但其背景不透明度设置为 0 时,GUI Guider 不会生成相应的背景颜色属性。 当在运行时动态更改背景不透明度时,这会导致意外行为。 生殖 创建按钮并进行配置: 背景颜色:#F08300 背景不透明度:0 然后生成 LVGL 8.3 代码。 GUI 指南程序生成: lv_obj_set_style_bg_opa(ui->screen_password_btn_15, 0, LV_PART_MAIN | LV_STATE_DEFAULT); 但是,配置的背景颜色并未生成: lv_obj_set_style_bg_color(ui->screen_password_btn_15, lv_color_hex(0xF08300), LV_PART_MAIN | LV_STATE_DEFAULT); 测试:仅将背景不透明度从 0 改为 1 我只将背景不透明度从 0 改为 1,而背景颜色保持为 #F08300。 代码重新生成后,GUI Guider 会生成: lv_obj_set_style_bg_opa(ui->screen_password_btn_15, 1、 LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_color(ui->screen_password_btn_15, lv_color_hex(0xF08300), LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_grad_dir(ui->screen_password_btn_15, LV_GRAD_DIR_NONE, LV_PART_MAIN | LV_STATE_DEFAULT); 因此,生成的代码取决于背景不透明度是否恰好为 0。 背景不透明度 = 0: 生成 bg_opa bg_color 未生成 背景不透明度 = 1: 生成 bg_opa bg_color 已生成 还会生成其他背景属性。 运行时影响 我的应用程序使用背景不透明度来指示当前选定的密码数字。 GUI Guider 中将背景颜色配置为 #F08300,而应用程序仅动态更改背景不透明度。 例如: lv_obj_set_style_bg_opa(btn, LV_OPA_COVER, LV_PART_MAIN | LV_STATE_DEFAULT); 对于初始背景不透明度为 0 的按钮,生成的代码不包含配置的背景颜色。 当应用程序将不透明度从 0 更改为 LV_OPA_COVER 时,按钮将显示 LVGL 主题或默认背景颜色,而不是 GUI Guider 中配置的 #F08300 颜色。 这种行为是: GUI引导程序配置: 背景颜色 = #F08300 背景不透明度 = 0 生成的代码: bg_opa = 0 bg_color 未生成 运行时: bg_opa 已更改为 LV_OPA_COVER 结果: 显示的是默认背景色或主题背景色,而不是 #F08300。 临时解决方案 在应用程序代码中显式设置背景颜色可以解决此问题: lv_obj_set_style_bg_color(btn, lv_color_hex(0xF08300), LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_opa(btn, LV_OPA_COVER, LV_PART_MAIN | LV_STATE_DEFAULT); 另一种可能的解决方法是在 GUI Guider 中将背景不透明度设置为 1,因为这会导致 GUI Guider 生成配置的背景颜色。 但是,这会改变初始用户界面状态,因此并不理想。 预期行为 背景颜色和背景不透明度是独立的 LVGL 样式属性。 如果用户明确配置: 背景颜色 = #F08300 背景不透明度 = 0 我希望 GUI Guider 能在生成的代码中保留这两个属性: lv_obj_set_style_bg_opa(btn, 0, LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_color(btn, lv_color_hex(0xF08300), LV_PART_MAIN | LV_STATE_DEFAULT); 虽然当 bg_opa 为 0 时 bg_color 没有明显的影响,但当应用程序在运行时动态更改 bg_opa 时,它就变得重要了。 当前代码生成行为会丢失在 GUI Guider 中配置的背景颜色信息。 实际行为 GUI Guider 1.10.1 在背景不透明度为 0 时似乎会忽略背景样式属性。 仅将不透明度从 0 改为 1,会导致背景颜色和其他背景属性重新生成。 重现步骤 在 GUI Guider 1.10.1 中创建按钮。 将背景颜色设置为 #F08300。 将背景不透明度设置为0。 生成LVGL 8.3代码。 注意,已生成值为 0 的 lv_obj_set_style_bg_opa。 请注意,未生成颜色为 #F08300 的 lv_obj_set_style_bg_color。 仅将背景不透明度从 0 改为 1。 重新生成代码。 请注意,现在已生成颜色为 #F08300 的 lv_obj_set_style_bg_color。 在运行时,将原始按钮的不透明度更改为 LV_OPA_COVER。 请注意,除非应用程序明确设置了 bg_color,否则配置的背景颜色不会显示。 问题 这是 GUI Guider 1.10.1 中有意为之的代码大小优化,还是代码生成问题? 如果这种优化是有意为之,GUI Guider 能否提供一个选项,在背景不透明度为 0 时保留背景属性? 运行时应用程序通常会动态更改 LVGL 样式属性,因此仅根据其初始不透明度省略 bg_color 可能会导致运行时行为与 UI 配置不同。 Re: GUI Guider 1.10.1 omits background style properties when Background Opacity is 0 你好@zzjgood, 感谢你的帖子。 我可以重现您描述的情况。我认为这是一个代码生成问题。如果用户明确配置了背景颜色,即使初始背景不透明度为 0,GUI Guider 也应该保留相应的 bg_color 代码,或者提供一个选项来保留透明对象的背景样式属性。我会将此问题报告给 GUI-Guider 团队,以便他们进一步修复。此外,根据我们的内部升级流程,如果您能提供以下信息,我们将不胜感激: - 你用的是哪款NXP产品? - 你的最终应用是什么? 目前实际的变通方法是在应用代码中明确设置背景色和不透明度: 复制 lv_obj_set_style_bg_color(btn, lv_color_hex(0xF08300), LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_opa(btn, LV_OPA_COVER, LV_PART_MAIN | LV_STATE_DEFAULT); 希望它有帮助。 BR 塞莱斯特 Re: GUI Guider 1.10.1 omits background style properties when Background Opacity is 0 好的,谢谢你的回复。 Re: GUI Guider 1.10.1 omits background style properties when Background Opacity is 0 你好@zzjgood, 希望你一切都好。 我们收到了关于此问题的最新消息。在 v1.10.1 版本中,当不透明度设置为 0 时跳过背景样式代码生成的行为是特意设计的,目的是为了减少不必要的生成代码。同样的逻辑也适用于边框样式。 我们理解,在您的使用场景中,生成剩余的样式代码可能仍然是有益的。然而,v1.x 分支已停止更新。相比之下,v2.x 会生成所有用户配置的样式属性,而不管它们的值是什么,这完全支持您的场景。 因此,我们建议迁移到 Gui-guider v2.x 版本。 快速创建现代化的嵌入式图形用户界面 | 恩智浦半导体 此致, 塞莱斯特
記事全体を表示