ZHCU875Z August 2001 – October 2023 SM320F28335-EP
存储器范围的 CRC 采用表格式存储,类似节 8.9.1.3中显示的针对段范围的 CRC 的存储格式。但是,表格式与 CRC 表的格式不同。
下图显示了存储器范围 CRC 的存储格式以及示例值:
表头存储记录计数和大小,以及算法类型和 CRC 结果。每个表条目对用于计算 CRC 的存储器范围的起始地址和长度进行编码。
以下头文件片段显示了由链接器创建的用于管理 CRC 信息的 C 结构:
typedef struct memrange_crc_record {
uint16_t page_id; /* page number of data */
uint16_t padding; /* pad for next 32-bit value */
uint32_t addr; /* starting address */
uint32_t size; /* size of data in 16-bit addressable units */
} MEMRANGE_CRC_RECORD;
typedef struct memrange_crc_table {
uint16_t rec_size; /* 16-bit addressable units */
uint16_t num_recs; /* how many records are in the table */
uint16_t crc_alg_ID; /* CRC algorithm ID */
uint16_t padding; /* pad for next 32-bit value */
uint32_t crc_value; /* result of crc */
MEMRANGE_CRC_RECORD recs[1];
} MEMRANGE_CRC_TABLE;