14.1.1.4. 펌웨어 플래싱하기#

펌웨어 빌드하기 에서 firmware.bin (및 그 romfs<n>.img)을 얻었다면, 이를 카메라에 프로그래밍합니다. OpenMV IDE가 권장 방법이며, 명령줄 절차는 카메라 제품군마다 다르고 하단에 링크된 페이지에서 제품군별로 문서화되어 있습니다. 부트로더 자체는 별도로 복원합니다 – 부트로더 복구 를 참조하세요.

14.1.1.4.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\openmv.cmd

OpenMV DFU 장치, 그리고 RT1062 SPSDK 인터페이스(0x1FC9:0x0135 SDP ROM 및 0x15A2:0x0073 플래시로더)

arduino\arduino.cmd

Arduino DFU 장치(2341:03xx)

ftdi\ftdi.cmd

AE3 부트로더 복구에 사용되는 FTDI 0403:6015 어댑터

DFU_Driver\STM32Bootloader.bat

STM32 부트로더 복구에 사용되는 ST 0483:df11 시스템 DFU 장치

또는 Zadig나 pnputil 로 특정 VID:PID에 WinUSB를 바인딩하세요. 이 작업 없이는 Windows에서 명령줄 플래싱이 작동하지 않습니다. Linux와 macOS는 드라이버 설치가 필요 없습니다(Linux는 udev 규칙만 필요).

14.1.1.4.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.4.4. 부트로더 / DFU 모드 진입#

플래싱하려면 카메라가 부트로더 / DFU 모드에 있어야 합니다. 진입하는 방법은 세 가지입니다:

  • 전원 연결 시(모든 카메라). 모든 카메라는 전원이 켜질 때 펌웨어가 시작되기 전 짧은 시간 동안 부트로더를 실행합니다 – 카메라를 USB에 연결하면 부트로더가 잠시 동안 대기합니다.

  • IDE에서(모든 카메라). 카메라가 연결된 상태에서 Tools -> Force enter OpenMV Cam bootloader 를 사용하면 부트로더 모드로 재부팅됩니다.

  • Arduino 리셋 버튼. Arduino 보드에서는 리셋 버튼을 두 번 클릭하면 부트로더 모드로 진입합니다.

14.1.1.4.5. 카메라 제품군별 명령줄 플래싱#

아래 페이지는 스크립트, CI 또는 생산 라인에서 직접 플래싱을 실행하려는 경우를 위해 OpenMV IDE가 각 카메라 제품군에 대해 내부적으로 수행하는 작업을 보여줍니다. 일상적인 플래싱에는 OpenMV IDE를 권장합니다.