14.1.1.3. Gravando o firmware

Depois de obter um firmware.bin (e seu romfs<n>.img) a partir de Compilando o firmware, grave-o na câmera. O OpenMV IDE é o método recomendado; o procedimento de linha de comando varia conforme a família da câmera e está documentado por família nas páginas vinculadas no final. O bootloader em si é restaurado separadamente – veja Restaurando o bootloader.

14.1.1.3.2. Windows: instalando os drivers USB

O Windows não possui driver nativo para as interfaces USB DFU, SDP e ISP da câmera, então as ferramentas de linha de comando (dfu-util, as ferramentas NXP SPSDK, as Alif SE Tools) não conseguem detectar o dispositivo até que um driver WinUSB seja vinculado a ele. O instalador do OpenMV IDE para Windows instala todos esses drivers, então a abordagem mais simples é instalar o OpenMV IDE uma vez – depois disso, tanto o IDE quanto as ferramentas de linha de comando funcionam. É por isso que a gravação por interface gráfica funciona em uma máquina Windows recém-instalada, enquanto um dfu-util autônomo não funciona.

Se instalar o IDE não for uma opção, execute o instalador de driver correspondente do diretório share/qtcreator/drivers/ do OpenMV IDE como Administrador:

Instalador de driver

Dispositivos USB que ele vincula

openmv\openmv.cmd

Dispositivos OpenMV DFU e as interfaces RT1062 SPSDK (0x1FC9:0x0135 SDP ROM e 0x15A2:0x0073 flashloader)

arduino\arduino.cmd

Dispositivos Arduino DFU (2341:03xx)

ftdi\ftdi.cmd

O adaptador FTDI 0403:6015 usado para recuperação do bootloader do AE3

DFU_Driver\STM32Bootloader.bat

O dispositivo ST 0483:df11 system DFU usado para recuperação do bootloader STM32

Como alternativa, vincule o WinUSB ao VID:PID específico com o Zadig ou o pnputil. Nenhuma gravação por linha de comando no Windows funciona sem isso. Linux e macOS não precisam de instalação de driver (o Linux requer apenas as regras de udev).

14.1.1.3.3. Gravando por SWD (make deploy)

Se uma sonda de depuração já estiver conectada à câmera – como acontece durante a depuração – o ciclo mais rápido de edição-compilação-gravação ignora o USB DFU e programa o chip diretamente por SWD. Nas câmeras STM32:

make -j$(nproc) TARGET=<TARGET> deploy

Isso grava o firmware recém-compilado via STM32_Programmer_CLI (do SDK) pela sonda conectada. Não há entrada no bootloader, nem re-enumeração USB, nem troca de cabos: compile, execute deploy e a câmera reinicia executando o novo código. Este é o fluxo de trabalho recomendado durante o desenvolvimento ativo de firmware. Use DFU ou o OpenMV IDE ao gravar sem uma sonda ou ao distribuir firmware para outras pessoas.

14.1.1.3.4. Entrando no modo bootloader / DFU

A gravação exige que a câmera esteja em seu modo bootloader / DFU. Há três maneiras de entrar:

  • Ao conectar (qualquer câmera). Toda câmera executa seu bootloader por uma curta janela quando é ligada, antes de o firmware iniciar – conecte a câmera ao USB e o bootloader estará brevemente à escuta.

  • Pelo IDE (qualquer câmera). Com a câmera conectada, Tools -> Force enter OpenMV Cam bootloader a reinicia em modo bootloader.

  • Botão de reset do Arduino. Em placas Arduino, dê um clique duplo no botão de reset para entrar no modo bootloader.

14.1.1.3.5. Gravação por linha de comando, por família de câmera

As páginas abaixo mostram o que o OpenMV IDE faz nos bastidores para cada família de câmera, para quando você quiser executar a gravação por conta própria – em scripts, em CI ou em uma linha de produção. Para a gravação do dia a dia, recomendamos o OpenMV IDE.