14.1.1.3.5.2. OpenMV AE3: dfu-util¶
O OpenMV AE3 utiliza o bootloader openmv_dfu (VID:PID da aplicação 37C5:16E3, VID:PID DFU 37C5:96E3), mas é um dispositivo dual-core: um Alif Ensemble com um núcleo Cortex-M55 de alto desempenho (HP) e um de alta eficiência (HE). Para entrar no bootloader, basta ligar a câmara: fica à escuta brevemente ao ligar, e -w faz com que o dfu-util aguarde pelo seu aparecimento. Cada núcleo executa a sua própria imagem de firmware e tem o seu próprio ROMFS só de leitura, pelo que uma instalação completa requer quatro imagens:
Núcleo | Comando de firmware | Comando ROMFS |
|---|---|---|
M55-HP |
|
|
M55-HE |
|
|
Uma instalação completa escreve as quatro imagens, com --reset apenas na última transferência:
dfu-util -w -d ,37C5:96E3 -a 1 -D firmware_M55_HP.bin
dfu-util -w -d ,37C5:96E3 -a 2 -D firmware_M55_HE.bin
dfu-util -w -d ,37C5:96E3 -a 3 -D romfs1.img
dfu-util -w -d ,37C5:96E3 -a 6 --reset -D romfs0.img
Para substituir apenas o firmware de um núcleo, instale apenas o alt desse núcleo (-a 1 para HP, -a 2 para HE); para substituir o ROMFS de um núcleo, instale o alt ROMFS desse núcleo (-a 6 para HP / romfs0, -a 3 para HE / romfs1).
14.1.1.3.5.2.1. Inicializar o MRAM Everspin¶
Builds especiais do OpenMV AE3 substituem a flash externa padrão – que contém o sistema de ficheiros FAT interno e o ROMFS do núcleo HP – por um chip MRAM Everspin. Esta secção aplica-se apenas a esses builds. Uma peça Everspin que nunca foi inicializada, ou cujos registos de configuração foram corrompidos, não responde a escritas, pelo que as transferências DFU para esses alts falham até o chip ser reinicializado.
O bootloader expõe isto como mais um alt DFU: descarregar um ficheiro de chave para -a 7 desencadeia a sequência de inicialização (um reset JESD, inicialização dos registos de configuração, remoção de bloqueios e duas passagens de apagamento completo do chip). O próprio descarregamento não armazena nada – a partição verifica se o ficheiro começa com a chave esperada de 16 bytes e executa a sequência, no máximo uma vez por sessão de bootloader.
Gere o ficheiro de chave com tools/flash_recovery_key.py do repositório de firmware (escreve um key.bin de 4 KB) e depois descarregue-o:
python tools/flash_recovery_key.py
dfu-util -w -d ,37C5:96E3 -a 7 -D key.bin
O chip fica em branco afterwards: reinstale o ROMFS do núcleo HP (-a 6 -D romfs0.img), e o sistema de ficheiros FAT interno reformata-se automaticamente no próximo arranque.
Veja também
Para apagar o sistema de ficheiros FAT interno da câmara – a solução quando um main.py inválido ou um sistema de ficheiros corrompido impede a câmara de arrancar – consulte Apagar o sistema de ficheiros interno.
Para restaurar o próprio bootloader da câmara, consulte Restaurar o bootloader.