SPMA078 March 2021 TM4C1290NCPDT , TM4C1290NCPDT , TM4C1290NCZAD , TM4C1290NCZAD , TM4C1292NCPDT , TM4C1292NCPDT , TM4C1292NCZAD , TM4C1292NCZAD , TM4C1294KCPDT , TM4C1294KCPDT , TM4C1294NCPDT , TM4C1294NCPDT , TM4C1294NCZAD , TM4C1294NCZAD , TM4C1297NCZAD , TM4C1297NCZAD , TM4C1299KCZAD , TM4C1299KCZAD , TM4C1299NCZAD , TM4C1299NCZAD , TM4C129CNCPDT , TM4C129CNCPDT , TM4C129CNCZAD , TM4C129CNCZAD , TM4C129DNCPDT , TM4C129DNCPDT , TM4C129DNCZAD , TM4C129DNCZAD , TM4C129EKCPDT , TM4C129EKCPDT , TM4C129ENCPDT , TM4C129ENCPDT , TM4C129ENCZAD , TM4C129ENCZAD , TM4C129LNCZAD , TM4C129LNCZAD , TM4C129XKCZAD , TM4C129XKCZAD , TM4C129XNCZAD , TM4C129XNCZAD
The hardware CRC module is used by the FEE driver to validate that the contents of the emulated EEPROM memory are the same as what was intended. The CRC module is used in the functions FeeWrite(), FeeRead(), FeeInit(), FeeCheckDatasetValid() and FeeMainFunction(). The configuration, use and reading of the module are completely contained within each function call. The hardware CRC module may be used with different settings if the state of the module is not required to be maintained across a call to a FEE function.
If the hardware CRC module is to be used in a manner that calls to the Fee functions occur while calculating with the CRC module, the configuration used by the application must be defined in the HEeepromConfig.h file. This causes the FEE driver to save the contents of the CRCSEED and restore if after completion. It will also restore the CRCCTRL register to the settings defined in the HEeepromConfig.h file. Since the Fee driver cannot restore the contents of the Post Processing Result (CRCRSLTPP) register, if a FEE driver function is called after the last write to the CRC Data Input (CRCDIN) register and before reading the post processing result register, the contents of the post processing result register will be corrupt. In this case, the CRC Seed (CRCSEED) register should be read instead and the post processing performed by the CPU.
If the CRC module is to be used in an interrupt routine and the FEE status is not FEE_IDLE, the contents of the CRCSEED register should be saved before using the module. After using the module, the configuration should be set back to (CRC_CFG_TYPE_P4C11DB7 | CRC_CFG_SIZE_32BIT) and the saved value restored as the new seed.