SMT32F4xx系列中有一个CRC(Cyclic Redundancy Check 循环冗余校验)计算单元,它是使用一个固定的多项式发生器从一个32位的数据字中产生的CRC码。其主要应用是常用于验证数据传输或存储的完整性。根据EN/IEC60335-1标准的规定,这些技术提供了验证flash完整性的方法。CRC计算单元有助于在运行期间计算软件的签名,并将该签名与链接时生成并存储在指定存储单元的参考签名加以比较。
CRC 功能说明
CRC 计算单元主要由单个 32 位数据寄存器组成,该寄存器:
● 用作输入寄存器,向 CRC 计算器中输入新数据 (向寄存器写入数据时)
● 可保存之前的 CRC 计算结果 (读取寄存器时)
CRC 寄存器
CRC 计算单元包含两个数据寄存器和一个控制寄存器。CRC 寄存器必须按字(32 位)访问。
1-数据寄存器 (CRC_DR):32bit, 向 CRC 计算器写入新数据时用作输入寄存器。读取寄存器时可读出之前的 CRC 计算结果。
2-独立数据寄存器 (CRC_IDR):32bit ,只用到了低8bit ,可用作一个字节的临时存储单元。此寄存器不受 CRC_CR 寄存器中 RESET 位产生的 CRC 复位影响。
3-控制寄存器 (CRC_CR):32bit ,只用到了bit0,复位 CRC 计算单元并将数据寄存器设为 0xFFFF FFFF。此位只能置 1,将由硬件自动进行清零。
来源:不懂幽默的秦二