• 締切済み

FATの故障? 1ファイル内の文字化け

マイコンでmicroSDにデータを書込みソフトを動かしているのですが、1ファイルの中に時々文字化けが発生します。 バイナリエディタで見ると、文字化けの発生する場所の先頭アドレスは0x59200, 0x6EE00, 0x72C00のように、どうも16で割り切れるアドレスになっていることが多いです。 これは - FATが壊れている - データ領域が壊れている - その他 のどのような状況なのでしょうか? 1ファイルには21600行のデータを書込むのですが、上記のような文字化けが100行程度入り、その他の場所は正常なデータ書込みがされているようです。

みんなの回答

回答No.2

>>>> 0x00,0xcc,0xffの3パターン位でコンペアしてみれば分かると思います。 >>0x00というのがたくさん入っている部分もあります。0x00, 0xcc, 0xffが数十行に渡り入っているとどういう症状が考えられるでしょうか? それ自体が意味がある物ではなく、 「SDの不良ブロックを調べるために0x00,0xcc,0xffをそれぞれ全領域に書き込み、 正しく読み取れるかどうかを調べてみたら」と言う意味です。 SDをWindowsに挿して使えるのならchkdsk /rや、HDD検査ツール等でも構いません。 これらの検証でもおかしくなるようなら、SDに不良ブロックがある可能性が高いです。 マイコンを使われているということなので、 プログラムやマイコンのI/Oがバグっている可能性もあり、安易にSDだけを疑えません。

flex1101
質問者

お礼

再度の回答ありがとうございます。 0x00, 0xcc, 0xffでのエラーチェックの件、理解できました。 SDに関してですが、WindowsPCにてカードリーダーで読込み、「リムバーブルディスク」>「プロパティ」>ツールタブ>「エラーチェック」をした時に「検査を完了できませんでした」というエラーが出るSDが数枚見つかっています。最初からSDに問題があったのか、書込み中にSDを壊したのか、判断がつきにくいです。 >マイコンを使われているということなので、プログラムやマイコンのI/Oがバグっている可能性もあり、安易にSDだけを疑えません。 そうなのです。どれが問題かの切り分けがなかなか難しいです。

回答No.1

100行というのがどの程度のバイト数に当たるのか分かりませんが、 SDに不良がある場合は、普通はキロバイト以上の単位でおかしくなります。 可能性として一番高いのはプログラムのバグではないでしょうか。 SDが怪しいのであれば、一度、0x00,0xcc,0xffの3パターン位でコンペアしてみれば分かると思います。

flex1101
質問者

補足

文字化けしている部分については、まったく何が書いているかわからない文字化けの場合と、以下のような何かのプログラムのようなものが記載されている場合がありました。 ssVerticalTabOrder TGroupBoxGroupBox2 Left - Top x Width ... Height ... Caption ... Font .Color clWindowText Font.Height .... Font.Style. ... あと、昔書いたファイルの情報が最近書いたファイルの中に見られるという症状も出ています。 > 0x00,0xcc,0xffの3パターン位でコンペアしてみれば分かると思います。 0x00というのがたくさん入っている部分もあります。0x00, 0xcc, 0xffが数十行に渡り入っているとどういう症状が考えられるでしょうか?

関連するQ&A