Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
S32K144 で自動 CAN バスオフ回復を無効にするにはどうすればいいですか? こんにちは、みんな! S32K144CAN バスオフをオフにした後、自動回復を無効にするにはどうすればよいですか? バスオフをオフにした後、手動で回復する必要があります。 Re: S32K144 怎么关闭CAN busoff自动恢复? こんにちは@pidcy このバージョンにはチェックするオプションがありません。チェックするオプションは S32 DS V3.X バージョンに用意されています。 レジスタに直接書き込むことで、BOFFREC をオフにすることができます。 Re: S32K144 怎么关闭CAN busoff自动恢复? 私は IDE バージョン 2.2 を使用していますが、使用しているバージョンは何ですか? Re: S32K144 怎么关闭CAN busoff自动恢复? こんにちは@pidcy 私の IDE はすべて、自動回復を有効または無効にするオプションを提供しています。また、レジスタ操作を通じて直接自動回復を無効にすることもできます。 例: CAN0 -> CTRL1 |= 0x40 ;//BOFFREC = 1
記事全体を表示
tlbwe 指令(e200z7)的同步要求 你好 启动 MPC5777C 时,我在理解 tlbwe 指令的同步要求时遇到了一些困难。从 EREF_RM 表 4-3 中,我(认为我)理解了这一点: 为了同步数据访问,我们必须在 tlbwe 之前使用一条 CSI 指令,在 tlbwe 之后使用另一条 CSI 指令。注 5 显示了在 tlbwe 之后可能需要额外 msync 的情况。 要实现指令取回/执行同步,只需在 tlbwe 之后执行 CSI 指令。注 2 显示了在 tlbwe 之后可能需要额外 msync 的情况。 AN5191 显示的示例中,除了运行 MMU 配置本身的 TLB 页面外,没有执行任何同步。在这种情况下,msync 在 tlbwe 之前执行,isync 在 tlbwe 之后执行。我的问题是 - 什么时候可以确定 tlbwe 不需要 CSI 指令? - 在 AN5191 示例中,se_isync 是否可以用任何其他 CSI 指令代替? - 在 AN5191 示例中,为什么在 tlbwe 之前插入 msync?这是否等同于描述在 tlbwe 之后可能需要额外 msync 的 EREF 注释? - EREF_RM 表 4-41 将 msync 描述为执行指令和内存同步。为什么在 msync 之后需要 CSI 指令? 谢谢! 里卡多 Re: Synchronization requirements for tlbwe instruction (e200z7) 最新版本可从我们的网站下载: davidtosenovjan_0-1756722291456.png 然而,msync、tlbwe、isync 等序列都是行之有效、广泛使用的序列。 根据《EREFrequirements》,isync 似乎可以放在 tlbwe 之前(在这里添加并无不妥,因此如果使用 msync、isync、tlbwe、isync)。 显然,它的性能得到了优化,因为它是在启动过程中使用的,不需要访问存储器,只需要访问内核寄存器和执行指令。这可能需要更深入的分析。 此外,MTSPR(MASn)的运行也有一定的要求。 Re: Synchronization requirements for tlbwe instruction (e200z7) 你好,戴维、 我使用的是 EREF 2.0 Rev. 0 09/2011 - 这是我找到的最新版本,除了这个版本之外,我找不到其他版本(https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/mpc5xxx/3777/1/EREFRM.pdf)。 我能看到的表格有 ricardofranca_0-1756306278573.png ricardofranca_1-1756306504078.png 我感知到在写入 TLB 条目之前完成所有交易是有意义的,但我无法在文档的任何地方找到 tlbwe " 之前的 " msync 的明确要求。能否告诉我这一要求的位置,以便我在自己的文档中参考? 我提到的注释是我粘贴在这里的第一个表格的注释 5:",如果必须确保这些补全,则 tlbwe、tlbilx ,或 tlbivax 之后必须有同步和上下文同步指令" 。如果我在 tlbwe 之前使用了 msync,是否可以忽略此说明? 最后,我和我的同事们都希望使用一种适用于任何情况的通用同步指令模式。因此,如果 msync-tlbwe-isync 可以涵盖所有情况,那么即使我们可以使用更少(或更轻)的指令,我们也会使用它。在解释这种模式时,我们只需要一些参考就可以了。 谢谢您! Re: Synchronization requirements for tlbwe instruction (e200z7) 表 5-3.数据访问同步要求和表 5-4。指令取回和/或执行同步要求明确定义了 tlbwe 的同步要求。 通常的顺序是 毫同步 tlbwe 异步 问:什么时候可以确定 tlbwe 不需要 CSI 说明? 答:最好能做到无懈可击,并始终放在那里,然后再处理因丢失同步指令而造成的问题。更改上下文需要几个周期,如果在此期间没有触及新的上下文(例如定义之前没有定义的内存),就不会有问题。在 AN5191 中,它是启动代码,tlbwe 之后是另一个寄存器加载和另一个 TLB 的定义,因此可以退出 TLB1 或 TLB3。 问:在 AN5191 示例中,se_isync 是否可以用任何其他 CSI 指令代替? 答:是的,如果确实有感知的话。表中符号 "CSI "指任何上下文同步指令(sc、isync、rfi、rfgi 、rfci、rfdi 或 rfmci)。在 AN5191 中,这没有任何感知。 问:在 AN5191 示例中,为什么在 tlbwe 之前插入 msync?这是否等同于描述在 tlbwe 之后可能需要额外 msync 的 EREF 注释?或者在其他情况下,需要在 tlbwe 之前进行 msync? 答:不知道你想的是哪个音符,但这是可能的。我会保留标准序列,例如 MAS TLB 计算器中的序列: https://community.nxp.com/t5/MPC5xxx-Knowledge-Base/MMU-Assist-Register-CONFIGURATOR/ta-p/1110436 问:表 4-41 EREF_RM 将 msync 描述为执行指令和内存同步。为什么在 msync 之后需要 CSI 指令? 答:您显然没有最新的文件。最新版本为 EREFRM Rev. 1 12/2007。正如我已经提到的,tlbwe 需要 Isync。
記事全体を表示
After resetting, the s32k312 enters the HardFault_Handler abnormally The chip used is s32k312, with the compiler version being S32DS3.5 and RTD3.0. During the production of uds-boot, some valid information is fixed in pflash at address 0x0043E000. sensen_1_0-1762236756459.png sensen_1_1-1762236817623.png sensen_1_2-1762236843789.png sensen_1_3-1762236858994.png Program the bootloader into the chip, and then flash the app program via the host computer. After the first flash, you can use the internal watchdog timeout reset to ensure the program correctly enters the app. However, when the program is running in the app and another app flash operation is performed, the program enters the HardFault_Handler after resetting. Please help me check if there is a configuration issue, or if there is a standard configuration method. As long as the information is not fixed in p_flash, but instead written to 0x0043E000 through instructions later, the program can run normally. Thank you very much for your support.
記事全体を表示
MBDT BMS Pkg アドオンと S32k3xx v1.5.0 の互換性、または v1.4.0 の並行インストール S32K3xx MBDT v1.4.0 で正式にサポートされている MBDT 用の NXP_Support_Package_BMS アドオンを使用しようとしています。 私のシステムには、進行中の他のプロジェクト用にすでに MBDT v1.5.0 がインストールされていますが、アドオンはこの新しいバージョンでは動作しないようです。 現在、BMS 開発には S32K396 POC ボードを使用しています。 ありますか: アドオンをv1.5.0と互換性を持たせる方法、または 競合なく、同じ MATLAB インストールまたはシステム上で、v1.4.0 と v1.5.0 の両方を並行してインストールして実行する方法はありますか? 並行インストールが可能な場合は、正しいセットアップ手順を教えてください。 Re: Compatibility of MBDT BMS Pkg Add-On with S32k3xx v1.5.0 or Parallel Installation of v1.4.0 こんにちは、 BMS 用のモデルベース デザイン ツールボックスは現在、S32K3 1.4.x 用の MBD ツールボックスとのみ互換性があります。現時点では、MBD Toolbox for S32K3 1.5.0 と互換性を持たせる方法はありません。 次に、同じ MATLAB インストールに v1.4.0 と v1.5.0 の両方を並行してインストールすることはできません。唯一の実行可能な代替手段は、別の MATLAB をインストールし (ライセンスで許可されている場合)、そこにツールボックスの 1 つをインストールすることです。 よろしくお願いいたします。 ソリン・バンチラ
記事全体を表示
IW611 Wi-Fiモジュールのドライバとファームウェア こんにちは、 Wi-Fi ドライバを構築する手順と、IW611 に関連するいくつかの質問を明確にしたいと思います。ぜひご覧になってみてください。ありがとう。 私はカーネル 5.10 を使用しており、私の理解に基づいて、IW611 用の WiFi ドライバを構築する手順は次のとおりです。間違っていたら訂正してください。 1) クローンリポジトリ: http://github.com/nxp-imx/mwifiex.git 私のカーネルバージョンに最も近いバージョンをチェックアウトします。例: lf-5.10.y_1.0.0 質問: この lf-5.10.y_1.0.0 ブランチの最終更新は 4 年前です。そのブランチのソース コードは最新であり、すべての IW611 機能をサポートしていますか? 2) 5.10 カーネル ソース コードを指す KERNELDIR= をエクスポートします。 3) $CROSS_COMPILEを更新する 3) wlan_src に cd する 4) クリーン&ビルドを実行する その他の質問 https://github.com/nxp-imx/imx-firmware.gitのファームウェアの場合、IW611 に使用されているファームウェアをどのように確認すればよいですか?また、私のCASEでは lf-5.10.y_1.0.0 ブランチもチェックアウトする必要があるというのは正しいでしょうか? IW611 ライアン Re: IW611 Wifi module driver and firmware こんにちは@RyanKhor 質問: この lf-5.10.y_1.0.0 ブランチの最終更新は 4 年前です。そのブランチのソース コードは最新であり、すべての IW611 機能をサポートしていますか? --> リリースごとに機能リストを提供していますので、ご確認いただけます。i.MX アプリケーションプロセッサ向け組み込み Linux | NXP Semiconductors https://github.com/nxp-imx/imx-firmware.git にあるファームウェアについて 、IW611に使用されているファームウェアを確認するにはどうすればよいですか?また、私のCASEでは lf-5.10.y_1.0.0 ブランチもチェックアウトする必要があるのでしょうか? --> iw611 と iw612 は同じファームウェアを共有します。 よろしくお願いいたします。 ショーン
記事全体を表示
ベーシックセキュアブート HSE S32K344 ADKP こんにちは、みんな、 ベースセキュアブートでADKPをプログラムする方法を知りたいです S32K344-WB #HSE#ベースセキュアブート よろしくお願いします。 Re: Basic Secure Boot HSE S32K344 ADKP こんにちは、みんな、 私はS32K312EVB-Q172ボードを使用しており、 HSE デモ例をテストしたいと考えています。 ファイルS32K3_HSE_DemoExamples_1_0_0.zipにアクセスすることは可能でしょうか? 私はS32 プラットフォーム用の S32 Design Studio をPEMicro デバッガーと一緒に使用しています。 ご協力をよろしくお願いいたします! よろしくお願いします、 ダビデ Re: Basic Secure Boot HSE S32K344 ADKP こんにちは@silvia_zandoli2 発生している問題に関連している可能性があるので、次のThreadを確認することをお勧めします。 S32K344 セキュアブート HSE_VerifyBootImage の問題 Re: Basic Secure Boot HSE S32K344 ADKP こんにちは、 ブートローダーが正常に起動し (HSE_SignBootImage OK)、検証に合格すると、システムの LED が短時間青色に点滅します (セキュア ブートが成功したことを示します)。しかし、再起動または2回目のデバッグ時にシステムがクラッシュし、/* 生成されたタグがAPPBLに対して有効であることを確認する*/が合格しません。 #if VERIFY_TAG srvResponse = HSE_VerifyBootImage(pAppBL); ASSERT(HSE_SRV_RSP_OK == srvResponse); 問題は上書きにあると思われます。修正方法をご存知ですか? どうもありがとうございます。 Re: Basic Secure Boot HSE S32K344 ADKP こんにちは@silvia_zandoli2 HSE サービス応答 0x55A5AA33 は HSE_SRV_RSP_OK に対応します。 ただし、HSE_SignBootImage() 関数の呼び出し時に問題が発生する場合は、次のThreadを確認することをお勧めします。発生している問題に関連している可能性があります。 HSE_VerifyBootImage は HSE_SRV_RSP_VERIFY_FAILED を返します 問題が解決しない場合、またはThreadが特定のCASEに対応していない場合は、お知らせください。 Re: Basic Secure Boot HSE S32K344 ADKP S32K3_HSE_DemoExamples_1_0_0、S32K344デバイスを持っています ADKP は正常にプログラムされています (check_debug_password_programmed_status() が TRUE を返します)。 しかし、関数HSE_SignBootImage()は呼び出し直後に失敗し続け、エラーコード0x55a5aa33を返します。 基本的なセキュアブートのメインではアサートをパスしません /* 生成されたタグがAPPBLに対して有効であることを確認します */ #if VERIFY_TAG srvResponse = HSE_VerifyBootImage(pAppBL); ASSERT(HSE_SRV_RSP_OK == srvResponse); #endif S32K344_SecureBootBlinky.bin を生成し、C:\NXP に配置します。SecureBootBlinky と Basic_SecureBoot は C:\NXP\S32K3_HSE_DemoExamples_1_0_0\S32K3_HSE_DemoExamples\Secure_Boot にあります。 ベーシックセキュアブートのリンカーファイル「S32K344_flash.ld」に、 _adkp_key :  {  . = ALIGN(4);  キープ(*(_adkp_key))  . = ALIGN(4);  } > フラッシュ そのファイルを変更する必要がありますか?あなたに添付します /***************************************************************************** * * Copyright 2020-2022 NXP * All Rights Reserved * ***************************************************************************** * * このソフトウェアはNXPによって「現状のまま」提供され、明示的または黙示的を問わず、 * 黙示の保証(ただし、これに限定されません) * 商品性および特定目的への適合性については保証されません。 * いかなる場合においても、NXPまたはその貢献者は、いかなる直接的、間接的、偶発的、特別、懲罰的、または結果的な損害に対しても責任を負わないものとします。 * (代替品の調達を含むが、これに限定されません) * サービス、使用、データ、利益の喪失、または事業の中断) * いかなる原因であっても、また契約上の責任理論に基づいても、 * 厳格責任、または不法行為(過失その他を含む)から生じる * いかなる場合においても、このソフトウェアの使用から生じるいかなる損害についても、 * 当該損害の可能性。 * ********************************************************************************/ __STACK_SIZE = 0x00001000; __HEAP_SIZE = 0x00001000; /* メモリ領域を構成するリンカー スクリプト。Aggiungi PFLASH_SECURE は、地域の鳩を見て、チアビの批判を受け入れます*/ メモリ { ITCM (RWX) : 原点 = 0x00000000、長さ = 0x10000 PFLASH (RX) : 原点 = 0x400000、長さ = 0x3f4000 DFLASH (RX) : 原点 = 0x10000000、長さ = 0x20000 DTCM (RW) : 原点 = 0x20000000、長さ = 0x20000 SRAM0_STDBY (RW) : 原点 = 0x20400000、長さ = 0x8000 SRAM (RW) : 原点 = 0x20408000、長さ = 0x48000 } /* セクションとシンボル値を配置するためのリンカー スクリプト。一緒に使用する必要があります * メモリ領域 FLASH および RAM を定義する他のリンカー スクリプトを使用します。 * 次のシンボルを参照します。これらはコード内で定義する必要があります。 * Reset_Handler: リセットハンドラのエントリ * * 次のシンボルを定義します。コードでは定義しなくても使用できます。 * __exidx_start * __exidx_end * __ecc_table_start __ * __ ecc_table_end __ * __電子テキスト * __data_start __ * __事前初期化配列開始 * __preinit_array_end * __init_array_start * __init_array_end * __fini_array_start * __fini_array_end * __data_end __ * __ bss_start __ * __ bss_end __ * __ end __ * end * __ヒープ制限 * __StackLimit * __スタックトップ * __スタック */ ENTRY(リセットハンドラー) セクション { 。文章: { KEEP(*(.vectors)) *(。文章*) KEEP(*(.init)) KEEP(*(.fini)) /* .ctors*/ *crtbegin.o(.ctors) *crtbegin?.o(.ctors) *(EXCLUDE_FILE(*crtend?.o *crtend.o).ctors) *(SORT(.ctors.*)) *(.ctors) /* .dtors*/ *crtbegin.o(.dtors) *crtbegin?.o(.dtors) *(EXCLUDE_FILE(*crtend?.o *crtend.o).dtors) *(SORT(.dtors.*)) *(.dtors) *(.rodata*) 保持(*(.eh_frame*)) } > フラッシュ .ARM.extab: { *(.ARM.extab*.gnu.linkonce.armextab.*) } > フラッシュ __exidx_start = .; .ARM.exidx : { *(.ARM.exidx*.gnu.linkonce.armexidx.*) } > フラッシュ __exidx_end = .; .ecc.テーブル: { 。= 整列(4); __ecc_table_start__ = .; QUAD (__data_start __) QUAD ((__ data_end __ - __ data_start__) / 😎 クアッド (__bss_start __) QUAD ((__ bss_end __ - __ bss_start__) / 😎 QUAD ( __HeapTop) QUAD ((__ヒープ制限 - __ヒープトップ) / 😎 QUAD ( __StackLimit) QUAD ((__スタックトップ - __StackLimit) / 😎 クワッド(原点(ITCM)) クワッド(長さ(ITCM)/ 😎 クアッド(原点(DTCM)) クワッド(長さ(DTCM)/ 😎 __ecc_table_end__ = .; } > フラッシュ .copy.table : { 。= 整列(4); __copy_table_start__ = .; LONG ( __etext) LONG (__データ開始__) LONG ((__データ終了__ - __データ開始__) / 4) /* ここに各追加データセクションを追加します */ /* LONG ( __etext2) LONG (__ data2_start __) LONG ((__ data2_end __ - __ data2_start __) / 4) */ __ copy_table_end__ = .; } > フラッシュ .zero.table : { 。= 整列(4); __zero_table_start __ = .; /* Add each additional bss section here */ /* LONG (__ bss2_start __) LONG ((__ bss2_end __ - __ bss2_start __) / 4) */ __ zero_table_end__ = .; } > フラッシュ __etext = ALIGN(8); .boot_header: { KEEP(*(.boot_header)) } > Dフラッシュ .standby_ram: { *(.スタンバイ_ram) } > SRAM0_STDBY /* ECC初期化シーケンス __data_start __ and __ data_end __ should be aligned on 8 bytes */ .data : AT (__ etext) { 。= 整列(8); __data_start__ = .; *(vテーブル) *(。データ) *(。データ。*) . = ALIGN(4); /* 事前初期化データ */ PROVIDE_HIDDEN (__preinit_array_start = .); KEEP(*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); . = ALIGN(4); /* 初期化データ */ PROVIDE_HIDDEN (__init_array_start = .); KEEP(*(SORT(.init_array.*))) KEEP(*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); . = ALIGN(4); /* 有限データ */ PROVIDE_HIDDEN (__fini_array_start = .); KEEP(*(SORT(.fini_array.*))) KEEP(*(.fini_array)) PROVIDE_HIDDEN (__fini_array_end = .); 保持(*(.jcr*)) 。= 整列(8); /* 全データ終了 */ __data_end__ = .; } > SRAM /* ECC 初期化シーケンスのため __bss_start __ and __ bss_end __ should be aligned on 8 bytes */ .bss : { . = ALIGN(8); __ bss_start __ = .; *(.bss) *(.bss.*) *(COMMON) . = ALIGN(8); __ bss_end__ = .; } > SRAM /* ECC初期化シーケンスのため__HeapTop and __ HeapLimitは8バイトに揃える必要があります */ 。ヒープ(コピー): { 。= 整列(8); __HeapTop = .; __終了__ = .; _end = .; PROVIDE(終了 = .); 。= .+ __HEAP_SIZE; 。= 整列(8); __ヒープ制限 = .; } > SRAM /* ECC初期化シーケンスのため__StackLimit and __ StackTopは8バイトに揃える必要があります */ 。スタック(ORIGIN(SRAM) + LENGTH(SRAM) - __STACK_SIZE) (コピー) : { 。= 整列(8); __StackLimit = .; . = . + __スタックサイズ; 。= 整列(8); __StackTop = .; } > SRAM PROVIDE(__スタック = __StackTop); /* データ + ヒープ + スタックが RAM 制限を超えていないか確認します */ ASSERT( __StackLimit >= __ HeapLimit、「領域 RAM がスタックでオーバーフローしました」) CM7_START_ADDRESS = ORIGIN(PFLASH); __STDBYRAM_START = ORIGIN(SRAM0_STDBY); __STDBYRAM_SIZE = 長さ(SRAM0_STDBY); } S32K344-WB Re: Basic Secure Boot HSE S32K344 ADKP こんにちは@silvia_zandoli2 次のThreadを参照してください。このトピックに関連する情報が含まれており、役立つ可能性があります。 [S32K3] HSE使用時にパスワードでデバッグアクセスを制限する さらに、汎用 HSE デモ例および/または HSE_DEMOAPP 用の S32K3 MCUで提供されている関数 ProgramADKPService()、Advance_LifeCycle_Service()、および attributeProgrammingService() の実装を確認することをお勧めします。 BR、ヴェインB
記事全体を表示
RW612 ROM 引导加载程序卡在 ISP 模式,无法从外部闪存加载 MCUBoot 问题描述 我在使用恩智浦 RW612 时遇到了一个持续的问题,即无论使用哪种二进制结构或配置,ROM 引导加载程序总是进入 ISP 模式,而不是从外部闪存启动。 症状 一致的 ISP 模式:设备始终以相同的寄存器值进入 ISP 模式 PC 寄存器:0x1302B460(ROM 引导程序地址) 神奇数字R1=0x5AC33CA5, R3=0x5AC33CA5, R6=0x55AACC33, R7=0x33CCAA55, R8=0x5AA55AA5, R10=0xC33CA55A, R11=0x55AACC33 性能:所有测试配置完全相同 我的测试结果 自定义 McuBoot 版本: 已签名和未签名的二进制文件 不同的 FCB 配置(带/不带 CMML) 各种偏移配置(0x400、0x1000) 官方 Zephyr 样品: frdm_rw612 板配置 rd_rw612_bga 板配置 sysbuild 和标准版本 用 imgtool 签名 二进制结构已验证: 偏移量 0x0000 处的 MCUBoot 头魔法 (0x3DB8F396) FCB 签名 (FCFB),偏移量 0x0400 带有 LUT 条目的完整 FlexSPI 配置 适当的 IVT/MBI 标头 当前设置 板:采用 RW612 的定制板 外部闪存:Fidelix 存储器(IRIS-W106-30B 模块) 工具链:Zephyr 4.1.0使用 Zephyr SDK 0.17.0 编程通过 SWD 接口连接 J-Link 社区问题 启动顺序要求:RW612 ROM 引导加载程序成功从外部闪存启动的确切要求是什么?是否有我遗漏的特定硬件配置要求? FCB 格式验证:ROM 引导加载程序期望的 FCB 格式是什么?是否有必须满足的验证要求或特定参数? 硬件配置:外部闪存熔丝所需的特定跳线设置、引脚配置或启动设置是否未记录在案? 已知问题:RW612 ROM 引导加载程序和外部闪存启动是否存在已知问题?有人成功从外部闪存启动过吗? 工作示例:有没有人有在 RW612 上成功从外部闪存启动的工作示例?您使用的是什么配置? 替代方法:如果外部闪存启动存在局限性,那么推荐的生产部署替代方案是什么? 调试步骤:你建议采取哪些调试步骤来确定 ROM 引导加载程序拒绝 FCB 的原因? 补充背景 事实上,即使是官方 Zephyr 样本(frdm_rw612 和 rd_rw612_bga)也会导致相同的 ISP 模式行为,这表明这可能是其中任何一种模式的根本问题: ROM 引导加载程序的实现 硬件配置要求 我们对启动过程的理解 如能提供任何指导或工作实例,将不胜感激! Re: RW612 ROM Bootloader Stuck in ISP Mode and not loading MCUBoot from external flash 你好,@dstarck。 为了获得更好的模块支持,我建议您直接联系模块制造商(uBlox),以获取与您的模块相关的各种文档。 如果您还有其他问题,请告诉我。 Re: RW612 ROM Bootloader Stuck in ISP Mode and not loading MCUBoot from external flash 谢谢,我看到了我想,当我实施它时,它没有工作...我需要回去再看一遍。 此外,我最近还发现 Segger(例如我的 jLink Pro)没有加载器可以正确刷新包含 RW612 芯片的 IRIS-W106-30B 模块使用的 Fidelix 型内存的二进制文件... 所以我也必须弄清楚(除非你有我能使用的加载器)。 Re: RW612 ROM Bootloader Stuck in ISP Mode and not loading MCUBoot from external flash 你好,@dstarck。 感谢您提供最新的测试结果。关于闪存锁定,请参阅 "如何解决 FRDM-RW612 闪存问题(闪存锁定)"帖子,只需注意在创建新工作区时选择模块专用内存即可。 如果您能解锁闪光灯,请告诉我。 Re: RW612 ROM Bootloader Stuck in ISP Mode and not loading MCUBoot from external flash 仅供参考...我能够实现这些变化。 目前,我的定制板已经锁定了闪存,我正在努力在刷新和测试之前将其解锁。 Re: RW612 ROM Bootloader Stuck in ISP Mode and not loading MCUBoot from external flash 是的,我知道了,并做了修改。 我正在使用一款带有 IRIS-W106-30B 模块(包含 RW612)的定制板。我将在周末进行测试。谢谢。 如果有问题,我会联系他们,并汇报我的进展情况。 Re: RW612 ROM Bootloader Stuck in ISP Mode and not loading MCUBoot from external flash 你好,@dstarck。 关于您需要签名/身份验证的启动映像的问题,请参阅 UM11865 第 78 页,其中详细介绍了启动过程的验证,如果您没有使用安全启动 ROM,则镜像不需要签名。 此外,请确认您是否遵循了我从应用程序代码中心分享的指南/示例。 如果这些信息有用,请告诉我您的发现。 Re: RW612 ROM Bootloader Stuck in ISP Mode and not loading MCUBoot from external flash 顺便说一下...昨天深夜我找到了 UM11865 用户手册...我还将查看您发布的文件......以下是我今天上午的调查摘要: IRIS-W106-30B 模块(基于 RW612)的 ROM 引导加载程序仍停留在 ISP 模式(PC = 1302B460),而不是从外部闪存切换到 MCUBoot 引导加载程序。 调查结果 ✅ 已确认的工作元器件: -通过 FCB(闪存配置块)访问 FlexSPI 外部闪存-FCB 签名:42464346 位于 0x08000400 -IVT(图像矢量表)签名:0x08001040 处的 402000D1 -Arm Cortex-M33 矢量表:0x08001400 处的有效堆栈指针 3000B320-外部闪存编程和验证成功 -ROM 引导加载程序可读取的所有启动结构 ❌ 已确定根本原因: -IVT boot_data_ptr (0x08001060) 指向包含全零的位置-链接 器未将启动数据结构正确放置在闪存中 -ROM 引导加载程序会验证启动结构,但在验证阶段拒绝映像 主要技术细节: - 内存布局:FCB@0x400 → IVT@0x1040 → ARM_vectors@0x1400 - IVT 指针:boot_data_ptr=0x08001060,self_ptr=0x08001040 - ROM 引导加载程序成功初始化 FlexSPI 并读取闪存内容 - 问题发生在映像验证期间,而非闪存访问期间 版本配置: -将 Zephyr RTOS 与 mcuBoot 一起使用-config_nxp_rw6xx_boot_header=Y -config_trusted_execution_nonsecure=Y-适用于 IRIS-W106-30B 的自定义 IVT 标头和 FCB 恩智浦社区的剩余问题 RW612 ROM 引导加载程序是否需要签名/经过身份验证的启动映像才能移交 给外部闪存引导加载程序? ROM 引导加载程序似乎可以正确验证所有启动结构,但拒绝 移交。缺少启动数据结构表明: 1.链接器脚本问题导致无法在 Flash 2 中正确放置启动数据。即使是移交引导加载程序,ROM 引导加载程序也需要签名映像(HAB/安全启动)3. 其他验证要求(我将查看文档) 如果您对 RW612 专用 ROM 引导加载程序的验证要求有更多了解,我们将不胜感激。 非常感谢你们的帮助! Re: RW612 ROM Bootloader Stuck in ISP Mode and not loading MCUBoot from external flash 非常感谢,我会去看看,并向您汇报。 我认为问题的根源在于 ROM 引导加载程序无法验证闪存中的 MCUBoot 引导加载程序...我将在今天晚些时候向您汇报 Re: RW612 ROM Bootloader Stuck in ISP Mode and not loading MCUBoot from external flash 你好,@dstarck,希望你一切都好。 请查看 产品页面 上的 UM11865-RW61x 用户手册的第 11 章- 非安全启动 ROM ,其中包含有关 RW61x 启动模式以及 FCB 配置和结构的信息。 此外,请参阅从 FRDM-RW612 到第三方模块存储器的迁移指南,其中提供了配置 IRIS-W106-30B 特定闪存的指南和示例。 注意:你提到你曾尝试将 RD-RW612-BGA 二进制文件加载到 EVK 中,此过程可能会导致闪存锁定而无法写入闪存,如果你看到这种行为,请查看以下关于如何解决问题的文章:如何解决 FRDM-RW612 中的闪存问题(闪存锁)。 如果这些资源对你有帮助,请告诉我。
記事全体を表示
S32K314 HSE ADKP こんにちは、NXP ADKP(UID多様化によるHSE静的パスワード)機能を開発しています。質問が2つあります。 1、ADKP パスワードを設定するためにインターフェース HSE_ProgramAdkp() を呼び出すと、応答は HSE_SRV_RSP_OK です。HSE_CalculateAdkpHash() を実行した後、インターフェース HSE_ReadAdkp() を呼び出すと、今度は応答が HSE_SRV_RSP_NOT_ALLOWED です。なぜかわかりません。 image.png image.png 2、JTAG セキュア デバッグが有効になっている場合、消去して再プログラムしたいです。この時点では、最初に S32DS PE デバッグまたは Trace32 を使用して JTAG のロックを解除し、次に Jlink を使用して対応する操作を実行することしかできませんか?CANロック解除プロセスはプログラムフラッシュ内で実行できますか? ご返信をお待ちしております! よろしくお願いいたします! Re: S32K314 HSE ADKP ご返信ありがとうございます! 1、これは「S32K3_HSE_DemoExamples_1_0_0」、具体的にはそのファイル内のS32K344_DemoAppTemplateに基づいています。 Re: S32K314 HSE ADKP 1) これはどのサンプルコードに基づいていますか? 2) 決してそうではありません。セキュア デバッグを適用すると、リセットのたびにパスワードを入力する必要があり、永続的なロック解除はできなくなります。これはデバッガーでサポートされる必要があります。私は PeMicro と TRACE32 を認識しています。Segger については、サポートに問い合わせてください。サポートされているかどうかはわかりませんが、次のThreadではサポートされていないと言われています。 https://community.nxp.com/t5/S32K/s32k3-secure-debug-interface/mp/1954589
記事全体を表示
S32G2 ロック喪失(PLL) こんにちはサポーターさん、 私はシステムセーフティアーキテクチャです。 現在、NXP SS32G2 チップを使用した自動車のシステムセーフティをデザインしています。PLL(Loss of Lock)に関して質問させていただきます。 私の知る限り、障害が発生すると、HW は FCCU に障害を報告します。しかし、PLL をチェックすると、PLL 障害のあるこのコンテンツは見つかりません。 手伝っていただけませんか? よろしくお願いします。 Re: S32G2 Loss of lock (PLL) こんにちは、 @phuong3_tran 投稿ありがとうございます。 PLLはLOL表示を提供します。LOL (Loss of Lock)モジュールはPLL出力クロックを監視できます。これは、重大な障害の検出を目的としています。 LOL イベント情報 のトリガーとして考えられるものは次のとおりです。 1. 特定のイベント情報により、FXOSC 入力信号の周波数に大きな偏差が発生しました。 2. チップの供給電圧に大きな変化が生じます。 3. 接合部温度が仕様外です。 よろしくお願いします。 BR チェイン
記事全体を表示
S32K358 上の AUTOSAR 4.7.0 での受信割り込みの設定 こんにちは、皆さん 現在、プロジェクトをRTDからAUTOSAR 4.7.0(SWバージョン3)に移行中です。 送信と受信の両方が割り込みモードで動作するように設定されています。 RTD セットアップでは、各メッセージ オブジェクトに独自のバッファーが割り当てられていました。メッセージを受信すると、受信 IRQ 機能がトリガーされ、メッセージ オブジェクト番号を使用して、対応するバッファにアクセスして処理できるようになりました。 現在、AUTOSAR では、受信割り込み処理を適切に構成する方法がわかりません。 AUTOSAR で受信割り込み用のメッセージ オブジェクト バッファを割り当てたりアクセスしたりするにはどうすればよいですか? 受信 ISR コールバック (CanIf または CanDrv 経由など) を実装または構成するための推奨方法はありますか? このワークフローの例やドキュメント参照はありますか? いくつかの例を確認しましたが、受信割り込み処理を明確に説明している例は見つかりませんでした。 ヒントや設定例があれば、ぜひ教えてください! Re: Configuring Reception Interrupts in AUTOSAR 4.7.0 on S32K358 こんにちは、 @thorben_kampさん、 SW バージョン 3 とは、S32K3 RTD v3.0.0 ASR21-11 のことを指していると思います。 RTD パッケージは、S32K358 CAN 通信用の AUTOSAR サンプル ルーチンを提供します。 Snag_12dd019.png ただし、ループバック操作用に構成されているため、出力ピンには信号が表示されません。出力ピン (S32K3X8EVB の CAN0 の場合は PTA6/7) を設定し、CAN インスタンス モードをループバックから通常/ユーザー モードに変更する必要があります。HW 構成に応じて、CANトランシーバを初期化する必要もあります。 S32K3X4EVB-T172 の割り込み MCAL ベースの例がここに投稿されています: [RTD600 MCAL & IP] S32K3X4EVB-T172 FlexCAN 例割り込み/ポーリング - NXP コミュニティ。S32K344 ベースですが、同じメインルーチンをCAN使用します。この例は単に最も基本的な構成を示すものであり、AUTOSAR にまったく準拠していないことに注意してください。 よろしくお願いします、 ジュリアン
記事全体を表示
S32K311の書き込み操作用のフラッシュドライバ実装 こんにちは、 PFlash へのデータ書き込みで問題が発生しています。リファレンス マニュアルの指示に従いましたが、まだメモリに書き込むことができません。これについてどうか助けてください。それは時間的に重要だから。 参考までに私のコードも添付しておきます。 ありがとうございました。 Re: FLash driver implementation for write operation in S32K311 こんにちは、ダニエル。 1.リファレンスマニュアルに記載されている以下のすべてのレジスタの組み合わせを使用してロック解除を試みました。 PFLASH.PFCBLK_SSPELOCK[0].R = 0x00000000U; //PFlashブロック0 PFLASH.PFCBLK_SSPELOCK[1].R = 0x00000000U; //PFlashブロック1 FLASH.SPELOCK.R = 0x00000000U; FLASH.SSPELOCK.R = 0x00000000U; FLASH.XSPELOCK.R = 0x00000000u; FLASH.XSSPELOCK.R = 0x00000000u; PFLASH.PFCBLK_SPELOCK[0].R = 0x00000000U; PFLASH.PFCBLK_SPELOCK[1].R = 0x00000000U; PFLASH.PFCBLK_SPELOCK[2].R = 0x00000000U; PFLASH.PFCBLKU_SPELOCK[0].R = 0x00000000U; // UTESTブロックロック ただし、DFlash は常にロックされたままであり、消去/プログラムを試行すると PES=1 が設定されます。 以下を明確にしていただけますか: S32K311 上の D-Flash ブロックの正しいレジスタとレジスタ インデックス。 S32K311 上の D-Flash に特別なロック解除メカニズム (UTEST ヒューズ、FCCU、ライフサイクル状態など) が必要かどうか。 D-Flash のロック解除 + 書き込みが成功したことを示す参考例。 2. P-Flashの最後の256KBのロックを解除できません: 上記のすべてのレジスタの組み合わせを使用した後でも、 0x004B0000 ~ 0x004FFFFF以上の値はロックされたままになります。 この領域は別のロック ブロック (ブロック 2?) によって制御されていますか? それとも D-Flash と共有されていますか? Re: FLash driver implementation for write operation in S32K311 こんにちは@emb-enockal さん、 0x00480008から始まる8バイトをプログラムするには、DATA[2-3]レジスタにデータを書き込む必要があります。 ロックに関しては、火曜日まで不在のため、現時点ではハードウェアでテストできません。 RTD ドライバ (C40_Ip) を参考にすることをお勧めします。 danielmartynek_0-1763131926248.png よろしくお願いいたします。 ダニエル Re: FLash driver implementation for write operation in S32K311 こんにちは、ダニエル。 ご説明ありがとうございます。 はい、プログラミングしていたのと同じ PFlash ブロックから書き込み関数を実行しようとしていることに気付きました。書き込みルーチンを別のブロックに移動すると、動作するようになりました。 ただし、2 つの追加の問題があります。 PFlash連続書き込み アドレス0x00480000に 8 バイトを書き込むと成功します。 しかし、次の 8 バイトを0x00480008に書き込もうとすると、操作は失敗します。 書き込みが成功する次のアドレスは128 バイト後になります。 コントローラは 128 バイト (4 ページ) 境界でのプログラミングのみを許可するようです。 同じ 4 ページ内で小さいチャンク (8 バイト) を連続してプログラムする方法はありますか? それとも 128 バイトすべてを一度に書き込む必要がありますか? DFlashロック解除の問題 推奨されている通り、 SPELOCK[2]とSSPELOCK[2]を使用してBlock_2のロックを解除しようとしましたが、ブロックはロックされたままです。 モジュール レベルおよびプラットフォーム レベルのロック レジスタをクリアすることも試みましたが、DFlash 領域はまだロック解除されません。 以下は私が試みたロック解除シーケンスです。 PFLASH.PFCBLK_SSPELOCK[0].R = 0x00000000U; //PFlashブロック0 PFLASH. PFCBLK_SSPELOCK [1]. R = 0x00000000U; //PFlashブロック1 FLASH.SPELOCK.R = 0x00000000U; FLASH.SSPELOCK.R = 0x00000000U; FLASH.XSPELOCK.R = 0x00000000u; FLASH.XSSPELOCK.R = 0x00000000u; DFlash Block_2 のロックを解除する正しい方法を理解し、同じ 4 ページ内での連続書き込みがサポートされているかどうかを確認する方法を教えていただけますか? ご協力ありがとうございます。 Re: FLash driver implementation for write operation in S32K311 こんにちは@emb-enockal さん、 フラッシュ プログラミング コードは、プログラムされているフラッシュ ブロックと同じフラッシュ ブロック内に存在してはなりません。 同じフラッシュ ブロックをプログラムする必要がある場合は、実行コードが SRAM に配置されていることを確認してください。 この例では、C40_Ip API は SRAM に配置されています。 参考までに、 https://community.nxp.com/t5/S32K-Knowledge-Base/S32K312-C40-Ip-SRAM-RTD-500-DS35/ta-p/2074245を参照してください。 DFlashはBlock_2にあり、SPELOCK[2]とSSPELOCK[2]によってロックされています。 よろしくお願いいたします。 ダニエル Re: FLash driver implementation for write operation in S32K311 こんにちは、皆さん S32K311 (48 ピン) の PFlash/DFlash プログラミングで行き詰まっています。書き込み関数の最後にブレークポイントを配置すると、 P-Flash をプログラムできるようになりましたが、そのブレークポイントを保持しないと、CPU が逆アセンブリにジャンプし、RWE フラグが 1 に設定されます。 また、 D-Flash のロックを解除できません(すべてのロック解除の試行が無視されるようです)。お知らせ下さい。 私が観察したのは次の通りです: PFlash 書き込みシーケンスは、書き込み関数にブレークポイントを設定している場合にのみ完了します。そのブレークポイントを削除すると、CPU は書き込み要求の直後に逆アセンブリに移行します (割り込み/フェッチ障害のように見えます)。 次のロック解除シーケンスを書き込んだにもかかわらず、D-Flash はロックされたままです。 PFLASH.PFCBLKU_SPELOCK[0].R = 0x00000000U; /* UTESTブロックロックをクリアする(試行済み)*/ /* モジュールロックをクリアする */ FLASH.SPELOCK.R = 0x00000000U; FLASH.SSPELOCK.R = 0x00000000U; /* プラットフォームレベルのブロックロック解除 */ PFLASH.PFCBLK_SPELOCK[0].R = 0x00000000U; PFLASH.PFCBLK_SSPELOCK[0].R = 0x00000000U; 参考までにコードも添付しました。 Re: FLash driver implementation for write operation in S32K311 こんにちは@emb-enockal さん、 問題の説明を詳しく説明していただけますか? エラーフラグは表示されますか? 簡単にするために、ブロッキング方法から始めることをお勧めします。 danielmartynek_0-1762959571607.png danielmartynek_1-1762959967169.png DATA レジスタはクワッドページに揃える必要があります。 プログラム中のブロックからコードを実行することはできません。 よろしくお願いいたします。 ダニエル Any support, information, and technology (“Materials”) provided by NXP are provided AS IS, without any warranty express or implied, and NXP disclaims all direct and indirect liability and damages in connection with the Material to the maximum extent permitted by the applicable law. NXP accepts no liability for any assistance with applications or product design. Materials may only be used in connection with NXP products. Any feedback provided to NXP regarding the Materials may be used by NXP without restriction.
記事全体を表示
Yocto 在使用 populate_sdk 和 devtool 以及 tee.bin 时出现错误 您好, 我已经为 i.MX8M PLUS 处理器板安装了 Yocto 发行版。 能够编译我自己的程序,创建我使用的工具链: bitbake core-image-minimal -c populate_sdk 然后,我想更改 linux 映像(DTS 定义),因此安装了 devtool: devtool modify virtual/kernel 因此,我在进行更改后创建了 linux 映像: devtool 版本 linux-imx 这行得通,但是如果我现在想在 Yocto 上安装新配方,我会再做一遍: bitbake core-image-minimal -c populate_sdk 现在我遇到了一个与 tee.bin 有关的错误: 错误:imx-启动-1.0-r0 do_compile:执行错误("/HOME/YO/Atenea/yocto/ibr215-yocto5.0-电路板支持包-20241101/ibr215/tmp/work/imx8mpevk-参考发行版、系统开发套件。-linux/imx-启动/1.0/temp/run.do_compile.4739 ",1,无,无) 错误:失败日志文件存储在:/HOME/YO/Atenea/yocto/ibr215-电路板支持包-20241101/ibr215/tmp/work/imx8mpevk-参考发行版、系统开发套件。-linux/imx-启动/1.0/temp/log.do_compile.4739 日志数据如下: | 调试:执行 shell 函数 do_compile | cp:无法统计 "/home/yo/Atenea/Yocto/IBR215-yocto5.0-电路板支持包-20241101/ibr215/workspace/deploy/images/tee.bin":没有这样的文件或目录 我做错了什么? 此致
記事全体を表示
非 XIP 通过 JTAG RT1176 根据这份应用笔记:https://www.nxp.com/docs/en/application-note/AN14069.pdf,非 XIP 图像只能通过 UART 和 USB 通过 MCU Boot Utility 加载。 我想确认在 MCUXpresso IDE 中是否无法通过 MCU Link 或 Jlink 将 XIP 映像加载到闪存中? 如果必须使用 MCU Link,我想确认这些是正确的 UART 引脚。我在数据表上看不到通过 USB 启动的选项:https://www.nxp.com/docs/en/data-sheet/IMXRT1170AEC.pdf(如果我错过了,请原谅)。我在网上看过几件事提到通过 USB 启动只是将 USB 连接到相同的 UART 引脚吗? AnteoJ_1-1753239974271.png 谢谢! 安特奥 Re: NON XIP via JTAG RT1176 你好@AnteoJ、 感谢您对 NXP MIMXRT 系列的关注! 非XIP映像,例如从SD卡启动的镜像,需要使用McubootUtility或恩智浦的官方MCUXpresso安全配置工具进行刷新。 如果映像是 XIP,则可通过 JLink/DAP 等调试器将其编程为闪存。这在 MCUXpressoIDE 或其他集成开发环境中都很容易实现。 如果您使用的是 RT1170-EVK/EVKB,您会发现电路上有一个 MCU-Link,它是一个板调试器,可以方便客户在不使用外部调试器的情况下直接通过板调试器刷新程序和进行调试。此外,通过对不同固件进行编程,MCU-Link 可更改为 JLink 或 CMSIS-DAP 调试器。 详情请查看 EVK/EVKB 硬件原理图。 致以最诚挚的问候, Gavin
記事全体を表示
S32Gがシリアルポート経由でプログラムできない問題 S32G3 こんにちは。質問のとおり、私は S32G399A チップを再び使用しています。通常の起動後、シリアルポートを接続し、Flash Tools ツールを使用して書き込みます。エラー報告インターフェースは以下のとおりで、電流は約 30mA (12V 電源) 低下する可能性があります。原因を特定し、どの方向を調査すべきかを判断するのにご協力いただけますか。ありがとう。 LONGGANGSU_0-1753251671159.png Re: The issue of S32G failing to be programmed through the serial port この問題は解決しました。ご返信ありがとうございます。 Re: The issue of S32G failing to be programmed through the serial port こんにちは。更新された情報に基づくと、問題は時計の設計に関連している可能性があります。 現在、S32 フラッシュ ツールでは S32G3 カスタム ボード + オシレーターはサポートされておらず、状況をサポートする現在利用可能なバイナリ ファイルも確認されていません。 ご不便をおかけして申し訳ございません。 BR チェイン Re: The issue of S32G failing to be programmed through the serial port こんにちは、 1. 現在、S32G-VNP-RDB3 をベースに独自のマザーボードを設計しています。 2. フラッシュ ツール: バージョン: 2.3.2 (下の画像の通り)。 LONGGANGSU_0-1753267499379.png 3. 私のマザーボードのフラッシュ モデルは MX25UW51245GXDQ00 です。 私が経験している問題は時計の問題によって発生しているのでしょうか? 私のクロックは現在シングルエンドクロックを使用しています。回路図の一部を以下に示します。 LONGGANGSU_1-1753267647526.png その後、今日の午後、BOOTMOD[1:0]を1:0に変更したところ、SRAMへの書き込みは可能になり、シリアルポートからも「hello world」と出力できるようになりましたが、Flashへの書き込みはまだできませんでした。原因の解析をお願いできますか?ありがとうございます。 Re: The issue of S32G failing to be programmed through the serial port こんにちは、 @LONGGANGSU ご投稿ありがとうございます。 S32G ボードの QSPI をフラッシュする意思があると理解しています。 1. カスタムボードを使用しているかどうか教えていただけますか?あるいはNXPのRDB3/EVB3でしょうか? 2. 使用されているフラッシュツールのバージョンは? 3. カスタム ボードの場合、QSPI の部品番号は何ですか。それはフラッシュ ツールで選択したものと同じですか。 BR チェイン
記事全体を表示
S32K148 FlexCAN1 中断转到 DefaultISR,尽管矢量表注册正确 - FreeRTOS 矢量表设置: 启动过程中通过 startup_S32K148.S 将向量表从闪存复制到 RAM __VECTOR_RAM 正确设置为 0x1FFF8000 S32_SCB->VTOR 正确指向 RAM 向量表 Assertion e_assert_void((uint32_t)__VECTOR_RAM == S32_SCB->VTOR) 通过 中断注册: 使用 intc_register_handler(CAN1_ORed_0_15_MB_IRQn,CAN1_ORed_0_15_MB_IRQHandler,NULL) 处理程序地址被正确写入__VECTOR_RAM[104](IRQ 88 + 16 = 向量 104) intc_set_priority(CAN1_ORed_0_15_MB_IRQn、17) 将优先级设为 17 intc_enable_irq(CAN1_ORed_0_15_MB_IRQn) 在 NVIC 中启用中断。 FlexCAN1 配置: 邮箱数量:已配置 32 个邮箱(FEATURE_CAN1_MAX_MB_NUM = 32U) 活动邮箱:IMASK1 寄存器显示值 0x00000600 中断分组:使用 CAN1_ORed_0_15_MB_IRQn,它应处理邮箱 0-15 FreeRTOS 配置: configMAX_SYSCALL_INTERRUPT_PRIORITY = 16 configPRIO_BITS = 4 使用基于 BASEPRI 的中断屏蔽 NVIC 优先级分组设为 0:S32_SCB->AIRCR = 0x05FA0000 | (0)<< 😎 我验证了什么? 向量表完整性:调试器确认 __VECTOR_RAM[104] 包含正确的处理程序地址 NVIC 配置:NVIC->ISER[2]& (1<< 24) 显示 IRQ 88 已启用 优先级设置:NVIC->IP[88] = 17 确认优先级已设置 中断发生:FlexCAN1 硬件正在生成中断 (IFLAG1 = 0xF0000200) 处理程序功能:CAN1_ORed_0_15_MB_IRQHandler 存在并已正确链接 调查结果: 当 CAN 中断触发时,执行会转到 DefaultISR,而不是已注册的处理程序 没有发生硬故障或其他异常 尝试了多种不同方法(直接向量操作、优先级调整等) 无论中断优先级高低,问题始终存在(已测试 5、17、20)。 Re: S32K148 FlexCAN1 Interrupts Going to DefaultISR Despite Proper Vector Table Registration - FreeR 您好, 矢量表必须自然对齐到对齐值大于或等于(支持的例外数 x 4)的 2 的幂次。 对于包含 170-180 个向量的矢量表,2 的下一个次方为 256,将其从字转换为字节会得到 1024 字节对齐后的字节对齐方式为 1024。 BR, Petr Re: S32K148 FlexCAN1 Interrupts Going to DefaultISR Despite Proper Vector Table Registration - FreeR 当我在链接文件中注释了这一行后,它就能正常工作了 /* SRAM_L */ /* m_session (RW) :ORIGIN = 0x1FFE0000, LENGTH = 0x00000080 */ m_data (RW) :ORIGIN = 0x1FFE0080, LENGTH = 0x0001FF80 尽管我在调试模式下检查了 VTOR,它指向了 0x1FFE0080,我想它应该能工作,但它没有,你知道它为什么不能工作吗 谢谢你 Re: S32K148 FlexCAN1 Interrupts Going to DefaultISR Despite Proper Vector Table Registration - FreeR 您好, 如果您不能共享简化项目,那么请说明您使用的 S32DS 和驱动程序版本(无、SDK、RTD),以便我尝试复制行为。 BR, Petr Re: S32K148 FlexCAN1 Interrupts Going to DefaultISR Despite Proper Vector Table Registration - FreeR 在我的案例中,FIFO 实际上不使用中断(它会轮询),但对于普通邮箱,我想使用中断。 谢谢 Re: S32K148 FlexCAN1 Interrupts Going to DefaultISR Despite Proper Vector Table Registration - FreeR 您好, RXFIFO 中断也会调用 CAN1_ORed_0_15_MB_IRQn,因此如果这对 RXFIFO 的报文有效,那么对其他常规 MB 也应该有效。 BR, Petr Re: S32K148 FlexCAN1 Interrupts Going to DefaultISR Despite Proper Vector Table Registration - FreeR 我想补充的一点是,我还启用了 fifo 功能,因为我正试图为 UDS 和普通 MBs CAN(带中断的应用报文)启用 fifo CAN,在我目前的实现中,UDS 正常工作(fifo),但应用报文无论接收到什么,都会触发默认处理程序,即使所有寄存器都正确无误,这会有影响吗? Re: S32K148 FlexCAN1 Interrupts Going to DefaultISR Despite Proper Vector Table Registration - FreeR 您好, 我猜是 SCB->VTOR 或向量表偏移量 0x1A0 没有预期值。但你已经检查过了。 能否分享显示问题的简化项目? BR, Petr Re: S32K148 FlexCAN1 Interrupts Going to DefaultISR Despite Proper Vector Table Registration - FreeR 我添加了这段代码,当我向微控制器发送信息时,它将进入该函数,"g_active_vector" 的值为"104" void defaultisR (void) { /* 从 SCB-> ICSR 寄存器中捕获活动向量数 */ g_active_vector = (S32_SCB-> ICSR & S32_SCB_ICSR_VECTACTIVE_MASK) > > S32_SCB_ICSR_VECTACTIVE_SHIFT;而 (1) {__asm (" nop ");}} 我还检查了 SCB 和 NVIC 寄存器,当程序跳转到默认 isr 时: SCB->ICSR -> 0x0440F868 对于 NVIC 寄存器 ISER、ICER,你可以看到捕获附件,对于 IP,除了 NVICIP88 NVICIP89 之外,它们都设置为 0x00,它们都等于 0x50 elb1_0-1753773975254.png Re: S32K148 FlexCAN1 Interrupts Going to DefaultISR Despite Proper Vector Table Registration - FreeR 您好, 矢量表和中断配置似乎都是正确的。 您是否还使用了其他中断,如 PIT 中断,并且这些中断都能正常命中? 你可以尝试修改 defaultISR 来捕获活动矢量数。SCB->ICSR 提供当前活动的中断编号(VECTACTIVE 字段) 无效 DefaultISR(void) { uint32_t 活动向量 = (SCB->ICSR & SCB_ICSR_VECTACTIVE_Msk) >> SCB_ICSR_VECTACTIVE_Pos; 当 (1); // 在此断点检查 "active_vector } 或者在 DefaultISR 中设置断点,在运行时检查 SCB->ICSR、NVIC 寄存器(ISER、ICER、IPR 等)和向量表内容。 此外,你不能临时为每个 IRQ 分配唯一的虚拟处理程序来查看触发信号了哪一个。 BR, Petr
記事全体を表示
Corruption on HSE Status Register Images below for reference abdul_rahiman_csg_0-1753449874831.png abdul_rahiman_csg_1-1753449924290.png abdul_rahiman_csg_2-1753449953207.png abdul_rahiman_csg_3-1753449971206.png abdul_rahiman_csg_4-1753449998730.png using S32K312 and facing issues with the HSE firmware: 1.The HSE status register value appears corrupted (0x4038C107). 2.Unable to access HSE APIs due to this status corruption. 3.Attempts to erase or reflash the HSE firmware have failed. 4.Writing to MU0_TR1 register or memory to trigger erase/reset commands does not work. 5.Observed multiple software resets during a single external reset when debugger is connected. Request: 1.Could you please provide the correct procedure to erase and reflash the HSE firmware on the S32K312? 2.If reflashing the HSE firmware is not possible due to the current corrupted state, what steps can be taken to recover the HSE or resolve the status register corruption? 3.Any known issues or workarounds for the multiple resets observed during hard reset with debugger attached? 4.How can I resolve the corrupted HSE status register issue and regain access to the HSE APIs? Procedure followed during HSE firmware flashing: step 1: flashed the provided PINK file without IVT along with the demo application and the secure boot application ELF files. step2: Reset done Step3: Observed "??" marks at HSE locations 0x005d4000 and DCM registers Step4: We reflashed our bootloader at address 0x00400000 and the application at address 0x00442000 Step5: When performing a hard reset with the debugger connected, we observed multiple resets triggered from the software side, despite issuing only a single external reset command
記事全体を表示
[RW612] 安定性の問題を分析する方法 バックグラウンド: 事前評価には RW612 EVK (freeRTOS 付き) を使用しています。 そして、Wi-Fi-BT COEX がうまく機能するように努めています。このプロセス中に、安定性の問題が発生しましたが、さらにデバッグする方法がわかりません。 RW612 プラットフォームの NXP ドキュメントを検索しましたが、安定性の問題の分析方法を説明するドキュメントやトレーニングは見つかりませんでした。 rw612 プラットフォームで安定性の問題を分析する方法について情報を共有していただけますか? ちなみに、私はSDK 1.2.3 SDK_25_06_00_FRDM-RW612を使用しています。 よろしくお願いします。 Re: [RW612] How to analyze Stability Issue こんにちは、アレックス。 ベースとして使用している SDK の例を指定していただけますか? 例に何か変更を加えましたか?この「安定性の問題」をどのようにテストしていますか? このアプリケーションノートを確認することをお勧めします: RW61x評価ボードのNXP Wi-FiおよびBluetoothデバッグ機能の設定 よろしくお願いいたします。 リカルド Re: [RW612] How to analyze Stability Issue こんにちは、リカルドさん。 情報をありがとうございました!はい、以前、Wi-Fi と BT の COEX の CASE について、これら 2 つのドキュメントを確認しました。 さらに、 SDK_25_06_00_FRDM-RW612をベースに開発中に、 EVKボードがクラッシュし、以下のようなログが出力されるという安定性の問題が発生しました。 呼び出しソケットタスク初期化 呼び出しソケットタスク初期化 新しいソケットを作成しています。 socket_task_init ソケットスレッドが作成されました しながら行う tcp_connect_thread wifi tcp 接続中... tcp_connect_thread wifi tcp 接続中... IPv4 [2025-08-26 21:43:05.933]#ASCII を受信> しながら行う [2025-08-26 21:43:06.922]#ASCII を受信> しながら行う [2025-08-26 21:43:07.922]#ASCII を受信> しながら行う [2025-08-26 21:43:08.930]#ASCII を受信> しながら行う [2025-08-26 21:43:09.931]#ASCII を受信> しながら行う [2025-08-26 21:43:10.261]#ASCII を受信> として そして、最後の「AS」プリントはアサートであるべきだと思いますが、SDKs / ユーザー マニュアルのドキュメントから、この問題の根本原因をさらに突き止めるのに役立つ方法を取得できませんでした。 SO、この安定性の問題をデバッグする簡単な方法を見つけるのに役立つガイドを共有していただけますか? よろしくお願いいたします。 アレックス Re: [RW612] How to analyze Stability Issue こんにちは、 あなたの調子が良いといいのですが。SDK の共存例を使用していますか? このアプリケーションノート「RW61xの共存の概要」を確認することをお勧めします。 また、このユーザーマニュアルのセクション8 「RW61x用NXP Wi-FiおよびBluetoothデモアプリケーション」もご確認ください。 これが役に立つことを祈ります! よろしくお願いいたします。 リカルド
記事全体を表示
S32K310 / S32K311 ADC 复用器 我正试图使用 RTD5.0.0(较新的 RTD6.0.0 也有同样的问题)为 S32K310 配置 ADC MUX 模式。 最新的技术参考手册修订版11包含了第38.1节表232中的一些信息。说明 S32K311(可能还有 S32K310)变体的哪些额外 ADC 通道需要 MUX 配置。例如 DavidHodgson_0-1756480129127.png 不过,解释哪个寄存器位设置对应哪个 GPIO 引脚的 2 个部分并不用于这些额外配置: 第 38.2.51 节功能 RESET 4 时读写 GPR (DCMRWF4),0/7/8/11/12/28 位的寄存器字段被标记为保留 第 60.1.7 节表 345 还忽略了 DCMRWF4 GPR_bits 0、7、8、11、12 和 28 的配置。仅说明 1、2、3、4、5、6、9 和 10 位的配置情况 我相信问题与之前的帖子是一样的: 已解决:S32K311_S32K310 ADC 复用模式通道异常 - NXP Community 已解决:在错误的引脚上触发信号 ADC-恩智浦社区 但解决方案就在S32K311_ADC_Mux_Control.xlsx文件中,而该文件并不可用。 基本上,我只需要知道下面标记为问号的寄存器 DCMRWF4 的位设置: 位0 mux_mode_en_adc1_s18 ?:GPIO_70 ?GPIO_6 位1 mux_mode_en_adc0_s8 0: gpio_0 1: gpio_45 位2 mux_mode_en_adc0_s9 0: gpio_1 1: gpio_46 位3 mux_mode_en_adc1_s14 0: GPIO_69 1:GPIO_32 位4 mux_mode_en_adc1_s15 0: gpio_4 1: gpio_33 位7 mux_mode_en_adc0_s12 ?:GPIO_72 ?GPIO_78 位8 mux_mode_en_adc0_s13 ?:GPIO_73 ?GPIO_79 位11 mux_mode_en_adc0_s14 ?:GPIO_32 ?GPIO_80 位12 mux_mode_en_adc0_s17 ?:GPIO_75 ?GPIO_44 位28 mux_mode_en_adc0_p2 ?:GPIO_8 ?GPIO_10 感谢您的帮助 戴维 Re: S32K310 / S32K311 ADC mux 你好,戴维、 很抱歉给您带来不便! 我将向您发送 S32K311_ADC_Mux_Control.xlsx. 我从内部渠道了解到,这个问题有望在 S32K3 RTD 7.0.0 中得到修复。至于 S32K3XXRM 的内容问题,我已提醒文档团队进行修复。 祝好, Robin ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"ACCEPT AS SOLUTION" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请另开新主题并参考已关闭的主题。 -------------------------------------------------------------------------------
記事全体を表示
I2C master not working Hello , I'm trying to test I2C master on S32K324 but i'ts not working. Actually I have no I2C slave connected to I2C master but I don't see any transition on PTD13 (LPI2C_SDA) or PTD14 (LPI2C_SCL), the two pins are ever HIGH. I expect to see start condition like attached file. Attached there is the project. Regards, Francesco. Re: I2C master not working Hi @francescovico, It does work on my side - I have tested your code. If it does not work on you side, explain in details what does not work.  Make sure the DBGEN bit is set at the time the transfer is called. Have you tested it with CM7_1 running? Do you use external pull-up resistors? Regards, Daniel Re: I2C master not working Hi Daniel, It still not working well . Regards, Francesco. Re: I2C master not working HI @francescovico, danielmartynek_0-1756971786422.png Enable it after the Init function. Otherwise, the Init function will clear the bit. Regards, Daniel Any support, information, and technology (“Materials”) provided by NXP are provided AS IS, without any warranty express or implied, and NXP disclaims all direct and indirect liability and damages in connection with the Material to the maximum extent permitted by the applicable law. NXP accepts no liability for any assistance with applications or product design. Materials may only be used in connection with NXP products. Any feedback provided to NXP regarding the Materials may be used by NXP without restriction. Re: I2C master not working Hello Daniel, sorry but putting: IP_LPI2C_0->MCR |= LPI2C_MCR_DBGEN_MASK; The I2C still not working. Attached my project. Regards, Francesco. Re: I2C master not working Hi @francescovico, When CM7_1 is halted, the MCU enters debug mode. To ensure LPI2C continues functioning, either set the DBGEN bit in LPI2C_MCR to allow operation during debugging, or Keep CM7_1 running. BR, Daniel Re: I2C master not working Hello Daniel, Thank you, it's true I forgot to initialize interrupt. Also with interrupt enabled the I2C it's not working. Attached there is the project with interrupt enabled. Do you have other suggestions? Regards. Re: I2C master not working Hello Francesco, I haven't tested the code, but I see that you did not enable the LPI2C interrupt. Add IntCtrl_Ip driver with LPI2C0_Master_Slave_IRQHandler. And initialize the driver in the code. Regards, Daniel
記事全体を表示
MCU 无法从 VLPS 模式唤醒 您好 ,我们正在为恩智浦的 MCU SW - S32K146 开发电源管理器。电源管理器使用以下三种状态。 运行模式 VPLR 模式 VPLS 模式 此外,还使用了以下时钟源选项。 FIRC SIRC 在启动期间,我们的时钟源为FIRC,电源模式为运行模式。之后,我们将配置 SPLL。在此期间,MCU 电源模式仍为运行模式。在运行模式之后,当 MCU 需要进入 VLPR -> VLPS 模式时,我们要执行以下步骤: 取消初始化: 看门狗 CAN(在这一步中,我们实现了一个封装函数,用于安全地注销 CAN 通道。该函数首先检查所请求的 CAN 实例是否在有效范围内,以及是否已在配置中启用。如果有效,它会调用恩智浦的 Flexcan_DRV_deinit () API 来正确关闭 CAN 硬件并版本资源。) GPIO 引脚(在实施的这一阶段,我们使用 PINS_DRV_Init()函数和睡眠配置数组对所有 MCU 引脚进行了低功耗配置。这可确保将未使用的引脚设置为安全状态(输入具有上拉/下拉功能)以最大限度地减少漏电流,同时具有唤醒功能的引脚保持活动状态,用于基于中断从 VLPR/VLPS 模式中唤醒。) CAN_STD 和 CAN_EN 引脚设置为低电平。 安装并启用两个中断处理程序。(PORTE(PTE4 引脚)和 PORTA)。此外,两个 uint8_t 标志被设置为 true(默认设置为 0)(当我们进入 VPLS 模式时,一个 LMPTR 定时器也会启用,因此基本上有三个中断工作)。 然后,我们将MCU电源模式设置为VLPR,然后立即设置为VLPS模式。 正常运行: 在 VLPS 模式下,PORTE 上接收到监测引脚的中断,标志值为 true,首先禁用 IRQ,然后对 MCU 进行软复位,RESET MCU,操作从启动开始恢复正常。 我们遇到了以下问题,因此希望得到您的支持,以了解我们是否做错了什么。 问题:有时,MCU 会随机陷入一种状态,只有通过关闭电源和机才能 RESET。 我们的假设在 MCU 卡死的上述状态中,我们假设可能会发生以下情况。 中断处理程序回调函数中使用的标志是非易失性的。虽然在安装中断处理程序时将标志设置为 true,但我们怀疑没有正确读取当前标志值(易失、非易失问题)。 如果 MCU 在从 RUN 进入 VLPR->VLPS 模式期间收到中断信号,则 MCU 可能会进入停止状态。 Re: MCU not wakeup up from VLPS mode 嗨,@Sami2098、 目前,MCU 已不再处于这种状态。但是,如果这个问题再次发生,那么当MCU运行发行版本时,我应该如何获取寄存器值转储。 如果碰巧再次进入这种状态,可以尝试通过调试器中的"Attach to running target" 配置连接 MCU。例如,使用 S32DS"Registers" 查看和导出。或使用 TRACE32 将值导出为 CSV:调试 - 如何从 TRACE32 导出变量值 - Stack Overflow。 由于我们没有使用 "退出时休眠 "功能,我们是否需要"在进入 VLPS" 之前,我们是否需要使用 DSB + ISB 指令来确保适当的同步? 如果需要,那么以这种方式调用函数是否正确? 这只是两个建议,因为以前也出现过类似的问题,客户使用的是退出时休眠功能。我想确认配置是否相同。 DSB + ISB 在您的实施中看起来很好。这主要是为了确保在继续进行 VLPS 之前完成任何正在进行的数据处理。 调用INT_SYS_ClearPending()看起来也不错,这将在进入低功耗前检查是否有挂起的中断。 这是一个非常奇怪的问题,因为它很难重现。 致以最诚挚的问候, Julián Re: MCU not wakeup up from VLPS mode 您好@Julián_AragónM, 感谢您一直以来的支持。请在下面找到您问题的答案。 至于处于停机状态的设备... 你能测量电流消耗吗? 遗憾的是,在问题发生之前,我们没有连接电流表,而且由于问题很少发生,使用电流表需要中断蓄电池连接,从而导致 POR。 设备在 VLPS 上还是永远不会进入低功耗? 目前我们还不能确定。目的是让设备进入VLPS。不过,它也有可能陷入某种未知状态。 您能分享这个州的登记转储情况吗? 目前,MCU 已不再处于这种状态。但是,如果这个问题再次发生,那么当MCU运行发行版本时,我应该如何获取寄存器值转储。 此外,您是否配置了退出时休眠功能? 没有,目前我们没有使用退出时休眠功能。 /* ISR 退出时不重新进入(深度)睡眠状态 */ S32_SCB->SCR&= ~(S32_SCB_SCR_SLEEPONEXIT_MASK); 关于您的建议,我有几个问题。 由于我们没有使用 Sleep on Exit 功能,我们是否需要"使用 DSB + ISB 指令,以确保在进入 VLPS" 之前适当同步? /* Cpu 将进入深度睡眠状态 */ asm( ISB ); STANDBY(); // where STADBY() - #define STANDBY() __asm volatile ( wfi ) __asm("DSB"); __"" >"" 我们正在研究应用层。那么,在将电源模式切换到 VLPS 之前,我需要调用以下函数吗? void int_sys_clearPending (irqn_Type IRQNumber);//<-在切换到 VLPS 之前调用这个函数? power_sys_setMode(POWER_MANAGER_VLPS、POWER_MANAGER_POLICY_FORCIBLE);谢谢,最诚挚的问候, Re: MCU not wakeup up from VLPS mode 嗨,@Sami2098、 是的,进入 VLPS 时,会请求非 CPU 总线主站进入停止模式: Snag_a5879e3.png 您必须注意 VLPS 模式的 DMA 配置。这与 ERR011063 有关: Snag_a91d106.png 但是,如果禁用 DMA 时仍出现此问题,那么问题可能与此没有直接关系。 如果在 VLPS 中或之后不需要 DMA,则 EDMA_DRV_Deinit() 函数是正确的方法。 至于处于停机状态的设备... 你能测量电流消耗吗?设备在 VLPS 上还是永远不会进入低功耗?您能分享这个州的登记转储情况吗? 此外,您是否配置了退出时休眠功能?曾经报告过这样一个问题:当 MCU 尝试处理 ISR 并通过退出时休眠返回 VLPS 时,会卡死在停止状态。解决方法是设置数据同步障碍,以确保在继续之前完成任何数据操作。 我的建议是在进入 VLPS 之前确保没有待处理的中断(我认为一个简单的如果 ((NVIC->ISPR[0]& NVIC->ISER[0]) == 0) 检查就足够了),并使用 DSB + ISB 指令确保在再次进入 VLPS 之前正确同步。 致以最诚挚的问候, Julián Re: MCU not wakeup up from VLPS mode @Julián_AragónM 我们目前使用 3 个 DMA 通道:0、1 和 3。 0 映射到 Flex I/O UART。 1 映射到 LPUART 0 RX 3 映射到 LPUART 1 RX 当我们进入 VLPS 时,发现只有 DMA 0 启用。我们使用 for (int ch = 0; ch< 16; ch++) { // S32K146 有 16 个通道 if (DMA->ERQ& (1<< ch)) { printf("DMA 通道%d is ENABLED\r\n", ch); } } 此 for 循环仅用于调试版本,不用于发行版。我们没有明确禁用 DMA 1 和 3,但观察到它们可能仍被驱动程序函数static void LPUART_DRV_StopRxDma(uint32_t instance) 禁用。 我们尝试在进入 VLPS 之前使用 status_t EDMA_DRV_Deinit(void)明确禁用 DMA 通道。 我们的目的是确保在进入 VLPS 状态之前停止 DMA 传输。我们的方法是否正确? 但这一声明与我们目前面临的 MCU 停机问题无关。我们观察到,无论是否采取上述步骤,我们都得到了停止状态。我只想问,在进入 VLPS 之前,是否需要明确调用 status_t EDMA_DRV_Deinit(void)。 Re: MCU not wakeup up from VLPS mode 你好@Julián_AragónM 今天测试时,我们再次卡在 MCU 停止状态。过去三周以来,一切运行正常。我们完全绕过了 VLPR 状态。现在我们直接从 Run 到 VLPS(中间没有 VLPR)。我们还从时钟频率证实了这一点,总线时钟为4Mhz,系统时钟为8Mhz。我们还确认,在使用 VLPS 之前,时钟源是 SIRC,所有其他时钟源都已禁用。 在 MCU 停止状态下,我们连接了 JTag,并能使用 RTT 查看器进行连接。以下是 RTT 查看器在 MCU 停止状态下的截图。 RTTViewerInMCUHalt.png   没有什么能让 MCU 活起来。我们唯一能确定的办法就是断电。我们的 MCU 目前处于这种状态,如果您希望我们在这种状态下进行尝试,我们将等待您的回复。这是因为这个问题很难重现,而且我们也不知道什么时候会再次发生。等待您的回复。 Re: MCU not wakeup up from VLPS mode 嗨,@Sami2098、 是的,如果不用作唤醒中断,则应禁用 LPTRM IRQ 和时钟源。 这样可以减少不必要的电流,避免在离开 VLPS 时发生不必要的 ISR。 致以最诚挚的问候, Julián Re: MCU not wakeup up from VLPS mode 您好, ,感谢您的支持。你说得对。在我们的项目中,我们并不需要过渡到 VLPR,因此绕过了它。根据您的意见,我们想进一步询问是否有必要同时对 LPTMR IRQ 进行去初始化。LPTMR 中断每 1 毫秒触发一次,基本上是在运行整个 MCU 代码。当 MCU 转换到 VLPS 状态时,我们将不再使用该 LPTMR 中断。相反,我们使用 GPIO 引脚作为唤醒源。因此,在 VLPS 模式下,我们实际上并不需要 LPTMR IRQ。 那么,由于 LPTMR IRQ 是使用时钟源的外设,我们是否也应该对其进行去初始化? Re: MCU not wakeup up from VLPS mode 嗨,@Sami2098、 除非您在 MCU 停止运行后尝试连接,否则我真的无法找出这个问题的根本原因。 项目是否需要 VLPR? 它可以从 RUN 直接转到 VLPS。这也会降低ERR011063 的风险。 有关模式过渡的信息,请参阅 AN5425 中的第 5.6 章:S32K1xx 的电源管理单元。但你的程序似乎是正确的;首先禁用使用时钟源的外设,将系统时钟切换到 SIRC,然后禁用所有其他时钟源。 致以最诚挚的问候, Julián Re: MCU not wakeup up from VLPS mode 您好, 不确定,但我也遇到了同样的问题。 我希望你是在唤醒 ISR 中禁用了 VLPS? ,如果是这样,你可以在退出时禁用低功耗/休眠/唤醒之前,尝试挂起任何未使用的中断或你想唤醒的 ISR 中的相同中断。 Re: MCU not wakeup up from VLPS mode 同时,我们还使用 NXP API 检查了时钟频率: uint32_t sysClk = 0; uint32_t busClk = 0; /* 获取系统时钟频率 */ CLOCK_SYS_GetFreq(CORE_CLOCK,&sysClk); /* 获取总线时钟频率 */ cloc k_sys_getFreq (BUS_CLOCK,& busCLK); 我们在运行模式下收到了以下值:内 核/系统时钟:8 MHz 总线时钟:4 MHz 我们在 VLPR 模式下收到了以下值:内 核/系统时钟:4 MHz 总线时钟:4 MHz 这些值是在调用恩智浦 API 从运行模式转为 VLPR 模式后收到的: POWER_SYS_SetMode(POWER_MANAGER_VLPR,POWER_MANAGER_POLICY_FORCIBLE); Re: MCU not wakeup up from VLPS mode 这种情况很少发生。这发生在两周前,但当时我们只做了 POR。从那以后,我们再也无法重现这个问题。 我目前正在使用恩智浦SDK API进行电源模式切换,在这些API中,正在设置SIRC时钟。那么,我是否需要在切换前手动检查时钟频率?我认为应用程序接口已经在处理这个问题了。 我使用的应用程序接口是 status_t POWER_SYS_SetMode(uint8_t powerModeIndex、 power_manager_policy_t policy); 我是这样说的: POWER_SYS_SetMode(POWER_MANAGER_VLPR, POWER_MANAGER_POLICY_FORCIBLE); POWER_SYS_SetMode(POWER_MANAGER_VLPS, POWER_MANAGER_POLICY_FORCIBLE); 问题 我们能找到问题的根源吗? 目前,我们会在进入 VLPR 之前去初始化看门狗。是否可以在 VLPR 之后但在进入 VLPS 模式之前对其进行去初始化? 是否有任何演示应用程序可用于手动配置 VCCR? Re: MCU not wakeup up from VLPS mode 你好@Sami2098 RUN->VLPR->VLPS 的步骤似乎是正确的。板进入 "halt" 状态后你能连接到它吗?(通过使用"Attach to target" 选项)。 这个问题可能是由时钟配置引起的。ERR011063(摘自S32K146_0N73V😞😞 Snag_622231.png 这只适用于 从 VLPR 模式 进入 VLPS 模式 的例程 ,而您的情况正是如此。请尝试更改 VCCR 配置。 致以最诚挚的问候, Julián Re: MCU not wakeup up from VLPS mode 您好, 在 VLPS 模式下,我们将按以下方式初始化用于中断的 GPIO 引脚。 1.[PINS_DRV_ClearPortIntFlagCmd(PORTE); INT_SYS_InstallHandler(PORTE_IRQn, IF_PORTE_IRQHandler, NULL); INT_SYS_EnableIRQ(PORTE_IRQn);   那么我们只需调用下面的接口函数即可跳转到 VLPS 模式。 POWER_SYS_SetMode(POWER_MANAGER_VLPS, POWER_MANAGER_POLICY_FORCIBLE);]。   这种做法正确吗?还是应该遵循以下程序? 2.[PINS_DRV_ClearPortIntFlagCmd(PORTE); INT_SYS_InstallHandler(PORTE_IRQn, IF_PORTE_IRQHandler, NULL); INT_SYS_EnableIRQ(PORTE_IRQn); 然后清除 INT_SYS_ClearPending(PORTE_IRQn); ->??? 那么我们只需调用下面的接口函数即可跳转到 VLPS 模式。 POWER_SYS_SetMode(POWER_MANAGER_VLPS, POWER_MANAGER_POLICY_FORCIBLE);]。   还是下面这些? 3.[ // 准备期间禁用中断 INT_SYS_DisableIRQ(PORTE_IRQn); // 清除硬件标志 PORTE->ISFR = 0xFFFFFFFF; // 清除 NVIC 挂起 INT_SYS_ClearPending(PORTE_IRQn); // 现在启用中断 INT_SYS_EnableIRQ(PORTE_IRQn); // 再次清除,以避免任何运行时事件 PORTE->ISFR = 0xFFFFFFFF; INT_SYS_ClearPending(PORTE_IRQn); // 进入 VLPS POWER_SYS_SetMode(POWER_MANAGER_VLPS, POWER_MANAGER_POLICY_FORCIBLE); ]   哪种方法最合理?   MCU 还能因为第二种方法而进入某种停止状态吗?有风险吗?   非常感谢你们一直以来的支持。   此致,
記事全体を表示