Vad är filformatet UF2?
UF2 står för USB Flashing Format, ett filformat som Microsoft skapade 2017 för sin MakeCode-plattform (PXT). Det är byggt för att flasha mikrokontroller via USB Mass Storage: kortet visas som en vanlig flyttbar enhet, och du kopierar firmware till den som vilken annan fil som helst. Specifikationen är öppen och publicerad av Microsoft under en MIT-licens.
En .uf2-fil är en platt sekvens av 512-byte-block. Varje block är självförsörjande - det innehåller en 32-byte-header med «magic numbers», mål-flashadressen, nyttolastens längd, blockets index och totala antal, samt ett «family ID» som identifierar målchippet, följt av upp till 476 byte firmware och ett avslutande «magic number». Denna design löser ett verkligt problem: ett operativsystem kan skriva blocken i en kopierad fil i vilken ordning som helst, så genom att göra varje block oberoende kan kortets bootloader flasha data i samma ögonblick som de anländer, utan att någonsin se en ofullständig fil.
De flesta möter UF2 när de programmerar ett hobby- eller utbildningskort. Raspberry Pi Pico (RP2040), BBC micro:bit och många kort från Adafruit, Arduino och Seeed accepterar UF2, och det är så CircuitPython- och MakeCode-projekt installeras. Du får vanligtvis en .uf2 genom att exportera den från en redigerare som MakeCode eller genom att ladda ner en förbyggd firmware för just ditt kort. Relaterade firmware-format som du kan stöta på inkluderar råa .BIN-avbildningar och Intel .HEX-filer.
Säkerhet & trygghet
RISK: MEDIUMA UF2 file is passive data and cannot run on your PC, but flashing firmware rewrites a board's program memory. Only flash a .uf2 that is built for your exact board, and only from a source you trust, since the wrong or malicious firmware can leave a board unusable until you reflash a known-good image.
Formatdetaljer
i ett nötskalProgram som öppnar UF2-filer
.uf2 file onto that drive. uf2conv.py firmware.bin -o firmware.uf2, or inspect a UF2 with uf2conv.py -i firmware.uf2. .uf2 file onto the removable drive the board presents in bootloader mode. .uf2 file onto it. python3 uf2conv.py firmware.bin -o firmware.uf2 to build or inspect UF2 files. Tekniska detaljer
djup specifikation| Encoding | binary |
| Byte order | little-endian (all 32-bit fields) |
| Container | flat sequence of independent 512-byte blocks |
| Typical size | a few KB to about 1 MB |
| Structure | A series of 512-byte blocks; each has a 32-byte header (magic numbers, target flash address, payload size, block index and count, family ID), up to 476 bytes of firmware payload, and a trailing magic number |
| Versioning | flags and 32-bit family-ID field identify the target chip (for example RP2040) |
| Integrity | three magic numbers per block (0x0A324655, 0x9E5D5157, 0x0AB16F30) validate each block; no CRC |
| Platforms | Windows, macOS, Linux, ChromeOS |
| Initial Release Full | 2017, with Microsoft MakeCode |
| Notes | You do not open a UF2 to view it; you copy it onto the board's USB drive to flash firmware. Because each 512-byte block is self-contained, the operating system can write the blocks in any order and the bootloader still flashes correctly. |
| Släppt | 2017 (Microsoft MakeCode / PXT) |
| Öppen standard | Ja · royaltyfri |
| Specifikation | github.com |
UF2-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om UF2-filer.
Vanliga frågor
Hur öppnar jag en UF2-fil?
.uf2-filen till den enheten. Kortet flashar den och startar om.Hur sätter jag en Raspberry Pi Pico i bootloader-läge?
.uf2-filen till den så startar kortet om med den nya firmwaren.Kan jag konvertera en UF2-fil till BIN?
uf2conv.py extraherar den råa binärfilen med uf2conv.py file.uf2 -c -o file.bin. Håll koll på den flashadress som lagras i UF2-headern.