A cyclic redundancy code (CRC) is a powerful type of checksum that is able to detect corruption of data that is stored in and/or transmitted between embedded systems. Generally speaking, CRCs are most efficiently calculated in dedicated hardware. However, sometimes you must compute a CRC in software, for example in a C or C++ program that will run on a microcontroller.
To save yourself time as well as to ensure your implementation of the CRC's modulo-2 arithmetic is efficient and bug-free, download Michael Barr's public domain CRC functions for embedded C/C++ programs. This small C source code library is available as a free digital download from our website and has been widely tested and deployed by thousands of embedded software developers.
For more information on checksums, CRCs, and how our code works, see the related video and articles linked below.
Related Resources
CRC Series, Part 1: Additive Checksums
CRC Series, Part 2: CRC Mathematics and Theory
CRC Series, Part 3: CRC Implementation Code in C/C++
Related Training Courses
Still Need Help?
If your team needs additional support services for implementing checksums, CRCs, or other programming issues, contact us.