2016-11-23 13 views
0

私はCRCを使用してコード検証を行う必要があります。この場合、私が行うのは、見つかったすべてのバイトのフラッシュメモリにアルゴリズムを通してCRCを計算し、その結果を所定のCRC値と比較することだけです。フラッシュメモリは実行時に変更されますか?

しかし、フラッシュメモリがある時点で変更される可能性があるので、CRC検証に失敗するという考えに悩まされています。

コードに何も触れていないと仮定すると、実行中にフラッシュメモリが変更される可能性はありますか?もしそうなら、何が変わる可能性がありますか?そして、私はその変更を避けるためにどのようにしますか?

+0

NAND型フラッシュかNOR型フラッシュかはあなたには言いません。 NORフラッシュの主な障害モードは、セルの消去に失敗したか、書き込みに失敗したことです。 NORフラッシュのデータが読み取られる限り、しばらくの間そのまま残す必要があります。データシートで保持時間を確認してください。書き込みおよび消去の失敗に加えて、NANDフラッシュは読み出しディスターブを受ける。つまり、セルを読み取ると、他の近くのセルが変更される可能性があります。 NANDフラッシュを適切に使用するには、ECCが必要です。 – Sean

+0

CRCを追加するポイントは、フラッシュメモリが破損したときを検出することです。 CRCは、データと同様にチェックサム自体のエラーを検出するのに適しているため、推奨されるアルゴリズムです。十分な多項式を使用すると、すべてのシングルビットエラーとほとんどのマルチビットエラーを検出します。 – Lundin

答えて

0

フラッシュメモリは、電源が入っていなくても内容が保持されることを意味します。フラッシュメモリは確実に消去/再プログラム可能です。読取り専用メモリ(ROM)という別の用語は、最初の書込み後には変更できないことを意味します。

CPU命令がCPU命令に触れていないか、劣化しているか、外部要因の影響を受けていない限り、メモリは変更されません。フラッシュメモリの内容は、10年間は​​邪魔されないかもしれません。通常は、年齢の前にフラッシュメモリを劣化させる読み出し/書き込みサイクルの数です。高い静電気はフラッシュを破壊する可能性がありますが、磁場はほとんど影響しません。

ハードウェア仕様に影響を与える場合は、それが主な目的の場合はROMを考慮する必要があります。この目的のためにフラッシュに比べていくつかの利点があります。

最後に、"すべてのバイト"のメモリをCRCアルゴリズムで渡すことに注意してください。正しいチェックサムが同じメモリ媒体に格納される場合、それ自身のチェックサムを含むチェックサムを事前計算しようとする再帰的な問題があります。ほとんどの場合、有効なチェックサムは、スキャンの対象とならないメモリのセグメントに配置する必要があります。いずれにしても

+0

答えをありがとう!あなたは正しい、私はそれについても考えなかった。正しいチェックサムを事前に定義しようとすると、フラッシュメモリにも格納されますか?実行時に行われるチェックサムが変更されます。- – RCRod21

+0

@ RCRod21歓迎します。チャンスが訪れたときには、その答えを覚えておいてください。 –

+0

データ保有仕様よりも長生きする製品をお持ちの場合、フラッシュメモリはいつでも失敗することがあります。 – Lundin

0

はそれはそれがあなたのコードの検証をキャッチするために意図され、正確に何であり、あなたがしたいとCRCが失敗を期待するので、問題はない自発的に変更するだったら - それはその仕事をしている

ほとんどの場合、自発的に変更するのではなく、最初の段階で正しく書かれていないか、または悪意のある、または偶発的な改ざんから保護されている可能性があります。フラッシュの一部が可変不揮発性ストレージに使用されている場合は、明らかにその領域をCRCに含めないでください。 で、同じフラッシュをコードスペースとNVストレージに分割すると、NVストレージコード内のエラーによってコードスペースが誤って変更される可能性があるため、CRCはこれを保護し、外部改ざん(JTAGなど)を防ぎます。

フラッシュメモリは消去/書き込みサイクルの耐久性があり、いくつかのビットの後にいくつかのビットが "ハイ"になることがあります。耐久性は部品間で約10000から100000まで異なり、コード保管の問題はほとんどありません。フラッシュメモリには、公称データ保持時間もあります。これは通常10年間で引用されています。それは最悪の場合の極端な状態評価です - あなたのCRCはこれらの影響に対しても警備員です。

関連する問題