13.1.11. 펌웨어 업데이트 및 복구

IDE는 카메라의 펌웨어 관리자 역할도 합니다. 모든 IDE 릴리스에는 각 보드에 맞는 펌웨어 릴리스가 함께 들어 있고, 연결 시 버전 확인이 자동으로 실행되며, 모든 보드 계열의 부트로더(bootloader)용 로더가 내장되어 있습니다. IDE는 보드를 감지하여 별도 지정 없이도 올바른 프로토콜로 통신합니다. 카메라를 최신 상태로 유지하려면 연결한 뒤 프롬프트를 수락하기만 하면 됩니다.

13.1.11.1. 업데이트하기

연결 과정에서 번들된 릴리스보다 오래된 펌웨어가 실행 중인 카메라를 발견하면, IDE는 연결을 마친 다음 업데이트를 제안합니다(이 프롬프트는 영구적으로 해제할 수 있습니다). 수락하면 IDE는 카메라를 부트로더로 재부팅하고, 새 펌웨어를 프로그래밍한 뒤 다시 연결합니다. 업데이트 대화 상자의 두 체크박스 – 내부 플래시 파일 시스템 지우기, ROM 파일 시스템 재설정 – 는 처음에는 선택 해제 상태이며 마지막 선택을 기억합니다. 둘 다 끈 상태로 업데이트하면 카메라에 저장된 모든 것이 보존됩니다. 예외는 매우 오래된 펌웨어에서 업데이트하는 경우로, 이때는 대화 상자가 지우기를 강제로 켜고 경고로 이를 알립니다. 같은 확인은 상태 표시줄의 펌웨어 버전 항목에서 필요할 때 실행할 수 있습니다.

릴리스 사이에는 Tools → Install the Latest Development Release를 통해 연결된 보드의 현재 개발 빌드를 가져와 설치할 수 있습니다 – 병합되었지만 아직 출시되지 않은 수정 사항이나 새 기능을 받는 방법입니다. 개발 빌드는 말 그대로 개발용이므로, 양산용 카메라는 정식 릴리스를 따라야 합니다.

펌웨어와는 별개로, IDE는 실행 시 IDE 자체에 사용할 갱신된 리소스 – 예제, 번들 펌웨어, 문서 – 가 있는지 확인하고 설치를 제안합니다. 또한 더 새로운 버전의 IDE가 있을 때 다운로드 페이지 링크와 함께 알려줍니다.

13.1.11.2. 사용자 지정 펌웨어 불러오기

Tools → Load Custom Firmware(Ctrl+Shift+L)는 번들된 릴리스 대신 디스크에 있는 펌웨어 바이너리를 플래시합니다 – 고정(frozen) 스크립트나 사용자 지정 구성을 포함하여 소스에서 빌드한 펌웨어를 배포하는 경로입니다. 이 대화 상자는 펌웨어 파일과 함께 업데이트 프롬프트와 동일한 파일 시스템 지우기 및 ROMFS 재설정 체크박스를 받습니다.

더 보기

해당 바이너리를 처음부터 빌드하는 방법은 펌웨어 빌드하기 을 참조하세요.

13.1.11.3. 파일 시스템 지우기

Tools → Erase Internal FAT File System(Ctrl+Shift+E)은 카메라의 내부 플래시 파일 시스템을 다시 포맷하여 저장된 모든 파일 – main.py, 라이브러리, 에셋, 로그 – 을 제거하고 기본 콘텐츠를 다시 생성합니다. 이는 카메라 저장소의 공장 초기화에 해당합니다. 손상된 파일 시스템을 고치는 방법이자, 카메라를 다른 사람에게 넘기기 전에 깨끗하게 비우는 방법입니다. 펌웨어 자체와 ROM 파일 시스템은 건드리지 않습니다.

13.1.11.4. 벽돌이 된 카메라 복구하기

펌웨어가 손상되어 더 이상 직렬 포트로 나타나지 않는 카메라라도 여전히 살릴 수 있습니다. 부트로더는 펌웨어 아래에 자리 잡고 있어 하드웨어 손상이 아닌 한 무엇이든 견뎌내기 때문입니다. 연결 시 카메라를 찾지 못하면 IDE는 벽돌이 된 카메라가 연결되어 있는지 묻고 복구 과정을 안내합니다. 사용자가 보드 유형을 선택하면 IDE가 보드의 부트로더 인터페이스를 구동하고 번들된 릴리스 펌웨어를 올립니다. Tools → Force enter OpenMV Cam bootloader는 여전히 연결되는 카메라에 대해 부트로더로 재부팅하는 단계를 명시적으로 수행합니다. 보드에는 최악의 경우를 대비해 전원을 켤 때 부트로더를 강제로 진입시키는 하드웨어 방법도 있으며, 각 보드의 빠른 참조 페이지에 해당 절차가 설명되어 있습니다.