Microcontroller Unit. "컴퓨터 한 대가 칩 하나 안에 들어 있다" 고 보면 된다.
PC 와 무엇이 다른가
PC CPU · RAM · 저장장치가 각각 부품. OS 가 자원을 관리한다
MCU 플래시 · SRAM · 타이머 · 통신이 전부 칩 안. 관리자가 없다
관리자가 없다는 말은 내 코드가 곧 시스템이라는 뜻이다. 메모리를 누가 대신 정리해 주지 않고,
프로그램이 끝나면 돌아갈 곳도 없어서 main 은 무한 루프로 끝나지 않는다.
그래서 생기는 성질
- 부팅이 빠르다 — 전원을 넣고 수십 µs 안에 코드가 돈다. 리눅스는 초 단위다
- 결정성 — "매 1ms 마다 반드시" 를 지킬 수 있다. 스케줄러가 끼어들지 않기 때문
- 자원이 작다 — 플래시 수백 KB, RAM 수십 KB. 라이브러리 하나가 예산을 다 먹기도 한다
개발 흐름도 다르다
코드를 PC 에서 짜서(크로스 컴파일) 바이너리를 칩에 구워 넣고, 디버거로 칩 안을 들여다본다.
printf 하나 찍는 것도 UART 를 먼저 살려야 가능하다.