因此,我试图找出一种srec_cat
在将代码放在微控制器上之前计算 CRC 的方法。现在,我的构建后脚本使用ielftool
from IAR 进行计算并将其插入到 hex 文件中的正确位置。
我想知道如何srec_cat
使用相同的十六进制文件生成相同的 CRC。
这是产生我要复制的 CRC32 的 ielftool 命令:
--checksum APP_SYS_ApplicationCrc:4,crc32:1mi,0xffffffff;0x08060000-0x081fffff
APP_SYS_ApplactionCrc
是将存储校验和并添加 4 字节偏移量的符号crc32
是算法1
指定补码m
反转输入字节和最终校验和i
用起始值初始化校验和值0xffffffff
是起始值- 最后,
0x08060000-0x081fffff
是计算校验和的内存范围
我已经尝试了很多东西,但是我认为这是迄今为止我最接近同一命令的srec_cat
:
-crop 0x08060000 0x081ffffc -Bit_Reverse -crc32_b_e 0x081ffffc -CCITT -Bit_Reverse
-crop 0x08060000 0x081ffffc
以某种方式指定将计算 CRC 的内存范围-Bit_Reverse
m
当放置在正确的位置时,应该做与 ielftool相同的事情-crc32_b_e
是算法。(我还不确定我需要大端_b_e
还是小端_l_e
)0x081ffffc
是内存中放置 CRC 的位置-CCITT
初始种子( 中的起始值ielftool
)都是一位(这是默认值,但我想我会把它扔在那里)
有没有人知道如何复制 ielftool 的 CRC?还是我只是徒劳无功?
我是 CRC 的新手,除了基础知识外,我知道的不多。如果我有完全相同的算法,这是否重要?当我将代码放在板上时,CRC 是否仍然有效?
注意:我目前正在使用ielftool 10.8.3.1326
和srec_cat 1.63