Dlaczego konwertować HEX na BIN?
Intel HEX przechowuje skompilowane oprogramowanie układowe jako rekordy tekstowe ASCII; każdy bajt jest zakodowany jako dwie cyfry szesnastkowe otoczone polami adresu i sumy kontrolnej. Wiele narzędzi do wgrywania oprogramowania, bootloaderów i narzędzi aktualizacyjnych oczekuje zamiast tego płaskiego obrazu .bin - na przykład płytki STM32 akceptują plik .bin przeciągnięty na ich napęd USB, podczas gdy łańcuch narzędzi Arduino generuje .hex. Konwersja pozwala używać oprogramowania zbudowanego przez jeden zestaw narzędzi z programatorem oczekującym innego formatu.
Jak przekonwertować HEX na BIN
avr-objcopy OPEN-SOURCE
Uruchom avr-objcopy -I ihex -O binary firmware.hex firmware.bin w terminalu. W systemie Linux ogólne narzędzie objcopy z systemowego pakietu binutils akceptuje te same flagi bez pakietu specyficznego dla AVR.
SRecord OPEN-SOURCE
Uruchom srec_cat firmware.hex -Intel -o firmware.bin -Binary. SRecord radzi sobie z lukami adresowymi w pliku HEX, wypełniając je wartością 0xFF, co odpowiada wyczyszczonej pamięci flash.
O tych formatach
Plik .hex to plik Intel HEX: skompilowane oprogramowanie układowe (firmware) dla mikrokontrolera, takiego jak Arduino, AVR lub układ PIC, przechowywane jako rekordy tekstowe. Nie uruchamia…
Otwórz szczegóły .HEX →Plik BIN to najczęściej surowa kopia sektora po sektorze płyty CD lub DVD, dostarczana wraz z pasującym plikiem tekstowym .cue opisującym ścieżki. Zamontuj go za pomocą PowerISO lub DAEMON…
Otwórz szczegóły .BIN →Jakość i na co uważać
- Plik wyjściowy
.binjest mniejszy niż.hex, ponieważ Intel HEX koduje każdy bajt jako dwie cyfry ASCII hex plus narzut ramek. - Jeśli plik HEX posiada luki adresowe - co jest częste, gdy obejmuje zarówno obszary flash, jak i EEPROM - SRecord domyślnie wypełnia je wartością
0xFF. - Narzędzie avr-objcopy jest dołączone do Arduino IDE w systemie Windows w katalogu
hardware/tools; w systemie macOS jest dostępne przez Homebrew w pakiecie avr-gcc.
Najczęściej zadawane pytania
Czy konwersja HEX na BIN powoduje utratę danych?
Gdzie znajdę avr-objcopy w systemie Windows?
hardware/tools lub dostępny w pakiecie WinAVR.Czy mogę użyć tej konwersji dla układów innych niż AVR?
objcopy z systemowego binutils z tymi samymi flagami; SRecord jest również niezależny od architektury.