노트 / 펌웨어 설계와 품질
펌웨어 업데이트: 현장 기기를 안전하게 바꾸기
출시 후에도 버그를 고치려면 업데이트 경로가 필요합니다. A/B 슬롯, 서명 검증, 롤백으로 벽돌을 피하는 구조.
업데이트 경로
| 경로 | 예 |
|---|---|
| 유선 | UART, USB DFU, CAN (차량 진단기) |
| 무선 (OTA) | BLE, Wi-Fi, LTE |
벽돌이 되는 원인
- 쓰는 도중 전원 차단
- 깨진 이미지
- 새 펌웨어가 부팅은 되지만 통신이 안 되어 다시 업데이트할 수 없음
안전한 구조
- A/B 슬롯: 현재 동작하는 이미지(A)는 그대로 두고 새 이미지를 B에 씀
- 검증: CRC로 무결성, 디지털 서명으로 출처 확인 (아무나 만든 펌웨어 차단)
- 시험 부팅: 부트로더가 B로 부팅하고 "확정 대기" 상태로 둠
- 확정: 새 펌웨어가 자가 점검(통신, 센서) 후 스스로 확정 표시
- 롤백: 확정 없이 리셋되면(워치독 등) 부트로더가 A로 되돌림
MCUboot 같은 오픈소스 부트로더가 이 구조를 제공합니다.
그 밖에
- 버전 다운그레이드를 막는 안티 롤백 카운터
- 업데이트 중 모터나 히터 같은 위험 부하는 반드시 정지
- 차량은 UDS 진단 서비스로 플래싱하는 표준 절차가 있습니다 (자동차 소프트웨어 과목 참고)