14.1.1.3. 펌웨어 플래싱하기¶
펌웨어 빌드하기 에서 firmware.bin (및 그 romfs<n>.img)을 얻었다면, 이를 카메라에 프로그래밍합니다. OpenMV IDE가 권장 방법이며, 명령줄 절차는 카메라 제품군마다 다르고 하단에 링크된 페이지에서 제품군별로 문서화되어 있습니다. 부트로더 자체는 별도로 복원합니다 – 부트로더 복구 를 참조하세요.
14.1.1.3.1. OpenMV IDE: 사용자 정의 펌웨어 불러오기 (권장)¶
OpenMV IDE는 모든 플래싱 도구(dfu-util, NXP SPSDK 도구, Alif SE Tools, STM32 도구)를 번들로 제공하고, Windows에서 필요한 USB 드라이버를 설치하며, 부트로더 진입을 처리하고, 연결된 카메라에 맞는 올바른 명령을 선택합니다. 사용자 정의 빌드를 플래싱하는 권장 방법입니다.
카메라를 USB에 연결합니다(Connect 를 클릭할 필요는 없습니다).
Tools -> Load Custom Firmware.
대화 상자에서 Firmware Path 를 빌드의
build/<TARGET>/bin/firmware.bin으로 설정합니다.선택적으로 Erase internal file system 을 체크하여 카메라의 내부 FAT 파일시스템을 지웁니다(시기와 이유는 내부 파일 시스템 지우기 참조).
선택적으로 Reset ROMFS file system 을 체크하여 기본 ROMFS를 다시 플래싱합니다(
.img를 직접 선택한 경우 비활성화됨).Run 을 클릭합니다. IDE는 카메라를 부트로더로 재설정하고, 정확한 플래싱 명령과 진행률 표시줄을 보여준 다음, 카메라를 새 펌웨어로 재부팅합니다. 파란색 자체 테스트 LED를 기다리세요. 그러면 카메라가 정상적으로 다시 열거됩니다.
플래싱 전에 카메라를 수동으로 DFU 모드로 전환하는 Tools -> Force enter OpenMV Cam bootloader 도 있습니다.
14.1.1.3.2. Windows: USB 드라이버 설치¶
Windows에는 카메라의 USB DFU, SDP, ISP 인터페이스용 기본 드라이버가 없으므로, WinUSB 드라이버가 바인딩되기 전까지는 명령줄 도구(dfu-util, NXP SPSDK 도구, Alif SE Tools)가 장치를 감지할 수 없습니다. OpenMV IDE의 Windows 설치 프로그램은 이 모든 드라이버를 설치하므로, 가장 간단한 방법은 OpenMV IDE를 한 번 설치하는 것입니다 – 그러면 IDE와 명령줄 도구 모두 작동합니다. 이것이 새 Windows 컴퓨터에서 GUI 플래싱은 성공하지만 독립 실행형 dfu-util 은 실패하는 이유입니다.
IDE 설치가 불가능한 경우, OpenMV IDE의 share/qtcreator/drivers/ 디렉터리에서 해당하는 드라이버 설치 프로그램을 관리자 권한으로 실행하세요:
드라이버 설치 프로그램 |
바인딩하는 USB 장치 |
|---|---|
|
OpenMV DFU 장치, 그리고 RT1062 SPSDK 인터페이스( |
|
Arduino DFU 장치( |
|
AE3 부트로더 복구에 사용되는 FTDI |
|
STM32 부트로더 복구에 사용되는 ST |
또는 Zadig나 pnputil 로 특정 VID:PID에 WinUSB를 바인딩하세요. 이 작업 없이는 Windows에서 명령줄 플래싱이 작동하지 않습니다. Linux와 macOS는 드라이버 설치가 필요 없습니다(Linux는 udev 규칙만 필요).
14.1.1.3.3. SWD를 통한 플래싱(make deploy)¶
디버깅을 위해 그렇듯이 디버그 프로브가 이미 카메라에 연결되어 있다면, 가장 빠른 편집-빌드-플래시 주기는 USB DFU를 우회하여 SWD를 통해 칩을 직접 프로그래밍합니다. STM32 카메라에서:
make -j$(nproc) TARGET=<TARGET> deploy
이는 갓 빌드된 펌웨어를 연결된 프로브를 통해 STM32_Programmer_CLI (SDK에 포함)로 플래싱합니다. 부트로더 진입도, USB 재열거도, 케이블 교체도 없습니다: 빌드하고 deploy 를 실행하면 카메라가 새 코드를 실행하며 재시작합니다. 이것이 활발한 펌웨어 개발 중 권장되는 워크플로입니다. 프로브 없이 플래싱하거나 펌웨어를 다른 사람에게 배포할 때는 DFU 또는 OpenMV IDE를 사용하세요.
14.1.1.3.4. 부트로더 / DFU 모드 진입¶
플래싱하려면 카메라가 부트로더 / DFU 모드에 있어야 합니다. 진입하는 방법은 세 가지입니다:
전원 연결 시(모든 카메라). 모든 카메라는 전원이 켜질 때 펌웨어가 시작되기 전 짧은 시간 동안 부트로더를 실행합니다 – 카메라를 USB에 연결하면 부트로더가 잠시 동안 대기합니다.
IDE에서(모든 카메라). 카메라가 연결된 상태에서 Tools -> Force enter OpenMV Cam bootloader 를 사용하면 부트로더 모드로 재부팅됩니다.
Arduino 리셋 버튼. Arduino 보드에서는 리셋 버튼을 두 번 클릭하면 부트로더 모드로 진입합니다.
14.1.1.3.5. 카메라 제품군별 명령줄 플래싱¶
아래 페이지는 스크립트, CI 또는 생산 라인에서 직접 플래싱을 실행하려는 경우를 위해 OpenMV IDE가 각 카메라 제품군에 대해 내부적으로 수행하는 작업을 보여줍니다. 일상적인 플래싱에는 OpenMV IDE를 권장합니다.