UF2 (USB Flashing Format)마이크로컨트롤러용 펌웨어 파일 포맷으로,
특히 MicroPython / CircuitPython / Raspberry Pi Pico / Adafruit 보드 등에서 펌웨어 업로드를 간단하게 하기 위해 만들어진 형식입니다.

 


🧩 핵심 요약

항목내용
정식 명칭 USB Flashing Format (UF2)
만든 곳 Microsoft MakeCode 팀
목적 펌웨어를 마치 “USB 드라이브에 파일 복사하듯” 업로드할 수 있게 함
확장자 .uf2
대상 칩 RP2040 (Raspberry Pi Pico), nRF52 시리즈, SAMD21, STM32 등
전송 방식 USB MSC (Mass Storage Class) — 즉, 보드가 “USB 드라이브”로 인식됨

 


⚙️ 동작 원리

  1. MCU 보드를 부트로더 모드로 진입시킵니다.
    • 예: Raspberry Pi Pico에서 BOOTSEL 버튼 누른 채 연결.
  2. PC에서 보드가 USB 드라이브(MICROBIT, RPI-RP2 등) 로 나타납니다.
  3. 해당 드라이브에 .uf2 파일을 그냥 복사(Drag & Drop) 합니다.
  4. 복사가 완료되면 보드가 자동으로 재부팅 + 플래시 프로그래밍 수행.
  5. 이후 새 펌웨어가 실행됩니다.

📦 UF2 파일 내부 구조

UF2는 일반 바이너리(.bin, .hex)를 그대로 담는 게 아니라,
“512바이트 단위의 블록 구조 + 메타데이터” 를 추가한 포맷입니다.

필드설명
Magic Number 파일 식별자
Target Address MCU 플래시 메모리에 쓸 주소
Payload 실제 펌웨어 데이터 (최대 476B)
Flags / Family ID MCU 종류 식별 (예: RP2040, nRF52840 등)

이 덕분에:

  • 복사 중 일부 블록이 빠져도 안정적으로 업로드됨
  • MCU가 어떤 파일이 자기용인지 판별 가능

💡 비교

포맷특징
.bin 순수 머신 코드, 주소 정보 없음
.hex 인텔 HEX 형식, 텍스트 기반
.uf2 블록 기반, USB 복사로 손쉽게 업로드 가능

'하드웨어 > 상식' 카테고리의 다른 글

RabbitMQ  (0) 2025.10.15
MQTT(Message Queuing Telemetry Transport)  (0) 2025.10.15
Oscillator(발진기) 설명 및 신호 측정  (0) 2025.10.04
LoRa(Long Range) : 저전력 광역 통신망(LPWAN)  (0) 2025.09.30
CAN(Controller Area Network)  (0) 2025.09.30

+ Recent posts