Как вставить две константы, используя 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
Другие вопросы по тегам