10.9. Linker-Generated CRC Tables and CRC Over Memory Ranges¶
The linker supports an extension to the linker command file syntax that enables the verification of code or data by means of Cyclic Redundancy Code (CRC). The linker computes a CRC value for the specified region at link time, and stores that value in target memory such that it is accessible at boot or run time. The application code can then compute the CRC for that region and ensure that the value matches the linker-computed value.
In a linker command file, you can cause CRC values to be generated for the following:
CRC for a section: Use the crc_table() operator within the SECTIONS directive. See Using the crc_table() Operator in the SECTIONS Directive.
CRC for memory range: Use the crc() operator for a GROUP in a MEMORY directive. See Using the crc_table() Operator in the MEMORY Directive.
The run-time-support library does not supply a routine to calculate CRC values at boot or run time. Examples that perform cyclic redundancy checking using linker-generated CRC tables are provided in the Tools Insider blog in TI’s E2E community.
Contents:
- 10.9.1. Using the crc_table() Operator in the SECTIONS Directive
- 10.9.2. Using the crc_table() Operator in the MEMORY Directive
- 10.9.2.1. Restrictions when Using the crc() Operator
- 10.9.2.2. Using the VFILL Specifier within a GROUP
- 10.9.2.3. Generate CRC for Most or All of Flash Memory
- 10.9.2.4. Computing CRCs for Both Memory Ranges and Sections
- 10.9.2.5. Example Specifying Memory Range CRCs
- 10.9.2.6. Interface When Using the crc() Operator
- 10.9.3. A Note on the TMS570_CRC64_ISO Algorithm