임베디드 용어 사전
신뢰성

부트로더

애플리케이션을 갱신하고 실행시키는 작은 프로그램. 업데이트가 실패해도 되살릴 수 있어야 한다.

현장 펌웨어 업데이트의 전제다. 가장 중요한 요구는 "실패해도 벽돌이 되지 않는 것" 이다.

기본 구조

0x08000000  부트로더    작고, 거의 바뀌지 않으며, 자기 자신은 지우지 않는다
0x08008000  애플리케이션 A
0x08040000  애플리케이션 B (또는 다운로드 영역)

안전한 갱신 흐름

1. 새 이미지를 '실행 중이 아닌' 영역에 받는다
2. 무결성 검증 — CRC 또는 서명
3. 유효하면 부팅 대상 표시를 바꾼다
4. 새 이미지로 부팅하고, 정상 동작이 확인되면 확정
5. 확인 실패 시 이전 이미지로 되돌린다 (롤백)

전원이 어느 시점에 끊겨도 부팅 가능한 이미지가 하나는 남아 있어야 한다.

넘어갈 때 챙길 것

인터럽트 전부 끄기 · 주변장치 리셋
VTOR 을 애플리케이션 벡터 테이블로 이동
스택 포인터 재설정 후 리셋 벡터로 점프

보안

무선 업데이트라면 서명 검증이 필수다. 부트로더가 공개키로 서명을 확인하고, 검증에 실패한 이미지는 실행하지 않는다.

함께 보면 좋은 용어

노트에서 맥락과 함께 보기 — 신뢰성 — 현장에서 멈추지 않게