2021年9月10日金曜日

[フラッシュドライバ] フラッシュでドハマリました。

こんにちは、針山散策を今日もほのぼのと行います。

今回は、フラッシュメモリのアクセスでハマった内容について記載しようと思います。

どこでハマッタかというと、

プログラム実行を行うメモリ自体ライト⇒リードを短い間隔で行うと

正常にライトを行えない時がある、ということです。

現象としては、フラッシュライトを行っているはずなのに、

何も変化しないという現象です。

(フラッシュ内部のレジスタへのアクセスは出来ます。)

特に、0X400番地、0X1000番地、等区切りの良い境界をまたいで、ライトリードを
繰り返すと期待した値が読めませんでした。

次からは、メモリチェック用のプログラムをまずは実行して、

問題無い事を確認してから行いたいと思います。

[メモリチェック用のプログラム内容]
  • プログラム領域に対してのライト=> リード=> 期待した値をチェック)

フラッシュメモリのデバイス名:Infineon+CYPRESS社製 S25HL01GTDPMHB010
CYPRESS社製S25HL01GT
こちらはフラッシュ内部のレジスタとして揮発性のレジスタと

不揮発性レジスタを併せ持つ構造になります。

フラッシュに対してリセットを行うと、不揮発性のレジスタ内容が

揮発性のレジスタにコピーされるようです。

なので、不揮発性レジスタに書く事によってデフォルト値を変更することができます。

書き込み先の変更は、WRENV_0_0を発行するかWRENB_0_0を発行するかによって

切り替えることができます。

今まで遭遇したことが無いフラッシュメモリでした。

今後主流になるのかもしれません。


0 件のコメント:

コメントを投稿