Intel HEX address merger
Merge local Intel HEX 00–05 files by sparse 32-bit addresses, checking record checksums, overlaps and entry-point conflicts before output.
- 1Add input
- 2Adjust settings
- 3Get your result
Tool input and files are processed in this browser without being uploaded.
Before you start
Combine bootloader and application HEX exports only when their stored address bytes do not overlap. Review complete segments and entry metadata, then deliver canonical HEX and a sparse address map without filling large address gaps.
How to use this tool
- Select the original bootloader/application HEX files, or paste one complete HEX file for inspection.
- Check stored ranges, segment bounds and retained entry-point kind; any overlap fails before a download.
- Download merged.hex, the complete address-map JSON and segment report. Verify the result with the receiving firmware tool before flashing.
Supported inputs and limits
Paste one HEX file or select up to 64 UTF-8 files, combined at most 2 MiB. Selected files take precedence. At most 50,000 nonempty records and 1 MiB stored bytes; sparse addresses are independent of their span. Total complete artifacts up to 10 MiB; segment preview first 200.
Supports records 00 data, 01 EOF, 02 extended segment address, 03 CS:IP start, 04 extended linear address and 05 EIP start. Count, checksum, record address and type-specific length must be exact. Every file needs one EOF; later records, invalid hex/whitespace, duplicate start records and unknown types reject. Empty lines and an optional leading UTF-8 BOM are accepted.
Addresses range 0x00000000–0xFFFFFFFF. Data that exceeds this range rejects. Any repeated stored address, even with the same byte, rejects the entire merge. One compatible entry-point declaration is retained; different kinds or values conflict. No partial result is supplied on failure.
Output uses 16-byte data records with extended linear bases and retains the start-record kind. Address-map JSON contains every contiguous segment and its exact hex bytes; report/CSV provide complete segment bounds with exclusive ends (0x100000000 is permitted as an end). No gap filling, hardware flashing, target suitability, firmware-signature authentication or application CRC validation.
Worked example
Example input
:0400000001020304F2 :0400000500000000F7 :00000001FF
Example options
{"secondary":"","params":{"spreadsheetSafe":true}}Example output
{
"format": "Intel HEX 00–05",
"inputFiles": 1,
"inputBytes": 52,
"records": 3,
"storedBytes": 4,
"segments": [
{
"start": 0,
"endExclusive": 4,
"storedBytes": 4,
"startHex": "00000000",
"endExclusiveHex": "00000004"
}
],
"minimumAddress": "00000000",
"maximumAddress": "00000003",
"startKind": "linear",
"outputRecords": 4,
"entry": {
"kind": "linear",
"eip": 0
},
"sources": [
{
"name": "pasted.hex",
"records": 3,
"storedBytes": 4,
"entry": {
"kind": "linear",
"eip": 0
}
}
]
}When something does not work
Regenerate records with correct lengths/checksums and one final EOF. Resolve overlapping regions and conflicting start records in the original linker/build configuration. Keep unsupported record formats separate; rerun from complete corrected files.
Frequently asked questions
Can identical overlapping bytes be merged?
No. Every repeated stored address rejects, even when bytes match. Resolve ownership in the build outputs before merging.
Will an address near 0xFFFFFFFF allocate a 4 GiB image?
No. The tool stores only present bytes and emits sparse segments. It does not allocate or fill the address span.
Does a checksum prove the firmware will run?
No. Intel HEX record checksums only check record integrity. The tool does not know the target flash layout, boot protocol or application CRC.
Documentation & further reading
Related tools
JSON formatting workspace
Format or minify strict JSON, sort object keys, and encode or decode strings while preserving raw number tokens.
Regex tester
Try a pattern and see what it matches in your text.
Compare text
See what changed, side by side.
HTML formatter
Format HTML indentation so its structure is easier to read.