13.1.13. Atualizações e recuperação de firmware#
A IDE também é o gerenciador de firmware da câmera. Toda versão da IDE inclui a versão de firmware correspondente para cada placa, a verificação de versão é executada automaticamente na conexão, e os carregadores para o bootloader de cada família de placas já vêm embutidos – a IDE detecta a placa e fala o protocolo correto sem precisar ser informada. Manter uma câmera atualizada não exige nada além de conectá-la e aceitar o aviso.
13.1.13.1. Atualizando#
Quando a conexão encontra uma câmera rodando firmware mais antigo do que a versão incluída, ela conclui a conexão e então oferece a atualização (você pode descartar o aviso permanentemente). Aceite-a e a IDE reinicia a câmera em seu bootloader, programa o novo firmware e reconecta. As duas caixas de seleção da janela de atualização – apagar o sistema de arquivos da flash interna e redefinir o sistema de arquivos ROM – começam desmarcadas e lembram sua última escolha; com ambas desativadas, uma atualização preserva tudo o que está armazenado na câmera. A exceção é atualizar a partir de um firmware muito antigo, em que a janela força a ativação do apagamento e avisa sobre isso. A mesma verificação roda sob demanda a partir da entrada de versão de firmware na barra de status.
Entre versões, Tools → Install the Latest Development Release baixa e instala a compilação de desenvolvimento atual para a placa conectada – a forma de obter uma correção ou um novo recurso que já foi mesclado mas ainda não foi lançado. Compilações de desenvolvimento são exatamente isso; câmeras em produção devem acompanhar as versões de release. Uma placa que veio de um repositório de terceiros obtém tanto seus releases quanto suas compilações de desenvolvimento dos canais do próprio fornecedor.
Independentemente do firmware, a IDE verifica na inicialização se há recursos atualizados – exemplos, firmware incluído, documentação – disponíveis para a própria IDE, e oferece a instalação deles. Ela também avisa quando uma versão mais nova da IDE está disponível, com um link para a página de download.
13.1.13.2. Carregando firmware personalizado#
Tools → Load Custom Firmware (Ctrl+Shift+L) grava um binário de firmware do disco em vez do release incluído – o caminho de implantação para firmware compilado a partir do código-fonte, com scripts congelados ou uma configuração personalizada embutida. A caixa de diálogo aceita um binário de firmware ou o pacote .zip de saída de compilação de uma placa (a IDE o descompacta e grava o firmware e o sistema de arquivos ROM que ele contém – ou apenas as imagens do sistema de arquivos ROM, para um pacote que carrega só essas), mais as mesmas caixas de seleção de apagar o sistema de arquivos e redefinir o ROMFS do prompt de atualização. Funciona da mesma forma para uma câmera que já está em modo bootloader.
Ver também
Compilando o firmware para compilar esse binário em primeiro lugar.
13.1.13.3. Apagando o sistema de arquivos#
Tools → Erase Internal FAT File System (Ctrl+Shift+E) reformata o sistema de arquivos da flash interna da câmera, removendo todos os arquivos armazenados – main.py, bibliotecas, recursos, logs – e recriando o conteúdo padrão. É o reset de fábrica para o armazenamento da câmera: a solução para um sistema de arquivos corrompido e o ponto de partida limpo antes de entregar uma câmera a outra pessoa. O firmware em si e o sistema de arquivos ROM permanecem intactos.
13.1.13.4. Recuperando uma câmera travada#
Uma câmera cujo firmware está danificado a ponto de não aparecer mais como uma porta serial ainda pode ser salva, porque o bootloader fica abaixo do firmware e sobrevive a qualquer coisa que não seja um dano de hardware. Quando a conexão não encontra nenhuma câmera, a IDE pergunta se uma câmera travada está conectada e o guia pela recuperação: você seleciona o tipo de placa, a IDE controla a interface do bootloader da placa e o firmware da versão incluída é gravado. Tools → Force enter OpenMV Cam bootloader faz a etapa de reinicialização no bootloader explicitamente para uma câmera que ainda conecta. As placas também têm uma forma de hardware para forçar o bootloader na inicialização para o pior caso; a página de referência rápida de cada placa cobre seu procedimento específico.