工具/软件:
在此常见问题解答中、我将介绍使用外部工具生成 MCRC 的详细过程。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:
在此常见问题解答中、我将介绍使用外部工具生成 MCRC 的详细过程。
在此常见问题解答中、我将介绍使用外部工具生成 MCRC 的详细过程。 为此、我考虑了"sdl_mcrc_full_cpu_example_am263x-cc_r5fss0-0_nortos_ti-arm-clang"示例、在本例中、我们有多个用例、因此我想在后续几节中给出每个用例的 CRC 生成过程。
此示例获取的输入数据如下所示:
所有用例都将使用我在上面突出显示的相同缓冲区(pMCRCData)数据、这里的大小值为400、因此该缓冲区包含从0x00000000到0x00000064的100个字的数据。
用例0:
用例0的配置如下突出显示:
请注意、我们在这里使用的是 SDL_MCRC_DATA_64_BIT 算法。
此用例的预先确定(基准) CRC 是 0x749E85BFB9257584:
在我们的代码中、我们按如下方式将数据写入 MCRC 签名生成寄存器:
在用例0中、我们不会一次将整个64位数据写入 regL 和 regH、而是首先将一个32位输入数据写入 reg-L、然后再将另一个32位数据写入 reg-H、这意味着 CRC 生成器的输入数据如下所示:
0x000000000000 0x00000001000000000 0x000000000002 0x0000000300000000
0x000000000004 0x0000000500000000 0x000000000006 0x0000000700000000
……………………………………………………………………………………………………………………………………………μ s 。
0x0000000000000060 0x0000006100000000 0x0000000000000062 0x0000006300000000
现在、使用以下网站进行 CRC 计算验证:
在此处、首先按如下所示保留设置:
现在将我们的数据复制到 Input data 选项卡以 生成 CRC:
如您现在所见、我们从工具生成的 CRC 与基准的 CRC 匹配 0x749E85BFB9257584 。
用例1:
我们不需要对该用例1执行 CRC 验证、因为
用例1专为负测试用例而设计、这意味着如果我们为该用例启用执行签名验证、则会得到签名验证失败的结果。
此用例的实际 CRC 应为 0xEDD1B33EFF852D40 但这里特意给出了错误的 CRC 0x749E85BFB9257584。
另请注意、默认情况下、此用例1的签名验证不启用以执行:
用例2:
同样、对于用例2、也不需要执行此 CRC 计算、因为这种情况与用例0具有相同的配置、包括参考 CRC:
用例3:
用例3配置如下突出显示:
请注意、我们在这里使用的是 SDL_MCRC_DATA_32_bit 算法。
此用例的预先确定(基准) CRC 是 0xEDD1B33EFF852D40:
在我们的代码中、我们将数据写入 MCRC 签名生成寄存器、如下所示、适用于 SDL_MCRC_DATA_32_bit 算法:
在用例3中、我们仅将整个32位数据写入 regL、而我们未使用 regH、因此这意味着 CRC 生成器的输入数据如下所示:
0x00000000 0x00000001 0x00000002 0x00000003
0x00000004 0x00000005 0x00000006 0x00000007
……………………………………………………………………………………………………………………………………………μ s 。
0x00000060 0x00000061 0x00000062 0x00000063
现在使用同一网站进行 CRC 计算验证:
现在将我们的数据复制到 Input data 选项卡以 生成 CRC:
如您现在所见、我们从工具生成的 CRC 与基准的 CRC 匹配 0xEDD1B33EFF852D40 。
用例4:
用例4配置如下突出显示:
请注意、我们在这里使用的是 SDL_MCRC_DATA_16_BIT 算法。
此用例的预先确定(基准) CRC 是 0xB33EFF852D4885EB:
在我们的代码中、我们按如下方式将数据写入 MCRC 签名生成寄存器:
由于器件是一个小端字节序、因此在我们类型转换为16位(低位地址至少为半字)后、存储器数据将如下所示:
在用例4中、我们仅将整个16位数据写入 regL、因此这意味着 CRC 生成器的输入数据如下:
0x0000 0x0000 0x0000 0x0001 0x0000
0x0002 0x0000 0x0003 0x0000
……………………………………………………………………………………………………………………………………………μ s 。
0x0062 0x0000 0x0063 0x0000
现在使用同一网站进行 CRC 计算验证:
现在将我们的数据复制到 Input data 选项卡以 生成 CRC:
如您现在所见、我们从工具生成的 CRC 与基准的 CRC 匹配 0xB33EFF852D4885EB 。