Входные данные: OS Linux mint
STM32 CUBE IDE
Есть задача, посчитать CRC прошивки (hex файла). Эту задачу я выполнил, с помощью следующего кода
#!/bin/bash
/opt/st/stm32cubeide_1.10.1/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.linux64_1.0.0.202111181127/tools/arm-none-eabi/bin/objcopy -O ihex kn_puri_stm.elf "kn_puri_stm_crc.hex"
/usr/bin/srec_cat kn_puri_stm_crc.hex -Intel -fill 0xFF 0x08000000 0x08024000 -STM32 0x080FFFF8 -o kn_puri_stm_srecord.hex -Intel
Но тут я задал адрес по которому считается CRC хардкорно, если моя прошивка перевалит за 0x24000, то придется переписывать скрипт. Поэтому хочу посчитать размер hex файла и засунуть этот адрес вместо 0x08024000 и потом записать его рядом с CRC по адресу 0x080FFFFC. Но как это сделать не понимаю. При работе с bin файлом работала команда srec_cat -length-b-e -max-addr, но с hex файлом она не работает. Подскажите, как решить данную задачу?