私はCRCを使用してコード検証を行う必要があります。この場合、私が行うのは、見つかったすべてのバイトのフラッシュメモリにアルゴリズムを通してCRCを計算し、その結果を所定のCRC値と比較することだけです。フラッシュメモリは実行時に変更されますか?
しかし、フラッシュメモリがある時点で変更される可能性があるので、CRC検証に失敗するという考えに悩まされています。
コードに何も触れていないと仮定すると、実行中にフラッシュメモリが変更される可能性はありますか?もしそうなら、何が変わる可能性がありますか?そして、私はその変更を避けるためにどのようにしますか?
NAND型フラッシュかNOR型フラッシュかはあなたには言いません。 NORフラッシュの主な障害モードは、セルの消去に失敗したか、書き込みに失敗したことです。 NORフラッシュのデータが読み取られる限り、しばらくの間そのまま残す必要があります。データシートで保持時間を確認してください。書き込みおよび消去の失敗に加えて、NANDフラッシュは読み出しディスターブを受ける。つまり、セルを読み取ると、他の近くのセルが変更される可能性があります。 NANDフラッシュを適切に使用するには、ECCが必要です。 – Sean
CRCを追加するポイントは、フラッシュメモリが破損したときを検出することです。 CRCは、データと同様にチェックサム自体のエラーを検出するのに適しているため、推奨されるアルゴリズムです。十分な多項式を使用すると、すべてのシングルビットエラーとほとんどのマルチビットエラーを検出します。 – Lundin