どちらを使うべきCRC-16-IPチェックサム(RFC1071用した組み込みください。
質問
書い組み込み用にARM7プロセッサとが必要で何らかの形でのチェックサムのためのデータをしているところを越えるシリアルリンクなどのデータをしているところに保存します。のかと思っての機能の集約する際に最適です。のトレードオフコードの速度に対し頑健性を検証した。るべきと考えるのもCRC?いリンクの効率的な実施のためのアーム?
解決
RFC1071は、バイトのペアの単純な16ビットの合計です。このように、それは2つのエラーは、「相殺」であり、さらに「合格」のチェックサムを与える可能性があります。例えば。ビットエラーは、次に別のビットエラーが16ビット後1 RFC1071 0からビットを反転1から0へのビットを反転させ、これを検出しないであろう。 CRCで確認されている場合でも、同じダブルビットフリップエラーが検出されるだろう。
二重ビットフリップエラーこの種のシリアル伝送可能です。これは、PCBは、マイクロおよびフラッシュチップ間の悪いはんだ接合部を持っている場合は特に、フラッシュチップでも可能です(これは、1本のワイヤが「うるさい」ですが、誰が、これらの日の並列を使用している場合は特に?パラレルケーブルに多くの可能性が高いです)。入力における単一のビット変化がCRCシフトレジスタの複数のビットに影響を与えるため、全体として、CRCが検出エラーで統計的により堅牢である。
実際にあなたが検出することを、可能性があります他の事は、不完全なフラッシュのアップロードなので、コードの大きな塊は単純に欠けています。そのために、統計的にチェックサムは、おそらく大丈夫ですが、私はいつも私が働いてきたプロジェクトでCRCを支持してきました。テーブル・ベースのCRCアルゴリズムでは、我々は必要な計算速度を得ることができました。
他のヒント
CRC32は、比較的安価で実現するために迅速です。 W3Cのウェブサイトに(コスト上のPNGサンプルコードnoreferrer">
のchecksumることができます。●点滅がないことがなく、フラッシュ-チェックサムをより洗練されたのは、シリアル通信 追加のチェックサムをしてい点にご留意ください。 ここに申請を確認することができま害のできない場合は検出エラーとなります。 くはこちらを参照してくださいより多くの入力: http://en.wikipedia.org/wiki/List_of_checksum_algorithms
Flashデータがらないたいが崩れてしまうので、crcが良いです。その他の部分にはシリアルプロトコルです。さらに速度が遅いシリアルリンクを使用し、crc.ARM7チップに対応できethernet checksuming速度の速シリアル、コード速度とは問題にならないはずであるだけ大量に増や頑健性を検証した。
は、フラッシュメモリや(特に)OTPのようなもののために、それはエラーのランダムな組み合わせを引くのは良い仕事をするCRCのようなもの、とオーバーフローしないように十分な長さの補数チェックサムの両方を有することがしばしば良いことです。後者は、誤セットビットを含むのみ誤消去ビットを含むエラーの任意の組み合わせが検出されるという利点を持つことになります。