Převod HEX na BIN
Převod textových souborů Intel HEX na proudy surových binárních bajtů odstraní obaly formátování ASCII a připraví kód pro přímé programování flash paměti mikrokontroléru.
Porovnání formátů a technické specifikace
| Specifikace | HEX | BIN |
|---|---|---|
| MIME typ | text/ | application/ |
| Typ | hexadecimální záznam paměti | surový binární proud bajtů |
| Komprese | žádná | žádná |
| Standardní specifikace | Objektový formát Intel HEX-32 | Specifikace proudu surových binárních bajtů |
| Hlavička souboru (Magic bytes) | :[0-9A-Fa-f]{8} (Intel HEX colon record format) | Raw arbitrary binary bytes |
Přehled formátu a použití
Záznamy Intel HEX obsahují adresy, počty bajtů, typy záznamů a kontrolní součty. Při převodu na surová binární data se toto rámování záznamů odstraní a obnoví se datové bajty; mezery mezi adresami a zvolená základní adresa ovlivňují uspořádání výstupního obrazu. Intel HEX použijte, pokud programátor potřebuje explicitní paměťové adresy.
Technické specifikace a přehled kodeků
Intel HEX používá typ MIME text/plain, který kóduje každý bajt dat a paměťovou adresu jako dva znaky ASCII vedle počátečních kódů, indikátorů délky a kontrolních součtů. Naopak Raw Binary používá application/octet-stream, což představuje neformátovanou sekvenci skutečných datových bajtů. Ani jeden formát nepoužívá kompresi, což znamená, že oba jsou přísně bezztrátové. Soubory Intel HEX nemají podpis magického bajtu, i když vždy začínají znakem ASCII dvojtečky. Surové binární soubory rovněž postrádají magické hlavičky nebo patičky a obsahují pouze surové datové bajty určené pro cílovou mapu paměti. Konverzní algoritmus přečte každý řádek Intel HEX, analyzuje dvojice ASCII hex, ověří kontrolní součet záznamu a zapíše výsledné binární bajty přímo na zadaný posun paměti.
Kompatibilita s operačními systémy a prohlížeči
Operační systémy jako Windows, macOS a Linux zpracovávají tento převod snadno pomocí utilit příkazového řádku, jako je objcopy, nebo vlastních skriptů. Moderní webové prohlížeče mohou provádět překlad lokálně pomocí JavaScriptu a rozhraní FileReader API, což vývojářům umožňuje převádět soubory přímo uvnitř webových vývojových prostředí. Mobilním operačním systémům chybí nativní nástroje příkazového řádku pro programování flash paměti, ale webové aplikace spuštěné na iOS a Androidu mohou převod zpracovat v případě potřeby pro vzdálené aktualizace v terénu.
Užitečné informace
Před převodem do formátu Raw Binary vždy ověřte adresy posunu paměti v souboru Intel HEX, protože roztroušené segmenty paměti zanechají ve výsledném binárním výstupu mezery tvořené nulami, což může potenciálně nafouknout velikost souboru.
Často kladené otázky
Jak převést Intel HEX na surová binární data bez ztráty kvality?
Oba formáty ukládají přesné strojové instrukce bez komprese, což z tohoto převodu činí zcela bezztrátový převod. Překlad jednoduše odstraní textové obaly ASCII a kontrolní součty, přičemž základní binární kód zůstane zcela nedotčen.
Jaký je rozdíl mezi formátem Intel HEX a surovými binárními daty?
Intel HEX je textový formát ASCII, který obsahuje adresní značky, počty bajtů a kódy pro kontrolu chyb pro čitelnost člověkem a bezpečný přenos. Surová binární data jsou paměťovým obrazem obsahujícím pouze surové strojové bajty připravené k přímému spuštění procesorem.