1943892_ja-JP

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

1943892_ja-JP

1943892_ja-JP

S32K311 フラッシュの消去に失敗し、HardFault_Handlerが発生しました

Hi NXP.

私はS32K311、RTD3を使用してC40を使用してフラッシュを消去します。

消去操作を行うと、フラッシュの消去に失敗し、ハード フォールトがトリガーされました

EvaKi_0-1724979161082.png


次のようなデバッグメッセージをC40_Ip_MainInterfaceSectorEraseに追加しました。

これは、次の場合で確認できます。

/* 内部消去/プログラムシーケンスを開始 */
C40_Ip_pFlashBaseAddress->MCR |= FLASH_MCR_EHV_MASK; が実行され、

ハードフォルトは直接トリガーされます。

時々、私はデバッグを段階的に実行し、ステップバイステップで実行しますが、正常に消去され、ハードフォールトエラーをトリガーしません。

FLASHを消去する正しい方法はありますか?

EvaKi_1-1724979192706.png

EvaKi_2-1724979244040.png

EvaKi_3-1724979313091.png


回复: S32K311 フラッシュの消去に失敗し、HardFault_Handlerが発生しましたこんにちは、これはどのドキュメントですか?もっと詳しく知りたいRe:S32K311フラッシュの消去に失敗し、HardFault_Handlerが発生しました

こんにちは、2ブロックを使用する必要がありますか?

回复: S32K311 フラッシュの消去に失敗し、HardFault_Handlerが発生しました

RWW(読み取りながら書き込み) - NXP Community

回复: S32K311 フラッシュの消去に失敗し、HardFault_Handlerが発生しました

Hi @davidtosenovjan 

ご対応ありがとうございます。

回复: S32K311 フラッシュの消去に失敗し、HardFault_Handlerが発生しました

それは明らかにRWWの問題です。コードは、異なるブロックから実行するか、同じパーティションであるため内部SRAMから実行する必要があります

davidtosenovjan_1-1725965798253.png




回复: S32K311 フラッシュの消去に失敗し、HardFault_Handlerが発生しました

Hi @davidtosenovjan 

アプリケーションのシナリオでは、ブート プログラムがアプリ部分を消去するため、ブート コードとアプリ コードは Block0 になりますが、同じブロック内で、ブートでアプリを消去するとハード フォールトがトリガーされます

この写真を参照してください。

EvaKi_0-1725608585305.png


回复: S32K311 フラッシュの消去に失敗し、HardFault_Handlerが発生しました

このコードは、消去しようとしているのと同じブロックから実行しませんか?

Re:S32K311フラッシュの消去に失敗し、HardFault_Handlerが発生しました

私は二重検証を行いました、消去する領域は確かにロック解除されているので、消去する領域が保護されていないか、ロック解除が失敗し、消去時にHardfaultエラーが発生します

Re:S32K311フラッシュの消去に失敗し、HardFault_Handlerが発生しました

Hi @davidtosenovjan 

無効にしたさまざまなキャッシュがあります。

これはまだハードフォルトをトリガーします

EvaKi_3-1725239399560.png



1.#define C40_IP_SYNCRONIZE_CACHE (STD_OFF)

EvaKi_0-1725239151652.png

2. #define CACHE_IP_IS_AVAILABLE STD_OFF

EvaKi_1-1725239235153.pngEvaKi_2-1725239343798.png


Re:S32K311フラッシュの消去に失敗し、HardFault_Handlerが発生しました

キャッシュを無効にしていますか?

回复: S32K311 フラッシュの消去に失敗し、HardFault_Handlerが発生しました

消去領域はPFLASHです

回复: S32K311 The FLASH failed to be erased AND a HardFault_Handler occurred

S32DS 3.6.3とRTD 6.0.0を使用してS32K396をデバッグしていた際、公式のフラッシュ操作ルーチンのテスト中にハードフォールトが発生しました。状況は以下のとおりです。

プログラムのpflashアドレスを int_pflash : ORIGIN = 0x00400000、LENGTH = 0x00100000 に設定し、C40_Ip_MainInterfaceSectorErase を使用して0x00500000 0x00502000 の範囲を消去すると、ハードフォールトが発生します。0x005FE000 ~ 0x00600000 の範囲を消去した場合もハードフォールトが発生します。ただし、 0x00600000 0x00602000範囲を消去した場合は正常に動作します。

C40_Ip_MainInterfaceSectorErase関数をint_sram_fls_rsv : ORIGIN = 0x2045EF00, LENGTH = 0x00001000セクションに配置しようとしましたが、ハードフォールトは依然として発生しました。メイン関数もint_sram_fls_rsvセクションに移動した後、問題は解決しました

なぜこのようなことが起こるのでしょうか?S32K396の消去セクターサイズは0x2000ですが、実際には0x00200000以内の消去は必ずしも許可されていないようです。この動作を説明するドキュメントは見つかりませんでした。私の側の設定に問題があるのでしょうか?C40_IP_Example_S32K396サンプルプロジェクトを使用しています

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎01-11-2026 02:17 AM
更新者: