|
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是利用i.MXRT10xx系列内部DCP引擎计算CRC32值时需注意数据长度对齐。
MCU 开发里常常需要 CRC 校验来检查数据完整性,CRC 校验既可以纯软件实现也可以借助 MCU 片内外设硬件实现。大部分 MCU 里通常都会包含一个单独的硬件 CRC 外设,但是在 i.MXRT 四位数系列里,翻看参考手册,我们却找不到名为 CRC 的外设,难道这么一款高性能 MCU 不支持硬件 CRC?当然不是!这个功能藏在一个更强大的数学计算引擎外设里。
Note:在 i.MXRT10xx 系列上这个引擎是 DCP,在 i.MXRT11xx 系列上这个引擎升级为 CAAM。关于 DCP 引擎使用,痞子衡写过一篇文章 《DCP计算Hash值时需特别处理L1 D-Cache》。最近官方社区里有人提问,当待校验 CRC 数据长度是 4 字节整数倍时,DCP 计算结果和一些在线网站上的计算结果保持一致(多项式和配置设置一致),但是当数据长度不是 4 字节对齐时,两者结果就不一致了,这是怎么回事?今天咱们来聊一聊:
一、DCP对于CRC支持翻看任何一个 i.MXRT10xx 系列的参考手册,仅在 System Security 章节有一小段关于 DCP 特性描述,里面讲了能支持 CRC32,但是关于多项式配置信息没有提及。 |
|