完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在使用 Tasking 编译器,有一个内部函数调用 __crc32(uint32 b,uint32 a)参见下文 Tasking 用户手册
我很困惑的是参数 uint32 b,我做了一些测试,如果 b = 0x0000000,我就能从给定的参数 a 中得到正确的 crc 返回值。 例如 b = 0x00000000 a = 0x12345678 __crc32 (b, a) 返回值是 0x4a090e98,这是正确的(我用一些 crc 计算器仔细检查了一下) 但是,一旦我给了 b 任何其他值,我就无法再有预期的 crc 返回值了。 参数 b 到底代表什么? |
|
相关推荐
2个回答
|
|
初始种子值始终为零。 如果这种情况发生变化,它将不起到初始种子值的作用。 就像你说的那样,如果你尝试 a = 0x12345678 和 b = 0,你会得到 0x4a09e98,但假设你想要 a = 0x1234567887654321,你将无法使用它,因为该函数只能获得 uint32 值或 32 位值。 要获得 crc,你需要先做 a1= 0x12345678 和 b = 0,然后使用由此得出的结果作为 b,a2 = 0x87654321。
结果 = __crc32 (0x0, 0x12345678); 结果 = 0x4a090e98 extResult = __crc32(结果,0x87654321); extResult = 0xbd4aa34B |
|
|
|
根据您提供的信息,参数 `uint32 b` 是 `__crc32` 函数的输入参数,但具体代表什么取决于使用情境和编译器的实现。在您的情况下,当 `b` 的值为 0x00000000 时,您可以得到正确的 CRC 返回值。然而,如果 `b` 的值为其他值,则无法得到预期的结果。
为了解决这个问题,您可以查阅 Tasking 编译器的用户手册,以了解关于 `__crc32` 函数的更多详细信息。用户手册中可能对这个函数的参数有更具体的说明和使用说明。 此外,您还可以考虑尝试使用其他的 CRC 算法或库,以获得正确的结果。您可以在互联网上寻找常用的 CRC 算法实现或库,并根据您的需求进行选择和集成。 如果您对编码中使用的库函数或编译器的内部函数仍然感到困惑,建议您与 Tasking 编译器的威廉希尔官方网站 支持团队联系,以获得更具体的指导和解决方案。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
644 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1819 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1262 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1136 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1357 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12022 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 00:24 , Processed in 0.685002 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号