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_VERSION–1.6.0no momento em que isto foi escrito), emake sdkbaixa e desempacota esse SDK em~/openmv-sdk-<version>/. A compilação então adiciona ao início doPATHos diretórios degcc,llvm,cmake,pythone 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:
Instalar um editor (VS Code).
Obter um shell semelhante ao Linux (Linux nativo, macOS ou WSL no Windows).
Clonar o repositório e seus submódulos.
make sdk– instalação única da cadeia de ferramentas.make -C lib/micropython/mpy-cross– compilar o compilador de bytecode.make TARGET=<board>– compilar o firmware.Gravá-lo (OpenMV IDE ou
dfu-util).Opcionalmente, conectar um J-Link e depurá-lo.
As páginas abaixo percorrem cada etapa em ordem.