私たちはMPC5647というデバイスを使用しています。
Trace32を使用して、アプリケーションを内部フラッシュメモリ領域にプログラムしました。プログラミング処理が開始された直後(または完了した直後)、対象ハードウェアへの電源が切断された。
この事象発生後、アプリケーション領域のフラッシュメモリにアクセスできなくなった。Trace32 を介して Flash にアクセスすると、メモリの内容は「???????」または「FFFFFFFF」と表示されます。フラッシュメモリへのプログラミング処理が完全に完了する前に電源が切断されたのではないかと推測されます。
この状態では、アプリケーションフラッシュ領域は使用できなくなり、フラッシュはAN4521_MPC56xx C90FL Flash Recovery.pdfに記載されている工場出荷時復旧手順を実行することによってのみ復旧できます。復旧手順を実行すると、フラッシュメモリは再び使用可能になります。
私たちは以下の点について理解を深めたいと考えています。
この現象の原因は何でしょうか?
フラッシュプログラミング中に予期せぬ電源オフが発生すると、なぜフラッシュブロックにアクセスできなくなるのでしょうか?
なぜフラッシュメモリを単純に再プログラムすることができないのでしょうか?
フラッシュメモリを再度プログラムする前に、リカバリ/工場出荷時設定への初期化手順が必要なのはなぜですか?
これは、無効なECC状態、不完全な消去操作、またはその他の内部フラッシュコントローラの問題に関連していますか?
内部フラッシュ機構に関する詳細な説明をいただければ大変ありがたいです。
こんにちは、
この事象発生後、アプリケーション領域のフラッシュメモリにアクセスできなくなった。Trace32 を介して Flash にアクセスすると、メモリの内容は「???????」または「FFFFFFFF」と表示されます。フラッシュメモリへのプログラミング処理が完全に完了する前に電源が切断されたのではないかと推測されます。
それはフラッシュメモリの破損を示唆している。
この状態では、アプリケーションフラッシュ領域は使用できなくなり、フラッシュはAN4521_MPC56xx C90FL Flash Recovery.pdfに記載されている工場出荷時復旧手順を実行することによってのみ復旧できます。復旧手順を実行すると、フラッシュメモリは再び使用可能になります。
間違いなく、プログラミング中の停電によってフラッシュメモリが破損した原因です。フラッシュメモリにはECC障害がたくさんあるため、トレースに「????」と表示されます。
フラッシュプログラミング中に予期せぬ電源オフが発生すると、なぜフラッシュブロックにアクセスできなくなるのでしょうか?
簡単に言うと、プログラミングや消去を完了しないと、フラッシュデータに不一致が生じ、ECC症候群が発生します。
フラッシュメモリを再度プログラムする前に、リカバリ/工場出荷時設定への初期化手順が必要なのはなぜですか?
標準プログラムコマンドは、完全に消去されたブロックを想定しています。
中断後:
コントローラが無効な状態を検出したため、コマンドを拒否します。
SO:
消去/プログラムシーケンスが正しく開始されない
アクセスがブロックされるか、ダミーデータが返される場合があります。
これは、無効なECC状態、不完全な消去操作、またはその他の内部フラッシュコントローラの問題に関連していますか?
停電によりECCに切り替わります。
よろしくお願いいたします。
ピーター