From the Experts: Perform cyclic redundancy checking using linker-generated CRC tables

To verify code and/or data integrity, TI’s microcontroller (MCU) Code-Generation Tools (CGTs), including the C2000™ MCU CGT, the MSP430™ MCU CGT and the TI ARM CGT, support cyclic redundancy checking (CRC). This method can greatly enhance the performance of your embedded design and is easy to use, once you understand the basics of how CRC works. The focus of this blog post will be CRC with the C2000 MCU CGT; for more detailed information about CRC with the MSP430 MCU CGT and ARM®-based CGTs from TI, see the Additional Resources section below.

Designers use CRC to detect errors that might occur during data transmission. For a given section of code or data in an output file, the originator of the data – also known as the sender – applies a specific CRC algorithm to the content in that section to produce a CRC value, which is stored at a separate location in the output file. The consumer of the data – known as the receiver – knows what algorithm was applied to the section and can apply that same CRC algorithm to the code or data transmitted. If the CRC value computed by the receiver does not match the one computed by the sender, then the receiver may conclude that some error occurred during transmission and take appropriate action to address the problem, such as requesting that the sender retransmit the data.

You can check out a simple demonstration running on Code Composer Studio™ (CCS) software of how to perform CRC at run time using linker-generated CRC tables in the video, “Performing CRC with linker-generated CRC tables.”