Dlaczego konwertować UF2 na BIN?
UF2 to kontener oprogramowania układowego typu „przeciągnij i upuść” przez USB, który opakowuje rzeczywisty obraz w 512-bajtowe bloki zawierające adresy flash i identyfikator rodziny (family ID), podczas gdy .bin to surowy obraz oprogramowania układowego bajt po bajcie. Programiści rozpakowują UF2 do .bin, gdy muszą wgrać oprogramowanie przez SWD/JTAG, sprawdzić obraz lub wprowadzić go do innego łańcucha narzędzi oczekującego zwykłego pliku binarnego. Narzędzie uf2conv.py od Microsoftu z repozytorium microsoft/uf2 wykonuje to w obie strony.
Jak przekonwertować UF2 na BIN
uf2conv.py (narzędzia Microsoft UF2) OPEN-SOURCE
Z repozytorium microsoft/uf2 uruchom uf2conv.py firmware.uf2 -c -o firmware.bin. Flaga -c/--convert zapisuje plik zamiast programowania urządzenia.
uf2conv Python - domyślne wyjście FREE
Uruchom uf2conv.py firmware.uf2 -c bez parametru -o, a narzędzie domyślnie przyjmie nazwę flash.bin po wykryciu wyjścia binarnego. Wymaga Python 3.
O tych formatach
Plik UF2 to obraz oprogramowania układowego w formacie Microsoft USB Flashing Format, używany do programowania mikrokontrolerów przez USB. Nie otwiera się go w aplikacji - należy wprowadzić…
Otwórz szczegóły .UF2 →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ć
- Docelowy adres flash/bazowy przenoszony w blokach UF2 nie jest zachowywany w płaskim pliku
.bin; musisz znać poprawny offset samodzielnie podczas ponownego wgrywania. - Jeśli UF2 posiadał luki między zakresami adresów, wynikowy plik
.binmoże być wypełniony pustymi danymi (padded) lub zaczynać się od niewłaściwego offsetu - sprawdź adres bazowy. - Sam plik
.binnie zawiera identyfikatora rodziny, więc tracisz kontrolę bezpieczeństwa rodziny urządzeń, którą zapewnia UF2.
Najczęściej zadawane pytania
Jaka jest dokładna komenda?
uf2conv.py firmware.uf2 -c -o firmware.bin. Flaga -c oznacza tylko konwersję, bez wgrywania.Czy potrzebuję Python?
uf2conv.py to skrypt Python 3 z repozytorium microsoft/uf2. Istnieje również port w Rust, uf2conv-rs.Czy adres flash jest zachowany?
.bin jest płaskim obrazem i musisz podać offset podczas wgrywania.Czy mogę później przekonwertować z powrotem na UF2?
uf2conv.py firmware.bin -c -b <base> -f <family> -o firmware.uf2, podając adres bazowy i identyfikator rodziny.