目次

srec_cat

srec_cat - manipulate EPROM load files

ホームページ
https://srecord.sourceforge.net/man/man1/srec_cat.1.html
リファレンスマニュアル
https://srecord.sourceforge.net/reference-1.65.pdf

使い方

バイナリにCRCを付与したい

srec_cat $(BUILD_DIR)/$(TARGET).hex -Intel -fill 0xFF 0x08000000 0x0803FFFC -STM32 0x0803FFFC -o $(BUILD_DIR)/$(TARGET)_crc.hex -Intel

このコマンドの場合、

  1. $(BUILD_DIR)ディレクトリ内の$(TARGET).hexをintelフォーマットのhexファイルとして読み込み、
  2. ~0x0803FFCまでをすべて1で満たし(バイト単位だと0xFF
  3. CRC-32(0x4C11DB7)フォーマットで生成した値を0x0803FFCへ追加し
  4. $(TARGET)_crc.hexという名前のintelフォーマットのhexファイルを出力する

-STM32 : stm32用のCRCを作成し、その領域にCRC結果を書き込む。このオプションで使われるCRCの多項式はCRC-32(0x4C11DB7

CRCの値を確認したい

srec_cat $(BUILD_DIR)/$(TARGET).hex -Intel -fill 0xFF 0x08000000 0x0803FFFC -STM32 0x0803FFFC -crop 0x0803FFFC 0x08040000 -o - -hex_dump

このコマンドの場合、

  1. $(BUILD_DIR)ディレクトリ内の$(TARGET).hexをintelフォーマットのhexファイルとして読み込み、
  2. ~0x0803FFCまでをすべて1で満たし(バイト単位だと0xFF
  3. CRC-32(0x4C11DB7)フォーマットで生成した値を0x0803FFCへ追加し
  4. 0x0803FFCから0x08040000までの範囲に限定してhex形式で出力する。

参考文献

CRC computation in STM32 MCUs and post-build creation
Hands-on: CRC Checksum Generation
CRC calculation using srec_cat
How to generate unified hex file of Bootloader and Application Project
GENERAL: Utility For Combining Intel Hex Files
Hex file CRC calculation using Srecord tool
Trying to replicate a CRC made with ielftool in srec_cat