Как вставить две константы, используя srec_cat?
У меня есть следующий скрипт для 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 ответов
Я думаю, что вам нужны скобки, как указано в человеке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