Armadilloフォーラム

flatfsdコマンドによる書き込み先のフラッシュ領域について

h-yuusuke

2022年3月2日 18時07分

お世話になっております。

掲題の件、flatfsdコマンドによって書き込まれる先であるフラッシュ領域が破損しているかを確認する方法はありますでしょうか?

コメント

アットマークテクノの古賀です。

h-yuusukeさん:
>掲題の件、flatfsdコマンドによって書き込まれる先であるフラッシュ領域が破損しているかを確認する方法はありますでしょうか?

破損の状況により、どれが最適かは変わりますが、いくつか考えられます。ひとまず、以下の二つでしょうか。

1.) フラッシュメモリ(NOR Flash)の記憶セルからの読み出し値が不定になるかどうかの確認
 ブートローダー(hermit)の md5sum コマンドを使い、config リージョン全体の md5 チェックサム値を採取する。
  https://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_sof…
 ←採取される md5 チェックサム値が常に同一ではなく、変化する場合は、config リージョン内に読み出し値が不定な部分領域が存在する、ということになります。

2.) NOR Flash の中に内容を消去できない領域が存在しないかどうかの確認
 hermit の erase コマンドを使うか、ダウンローダーを使用して config リージョン全体を消去した後、Armadillo の Linux を起動して、config リージョンのパーティション全体の内容を dd で読み出し、内容が全て 0xFF になっているか確認する。
  https://armadillo.atmark-techno.com/forum/armadillo/4165
  https://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_sof…
  https://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_sof…
  https://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_sof…
 config リージョンの内容が全て 0xFF になっているかどうかの確認は、比較用に、内容が全て 0xFF で同じサイズのファイルを以下のコマンドで作っておき、cmp で比較するなどすればよいでしょう:

$ tr '\0' '\377' < /dev/zero | dd bs=1k count=1024 of=foo

(1)と(2)がどちらも OK、つまり読み出しと消去は問題ない場合、書き込みを正しくできない領域が存在しないかどうかを確認する、というのが次のステップになりますが、frob poke コマンドですと 4Byte ずつしか書き込めませんので、効率よくやるには別の手段を考える必要があるでしょう:
 https://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_sof…

お手元の Armadillo-420 の状況について確認ですが、flatfsd -s で保存した内容が復元されないので、フラッシュメモリの破損を疑っていらっしゃる、ということでしょうか?