14.1. Desenvolvimento de firmware¶
Estas páginas destinam-se a programadores de firmware – pessoas que querem alterar o código C que é executado na OpenMV Cam, e não apenas escrever scripts MicroPython. Abrangem todo o ciclo: configurar um editor, instalar a cadeia de ferramentas de build, compilar o firmware para todas as placas suportadas, instalar o seu build numa câmara e depurá-lo em hardware real com uma sonda J-Link e depuração ao nível do código-fonte passo a passo no VS Code.
No final, deverá ser capaz de começar com uma máquina limpa, compilar o firmware, colocá-lo numa câmara, definir um ponto de paragem no código-fonte C e avançar passo a passo no processador.
Nota
O firmware OpenMV é um fork do MicroPython com a biblioteca de visão por computador OpenMV, controladores e ports de placa adicionados. O código-fonte está em github.com/openmv/openmv. Os módulos Python image / ml / csi que utiliza nos scripts são código C neste repositório.
14.1.1. Como funciona o build¶
Há dois aspetos importantes a compreender antes de começar, pois explicam todas as instruções abaixo:
O build é orientado pelo SDK. Não instala o compilador ARM, CMake, Python nem as ferramentas ST por conta própria. O repositório fixa uma versão exata do OpenMV SDK (o ficheiro
SDK_VERSION–1.6.0no momento em que este texto foi escrito), emake sdkdescarrega e descompacta esse SDK em~/openmv-sdk-<version>/. O build coloca então os diretóriosgcc,llvm,cmake,pythone das ferramentas ST do SDK no início doPATH. Isto significa que todos compilam com a exata mesma cadeia de ferramentas, e a configuração do sistema anfitrião é mínima.Não existe um build nativo para Windows. A cadeia de ferramentas e os scripts de build destinam-se apenas a Linux (x86-64) e macOS (arm64). No Windows, o build é feito dentro do WSL (Windows Subsystem for Linux), que é um ambiente Linux real – portanto, uma vez instalado o WSL, os utilizadores Windows seguem exatamente as instruções Linux. Um build baseado em Docker e uma VM Linux são também opções.
A sequência de alto nível em qualquer sistema suportado é sempre:
Instalar um editor (VS Code).
Obter uma shell semelhante a Linux (Linux nativo, macOS ou WSL no Windows).
Clonar o repositório e os 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.Instalá-lo (OpenMV IDE ou
dfu-util).Opcionalmente, ligar uma sonda J-Link e depurá-lo.
As páginas abaixo percorrem cada passo por ordem.