我为srec_cat使用以下脚本。我的目标是将两个常量插入.srec文件中的已知位置:
srcfile.srec
# carve a hole for and insert crc byte count
-exclude 0x43c8 0x43cc
-generate 0x43c8 0x43cc -constant-l-e 0x8e2c 4
# carve a hole for and insert crc expected value
-exclude 0x43cc 0x43d0
-generate 0x43cc 0x43d0 -constant-l-e 0x194fa71a 4
# output into new file
-o dstfile.srec
如果我注释掉一半,该脚本将正常工作。但是,在两个人都出席的情况下,我得到了消息:
srec_cat: generate repeat data: multiple 0x000043CC values (previous = 0x00, this one = 0x1A)
我可以写出一个中间文件并对其进行处理以插入第二个常量,但这似乎相当繁琐。从这样的黑客救我! :)
答案 0 :(得分:1)
我认为您需要man srec_examples
中提到的方括号:
加入后进行过滤
有时您希望将两组数据连接在一起,然后对连接的结果应用过滤器。去做这个 您使用括号。srec_cat \ '(' \ infile -exclude 0xFFF0 0x10000 \ -generate 0xFFF0 0xFFF8 -repeat‐string 'Bananas ' \ ')' \ -b‐e‐length 0xFFF8 4 \ -b‐e‐checksum‐neg 0xFFFC 4 4 \ -o outfile
上面的示例命令用恒定的字符串填充输入文件(不包括生成的数据区域)。这联系 然后对输入进行过滤,以添加4字节的长度和4字节的校验和。
在您的情况下:
srec_cat '(' srcfile.srec -exclude 0x43c8 0x43cc -generate 0x43c8 0x43cc -l-e-constant 0x8e2c 4 ')' -exclude 0x43cc 0x43d0 -generate 0x43cc 0x43d0 -l-e-constant 0x194fa71a 4 -o dstfile.srec