A collection of command-line utilities written in C for binary file manipulation and firmware-related formats such as Intel HEX.
This project focuses on:
- Simplicity and clarity
- High performance
- Cross-platform compatibility (Linux / Windows)
- Clean architecture (separation between CLI and core logic)
Converts a binary file into a plain hexadecimal ASCII representation.
bin2hex <input.bin> <output.hex>bin2hex firmware.bin firmware.hexConverts a hexadecimal ASCII file into a binary file.
- Ignores \n and \r
- Detects invalid characters
- Validates input correctness
hex2bin <input.hex> <output.bin>hex2bin firmware.hex firmware.binConverts a binary file into Intel HEX format.
- Extended Linear Address (default)
- Extended Segment Address
- Address offset support
bin2IntelHex <input.bin> <output.hex> [options]| Option | Description |
|---|---|
| --linear | Use Extended Linear Address (default) |
| --segment | Use Extended Segment Address |
| --offset | Add address offset (decimal or hex) |
bin2IntelHex input.bin output.hexbin2IntelHex input.bin output.hex --offset 0x1000bin2IntelHex input.bin output.hex --segmentParses an Intel HEX file and reconstructs the corresponding binary image.
- Checksum validation
- Extended address support (Linear & Segment)
- Gap filling
- Overlap detection
- Strict validation mode
intelHex2bin <input.hex> <output.bin> [options]| Option | Description |
|---|---|
| --fill | Fill value for unused memory (default: 0x00) |
| --strictEnable | strict validation (fail on overlaps) |
intelHex2bin firmware.hex firmware.binintelHex2bin firmware.hex firmware.bin --fill 0xFFintelHex2bin firmware.hex firmware.bin --strictCompares two binary files byte-by-byte.
binCompare <file1.bin> <file2.bin>binCompare original.bin generated.binExtracts a portion of a binary file.
binSplit <input.bin> <output.bin> <start> <size>| Option | Description |
|---|---|
| start | Starting offset (decimal or hex) |
| size | Number of bytes to extract |
binSplit firmware.bin part.bin 1024 512binSplit firmware.bin part.bin 0x400 0x200