Electronics > Microcontrollers

Choosing the best CRC

<< < (8/8)

No, it's not true indeed. Maybe with some badly chosen polynomial. In reality CRCs are much better than that. Also the point about initializers is some made up mumbo jumbo so basically that post was based on misconceptions alone.

Choice of the polynomial itself is critical, use one of the widely used and tested unless sure about what you are doing.

All ones or all zeroes are the most typical initializers in the real world.


If there's a topic with a lot of misconceptions, that's CRCs. Even seasoned engineers often have misconceptions about them.

But, like many engineering activities, one common approach is to reuse something that is industry-standard in some context, and apply it to your context which looks the most similar. It's a bit like reusing nuts and bolts. You're not going to reinvent them every time you need some, except for very particular cases, or if it's your main job. This is often where pure science and engineering differ.

Any burst larger than the polynomial can produce an error that divides by the polynomial.  For an error smaller than the polynomial it's guaranteed not to divide (obviously).  For a burst larger than the polynomial bit size the probability is inversely proportional to the polynomial itself.


[0] Message Index

[*] Previous page

There was an error while thanking
Go to full version