14.1. Desenvolvimento de firmware

Estas páginas são para desenvolvedores de firmware – pessoas que querem alterar o código C que roda na OpenMV Cam, não apenas escrever scripts em MicroPython. Elas cobrem todo o ciclo: configurar um editor, instalar a cadeia de ferramentas de compilação, compilar o firmware para cada placa suportada, gravar sua compilação em uma câmera e depurá-la em hardware real com uma sonda J-Link e depuração de código-fonte passo a passo no VS Code.

Ao final, você deverá ser capaz de pegar uma máquina limpa, compilar o firmware, colocá-lo em uma câmera, definir um breakpoint no código-fonte C e executar o processador passo a passo.

Nota

O firmware OpenMV é um fork do MicroPython com a biblioteca de visão de máquina, os drivers e os ports de placa da OpenMV adicionados. O código-fonte fica em github.com/openmv/openmv. Os módulos Python image / ml / csi que você usa nos scripts são código C neste repositório.

14.1.1. Como a compilação funciona

Vale entender duas coisas antes de começar, porque elas explicam todas as instruções abaixo:

  • A compilação é orientada pelo SDK. Você não instala o compilador ARM, o CMake, o Python ou as ferramentas ST por conta própria. O repositório fixa uma versão exata do OpenMV SDK (o arquivo SDK_VERSION1.6.0 no momento em que isto foi escrito), e make sdk baixa e desempacota esse SDK em ~/openmv-sdk-<version>/. A compilação então adiciona ao início do PATH os diretórios de gcc, llvm, cmake, python e das ferramentas ST do SDK. Isso significa que todos compilam com a mesma cadeia de ferramentas, e a configuração do host é mínima.

  • Não há compilação nativa para Windows. A cadeia de ferramentas e os scripts de compilação têm como alvo apenas Linux (x86-64) e macOS (arm64). No Windows, você compila dentro do WSL (Windows Subsystem for Linux), que é um ambiente Linux real – então, uma vez instalado o WSL, os usuários do Windows seguem exatamente as instruções do Linux. Uma compilação baseada em Docker e uma VM Linux também são opções.

A sequência de alto nível em qualquer sistema suportado é sempre:

  1. Instalar um editor (VS Code).

  2. Obter um shell semelhante ao Linux (Linux nativo, macOS ou WSL no Windows).

  3. Clonar o repositório e seus submódulos.

  4. make sdk – instalação única da cadeia de ferramentas.

  5. make -C lib/micropython/mpy-cross – compilar o compilador de bytecode.

  6. make TARGET=<board> – compilar o firmware.

  7. Gravá-lo (OpenMV IDE ou dfu-util).

  8. Opcionalmente, conectar um J-Link e depurá-lo.

As páginas abaixo percorrem cada etapa em ordem.