14.1. 펌웨어 개발

이 페이지들은 펌웨어 개발자 – 단순히 MicroPython 스크립트를 작성하는 것을 넘어 OpenMV Cam에서 실행되는 C 코드를 변경하려는 사람들 – 을 위한 것입니다. 에디터 설정, 빌드 툴체인 설치, 지원되는 모든 보드에 대한 펌웨어 컴파일, 빌드한 펌웨어를 카메라에 플래싱하기, 그리고 J-Link 프로브와 VS Code에서의 단일 단계 소스 수준 디버깅으로 실제 하드웨어에서 디버깅하기까지 전체 과정을 다룹니다.

끝까지 마치면 깨끗한 컴퓨터에서 펌웨어를 빌드하여 카메라에 올리고, C 소스에 중단점을 설정한 다음, 프로세서를 단일 단계로 실행할 수 있게 됩니다.

참고

OpenMV 펌웨어는 OpenMV 머신 비전 라이브러리, 드라이버, 보드 포트가 추가된 MicroPython 의 포크입니다. 소스는 github.com/openmv/openmv 에 있습니다. 스크립트에서 사용하는 Python image / ml / csi 모듈은 이 저장소의 C 코드입니다.

14.1.1. 빌드 작동 방식

시작하기 전에 알아둘 만한 두 가지가 있으며, 이는 아래의 모든 지침을 설명합니다:

  • 빌드는 SDK 기반입니다. ARM 컴파일러, CMake, Python, ST 도구를 직접 설치하지 않습니다. 저장소는 정확한 OpenMV SDK 버전을 고정하며(SDK_VERSION 파일 – 작성 시점에는 1.6.0), make sdk 가 해당 SDK를 다운로드하여 ~/openmv-sdk-<version>/ 에 압축 해제합니다. 그런 다음 빌드는 SDK의 gcc, llvm, cmake, python, ST 도구 디렉터리를 PATH 앞에 추가합니다. 이는 모든 사람이 완전히 동일한 툴체인으로 빌드하며 호스트 설정이 아주 간단함을 의미합니다.

  • 네이티브 Windows 빌드는 없습니다. 툴체인과 빌드 스크립트는 Linux(x86-64)와 macOS(arm64)만을 대상으로 합니다. Windows에서는 실제 Linux 환경인 WSL (Windows Subsystem for Linux) 내에서 빌드합니다 – 따라서 WSL이 설치되면 Windows 사용자는 Linux 지침을 그대로 따릅니다. Docker 기반 빌드와 Linux VM도 옵션입니다.

지원되는 모든 시스템에서 상위 수준 시퀀스는 항상 다음과 같습니다:

  1. 에디터(VS Code)를 설치합니다.

  2. Linux와 유사한 셸을 준비합니다(네이티브 Linux, macOS, 또는 Windows의 WSL).

  3. 저장소와 그 서브모듈을 복제합니다.

  4. make sdk – 일회성 툴체인 설치.

  5. make -C lib/micropython/mpy-cross – 바이트코드 컴파일러 빌드.

  6. make TARGET=<board> – 펌웨어 빌드.

  7. 플래싱합니다(OpenMV IDE 또는 dfu-util).

  8. 선택적으로 J-Link를 연결하여 디버깅합니다.

아래 페이지는 각 단계를 순서대로 안내합니다.