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.1. OpenMV IDE: Load Custom Firmware (recomendado)¶
O OpenMV IDE inclui todas as ferramentas de gravação (dfu-util, as ferramentas NXP SPSDK, as Alif SE Tools, as ferramentas STM32), instala os drivers USB necessários no Windows, cuida da entrada no bootloader e seleciona o comando correto para a câmera conectada. É a forma recomendada de gravar uma compilação personalizada.
Conecte a câmera ao USB (você não precisa clicar em Connect).
Tools -> Load Custom Firmware.
Na caixa de diálogo, defina Firmware Path para o
build/<TARGET>/bin/firmware.binda sua compilação.Opcionalmente, marque Erase internal file system para apagar o sistema de arquivos FAT interno da câmera (veja Apagando o sistema de arquivos interno para saber quando e por quê).
Opcionalmente, marque Reset ROMFS file system para regravar o ROMFS padrão (desabilitado se você selecionou diretamente um
.img).Clique em Run. O IDE reinicia a câmera em seu bootloader, mostra o comando exato de gravação e uma barra de progresso, e reinicializa a câmera com o novo firmware. Aguarde o LED azul de autoteste; a câmera então é re-enumerada normalmente.
Há também Tools -> Force enter OpenMV Cam bootloader para colocar a câmera em modo DFU manualmente antes da gravação.
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 |
|---|---|
|
Dispositivos OpenMV DFU e as interfaces RT1062 SPSDK ( |
|
Dispositivos Arduino DFU ( |
|
O adaptador FTDI |
|
O dispositivo ST |
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.