srec_cat 常用參數的使用
前言
下面介紹映像文件工具 srec_cat 的使用,如何通過相關參數實現自己需要的功能。
下載鏈接:SRecord
使用方式
文件類型
在輸入文件和輸出文件文件時要指明文件類型,常用的如:
test.hex -intel
test.bin -binary
文件轉換
可以通過該軟件進入文件類型轉換。
如hex文件轉bin文件:
srec_cat.exe stm32.hex -intel -offset 0x08000000 -o stm32.bin -binary
將 stm32.hex 從 0x08000000 地址開始轉成 bin 文件。
bin文件轉hex文件:
srec_cat.exe stm32.bin -binary -offset 0x08000000 -o stm32.hex -intel
將 stm32.bin 偏移 0x08000000 地址開始轉成 hex 文件。
文件截取
如果需要文件部分內容截取,可以使用參數-crop
。
srec_cat.exe stm32.hex -intel -crop 0x08000000 0x08003FFF -o stm32_app.hex -intel
將 stm32.hex 文件中 0x08000000 – 0x08003FFF 中有效的數據生成一個新的文件 stm32_app.hex,如果代碼結束地址是 0x0800 1FFF,那麼新生成的文件代碼範圍是 0x08000000 – 0x08001FFF。
內容填充
字符串
如果想在文件指定的位置填充字符串信息等,如版本信息
srec_cat.exe -generate 0x08000000 0x08000005 -repeat-string STM32 stm32.hex -intel -exclude 0x08000000 0x08000005 -o stm32_new.hex -intel
在 0x08000000 0x08000005 的範圍內重複填充 「STM32」字符串信息,和 stm32.hex (排除了 0x08000000 0x08000005 範圍內數據)進行合併,生成新的文件 stm32_new.hex
- -generate:數據生成器參數,即地址範圍-數據源
- -repeat-string:字符串參數,後面接入字符串參數
- -exclude:排除過濾器參數,不包括某一範圍內存的數據
- 重複:如果字符串長度小於預留的範圍,則重複填充,比如將 0x14 改為 0x16,則 0x15和0x16地址對應的數據為 ‘ST’
數字
如果想在文件指定的位置填充數字信息等,如文件大小
srec_cat.exe -generate 0x08 0x0C -constant-l-e 0x123456 4 stm32.bin -Binary -exclude 0x08 0x0C -o stm32_new.bin -Binary
在 0x08~0x0C 的範圍內填充按照 4 位元組重複填充16進制數字 0x123456,和 stm32.bin (排除了 0x08~0x0C 範圍內數據)進行合併,生成新的文件 stm32_new.bin
- -constant-l-e:數字值位元組寬度參數,即值-位元組寬度
- 重複:如果對齊長度小於預留的範圍,則重複填充,比如將 0x0C 改為 0x0D,則 0x0D地址對應的數據為 0x56(小端模式)