cancel
Showing results for 
Search instead for 
Did you mean: 

Legacy Microcontrollers

TeMa_2997106
Contributor II

ワークフラッシュを「セクタ消去一時停止」、「セクタ消去再開」するサンプルコードはありますでしょうか。

ここにあるProgramming Specificationを参照し、

「セクタ消去一時停止」および「セクタ消去再開」を試みましたが、動作いたしません。

消去コマンド書き込み直後に消去一時停止のみを実行すると、不定値(例:08, 0C)が書き込まれていた。

消去コマンド書き込み直後に消去一時停止→一時停止再開を実行すると、同じ不定値でセクタは20秒経っても消去されませんでした。

オペレーションの問題なのか、基板設定の問題なのかわからず、まずはFW側できちんと消去できるかを試したいです。

よろしくお願いします。

0 Likes
1 Solution
TakashiM_61
Moderator
Moderator

申し訳ございません。

ワークフラッシュの「セクタ消去一時停止」、「セクタ消去再開」するサンプルコードを有無を確認いたしましたが、御座いませんでした。

また、

> 消去コマンド書き込み直後に消去一時停止のみを実行すると、不定値(例:08, 0C)が書き込まれていた。

についてですが、ハードウェアシーケンスフラグが読まれていると推測致します。

しかし、

> 消去コマンド書き込み直後に消去一時停止→一時停止再開を実行すると、同じ不定値でセクタは20秒経っても消去されませんでした。

とありますので、まだ確認が必要です。

S6E2H シリーズ 32 ビット・マイクロコントローラ

FM4 Family Flash Programming Specifications (Document Number: 002-04966 Rev. *D)

のハードウェアシーケンスフラグ及びビット説明を参照のうえ、上記二つのケースで読み出しを行った時にハーフワードアクセスかバイトアクセスで連続読み出しを行ったか教えて頂けないでしょうか?

また、読み込んだアドレスがセクタ消去指定したセクタか、セクタ消去指定したセクタ以外かもご確認ください。

View solution in original post

0 Likes
7 Replies
TakashiM_61
Moderator
Moderator

セクタ消去一時停止をせずにセクタ消去した場合、ワークフラッシュは消去されているのでしょうか?

0 Likes
TakashiM_61
Moderator
Moderator

申し訳ございません。

ワークフラッシュの「セクタ消去一時停止」、「セクタ消去再開」するサンプルコードを有無を確認いたしましたが、御座いませんでした。

また、

> 消去コマンド書き込み直後に消去一時停止のみを実行すると、不定値(例:08, 0C)が書き込まれていた。

についてですが、ハードウェアシーケンスフラグが読まれていると推測致します。

しかし、

> 消去コマンド書き込み直後に消去一時停止→一時停止再開を実行すると、同じ不定値でセクタは20秒経っても消去されませんでした。

とありますので、まだ確認が必要です。

S6E2H シリーズ 32 ビット・マイクロコントローラ

FM4 Family Flash Programming Specifications (Document Number: 002-04966 Rev. *D)

のハードウェアシーケンスフラグ及びビット説明を参照のうえ、上記二つのケースで読み出しを行った時にハーフワードアクセスかバイトアクセスで連続読み出しを行ったか教えて頂けないでしょうか?

また、読み込んだアドレスがセクタ消去指定したセクタか、セクタ消去指定したセクタ以外かもご確認ください。

View solution in original post

0 Likes
TeMa_2997106
Contributor II

ご回答ありがとうございます。

セクタ消去一時停止をせずにセクタ消去した場合ですが、

こちらはワークフラッシュは消去されています。

アクセスについては、ハードウェアシーケンスフラグのダミーリードのことでしょうか。

ダミーリードはセクタ消去指定範囲で、ハーフワードアクセスにより行っております。

以上です。

0 Likes
TakashiM_61
Moderator
Moderator

ご質問に"不定値(例:08, 0C)"と記載されておりましたので、消去一時停止後にFlashの内容を読み込んだと思っておりました。

これは間違えないでしょうか?

また、

> 消去コマンド書き込み直後に消去一時停止→一時停止再開を実行すると、同じ不定値でセクタは20秒経っても消去されませんでした。

とありますが、どの様に消去されていない事を確認したのでしょうか?

以上、宜しくお願いします。

0 Likes
TeMa_2997106
Contributor II

ご回答ありがとうございます。

消去コマンド直後の不定値については、

一時停止コマンド書込み後のメモリの値をデバッグモードで確認しています。

※IDEはμVisionを用いています。

通常の消去コマンド(一時停止や再開コマンドを書き込まない)の場合は

すべてFFになるのですが、上記の場合に不定値になっています。

また、消去コマンド書き込み直後に消去一時停止一時停止再開を実行すると、消去されない点ですが、

上記の場合と同様に、一時停止再開コマンド書き込み後のメモリの値がFFではなく

不定値になっていることをμVisionデバッグモードで確認しました。

20秒ほど待ちましたが、メモリの値はFFにはなりませんでした。

確認方法が誤っている場合はご指摘ください。

以上です。

0 Likes
TakashiM_61
Moderator
Moderator

確認方法についてですが、

> 消去コマンド直後の不定値については、

> 一時停止コマンド書込み後のメモリの値をデバッグモードで確認しています。

との事ですが、これは問題があります。

CPUでアクセスしようが、デバッガでアクセスしようが、Flashコントローラから見たら同じで、デバッガが意図せぬタイミングでシーケンスフラグ読み出しを実行し、CPUからの各種コマンド(この場合、一時停止や一時停止再開)と衝突してしまう事になります。

確認は、ソフトウェアで組むなどして、意図したタイミングで、意図したデータを読み込んでください。

例えば、今回Work FlashなのでMain Flashの方はアプリケーション実行に使用できますので、UARTなど使用して制御や出力が出来るようにする。

また、消去完了の確認はシーケンスフラグの確認以外にFlashコントローラのHNGビットを確認するのは如何でしょうか。

HNGビットが立っていた場合、デバッガとの衝突など何かしらの理由で消去の失敗もしくは再開の失敗が確認できるので、コマンドの再発行が必要と考えます。

0 Likes
TeMa_2997106
Contributor II

コメントありがとうございます。確認してみます。

0 Likes