In addition to using the ECC for flash verification, the designer also has the ability to do verification of flash with the (cyclic redundancy check) CRC modules. Designers can calculate a CRC on RAM or flash: any memory mapped address. Typically it is used for code that is in flash, users want to make sure that there are no bits that have been flipped and want to make sure that the calculated CRC matches the expected CRC. This can be done with multiple CRCs of data tables that the designer wants to check for calibration. There are CRC modules provided for the M3 and the C28 as well which are under the control of their respective CPUs. The CPU will point to a memory location and read it. The CRC will then create a running CRC value based upon the data that was read. This allows for start-stop CRC calculations, which means that there will be interrupts which will run the calculations and then the operation will continue afterwards. The designer could do a CRC calculation in the background and even though it gets interrupted by the real-time controlled system or the communication interrupts, it’s not going to disturb the CRC calculation. In such, there can be multiple CRCs; it will basically just clear out the CRC register at the beginning and then start the reading of memory from the pointer and then when it gets to the last address, a comparison will be done and then when it is done with that range it could start on another range after that. To support this functionality, the co-generation tools have a new CRC calculator that is being added to those tools. So the ability to be able to calculate a CRC over a given range, calculate multiple CRCs over a given range that will be – the ability to be able to do that will be provided as part of the co-generation tools.