gpt4 book ai didi

boost - 什么是 64b 输入和 32b 输出的 CRC?

转载 作者:行者123 更新时间:2023-12-04 16:51:48 25 4
gpt4 key购买 nike

我正在开发一个软件实用程序来将一些数据传输到 pci-e 板。为了避免数据传输错误,我在每个数据包中添加了一个CRC字段,以便pci-e板可以使用CRC值来验证接收到的数据。

然后我们发现CRC值没有通过校验。

我正在使用 boost::crc_32_type 生成 CRC 值,而硬件人员告诉我电路板中的 CRC 实现来自 http://www.easics.com/webtools/crctool他们使用 64 数据总线宽度版本的 CRC32 - ETHERNET/AAL5。

那么,是否可以使用 boost::crc_32_type 来处理他们正在使用的类型?

任何建议将不胜感激!

[编辑2013.02.20]

  1. 工作的 crc 模板应具有以下定义:
    boost::crc_optimal<32, 0x04C11DB7, 0xFFFFFFFF, 0x0, false, false>
  2. 每8个字节在处理前要颠倒顺序
  3. 使用 std::for_each 而不是 process_bytes 来获取结果,但我仍然不太明白它们之间的区别。

最佳答案

您可以使用crc_32_type - 首先您必须确保您的字节的顺序与硬件人员的字节顺序相同。 EASICS 代码使用的约定是流中的第一个字节进入 Data[63:56]。

关于boost - 什么是 64b 输入和 32b 输出的 CRC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13008364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com