학생들에게 가장 먼저 설명할 핵심 개념:
펌웨어 = 하드웨어 위에서 직접 실행되는 소프트웨어
부팅 시 가장 먼저 실행
별도의 운영체제 없이 동작하거나 매우 작은 RTOS(Realtime-OS) 위에서 실행됨
플래시에 저장되고, SRAM에서 실행됨
| 구분 | 운영체제(OS) | 펌웨어(Firmware) |
|---|---|---|
| 목적 | 여러 프로그램을 관리 | 하드웨어 직접 제어 |
| 위치 | PC, 스마트폰 | MCU, 센서, 기기 내부 |
| 복잡도 | 매우 복잡 | 비교적 단순, 기능 제한적 |
| 실행 방식 | 프로그램을 실행·제어 | 전원 켜자마자 바로 동작 |
| 자원 관리 | CPU, 메모리, 파일 등 관리 | 직접 모든 제어 코드 작성 |
| 예시 | Windows, Linux, Android | Pico C/C++ SDK로 만든 코드 |
[참고] 운영체제(OS) vs 펌웨어
그래서:
앞에서 정의한 “펌웨어”에 바로 연결시켜 줍니다.
우리가 Pico에 올리는 .uf2 파일 = 펌웨어의 한 종류
그 펌웨어를 쉽게 만들 수 있게 도와주는 라이브러리 묶음이
바로 Raspberry Pi Pico C/C++ SDK
int main() {
stdio_init_all(); // UART, USB 초기화 (SDK가 제공)
gpio_init(LED_PIN); // LED 핀 설정
gpio_set_dir(LED_PIN, GPIO_OUT);
while (true) { // OS 대신 이 무한루프가 시스템을 책임짐
gpio_put(LED_PIN, 1); // LED ON
sleep_ms(500); // 0.5초 대기 (SDK 함수)
gpio_put(LED_PIN, 0); // LED OFF
sleep_ms(500);
}
}
→ 이 코드를 빌드해서 플래시에 넣으면,
→ Pico 전원을 켤 때마다 제일 먼저 이 코드가 실행됨 = 펌웨어.
한 줄 정의로 다시 강조:
“우리가 Pico C/C++ SDK로 작성해서 올리는 프로그램 전체가 바로 ‘Pico의 펌웨어’이다.”