14.1.1.3. Flasher le micrologiciel

Une fois que vous disposez d’un firmware.bin (et de son romfs<n>.img) issu de Compiler le micrologiciel, programmez-le sur la caméra. OpenMV IDE est la méthode recommandée ; la procédure en ligne de commande diffère selon la famille de caméra et est documentée pour chacune sur les pages liées en bas. Le programme d’amorçage lui-même se restaure séparément – voir Restauration du programme d’amorçage.

14.1.1.3.2. Windows : installer les pilotes USB

Windows ne possède pas de pilote intégré pour les interfaces USB DFU, SDP et ISP de la caméra, de sorte que les outils en ligne de commande (dfu-util, les outils NXP SPSDK, les Alif SE Tools) ne peuvent pas détecter le périphérique tant qu’un pilote WinUSB ne lui est pas associé. L’installateur Windows d’OpenMV IDE installe tous ces pilotes ; l’approche la plus simple est donc d’installer OpenMV IDE une fois – après quoi l’IDE et les outils en ligne de commande fonctionnent tous deux. C’est pourquoi le flashage par interface graphique réussit sur une machine Windows neuve alors qu’un dfu-util autonome échoue.

Si l’installation de l’IDE n’est pas envisageable, exécutez l’installateur de pilote correspondant depuis le répertoire share/qtcreator/drivers/ d’OpenMV IDE en tant qu’administrateur :

Installateur de pilote

Périphériques USB qu’il associe

openmv\openmv.cmd

Périphériques OpenMV DFU, et les interfaces SPSDK du RT1062 (0x1FC9:0x0135 SDP ROM et 0x15A2:0x0073 flashloader)

arduino\arduino.cmd

Périphériques Arduino DFU (2341:03xx)

ftdi\ftdi.cmd

L’adaptateur FTDI 0403:6015 utilisé pour la récupération du programme d’amorçage de l’AE3

DFU_Driver\STM32Bootloader.bat

Le périphérique ST 0483:df11 system DFU utilisé pour la récupération du programme d’amorçage STM32

Vous pouvez aussi associer WinUSB au VID:PID spécifique avec Zadig ou pnputil. Aucun flashage en ligne de commande sous Windows ne fonctionne sans cela. Linux et macOS ne nécessitent aucune installation de pilote (Linux requiert uniquement les règles udev).

14.1.1.3.3. Flashage par SWD (make deploy)

Si une sonde de débogage est déjà câblée à la caméra – comme c’est le cas pour le débogage – le cycle édition-compilation-flashage le plus rapide contourne l’USB DFU et programme la puce directement par SWD. Sur les caméras STM32

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

Cela flashe le micrologiciel fraîchement compilé via STM32_Programmer_CLI (issu du SDK) à travers la sonde connectée. Il n’y a pas d’entrée dans le programme d’amorçage, pas de ré-énumération USB et pas de changement de câble : compilez, lancez deploy, et la caméra redémarre en exécutant le nouveau code. C’est le flux de travail recommandé lors du développement actif du micrologiciel. Utilisez le DFU ou OpenMV IDE pour flasher sans sonde ou pour distribuer le micrologiciel à d’autres.

14.1.1.3.4. Entrer en mode programme d’amorçage / DFU

Le flashage requiert que la caméra soit en mode programme d’amorçage / DFU. Il y a trois moyens d’y entrer :

  • Au branchement (toute caméra). Chaque caméra exécute son programme d’amorçage pendant une courte fenêtre lors de sa mise sous tension, avant le démarrage du micrologiciel – branchez la caméra en USB et le programme d’amorçage est brièvement à l’écoute.

  • Depuis l’IDE (toute caméra). La caméra étant branchée, Tools -> Force enter OpenMV Cam bootloader la redémarre en mode programme d’amorçage.

  • Bouton de réinitialisation Arduino. Sur les cartes Arduino, double-cliquez sur le bouton de réinitialisation pour entrer en mode programme d’amorçage.

14.1.1.3.5. Flashage en ligne de commande par famille de caméra

Les pages ci-dessous montrent ce qu’OpenMV IDE fait en coulisses pour chaque famille de caméra, pour le cas où vous souhaitez effectuer le flashage vous-même – dans des scripts, en CI ou sur une chaîne de production. Pour le flashage courant, nous recommandons OpenMV IDE.