🛠 Programmer par glisser-déposer via le DAPLink
Le principe
Le débogueur DAPLink embarqué sur le nRF52840-MDK expose une fonction de stockage de masse : un lecteur amovible DAPLINK apparaît sur votre machine. Y déposer un fichier .hex programme la flash — ni SDK, ni programmateur, ni ligne de commande. Après le copier-coller, appuyez sur le bouton Boot/Reset pour exécuter le nouveau firmware.
Étape 1 — Obtenir le bon .hex
Deux cas de figure :
- Application « nue » (sans SoftDevice, par exemple un build Zephyr) : le fichier
build/zephyr.hexse dépose tel quel. - Application nRF5 SDK avec SoftDevice (tout ce qui fait du BLE) : il faut fusionner SoftDevice et application en une seule image. C'est la cause n°1 du « ça flashe mais rien ne se passe » (issue #31 du traqueur MakerDiary) :
mergehex -m s140_nrf52_6.1.1_softdevice.hex \
_build/mon_app_nrf52840_mdk.hex \
-o firmware.hex
mergehex est fourni avec les nRF Command Line Tools (également installés par nRF Connect for Desktop).
Étape 2 — Programmer en glisser-déposer
- Branchez la carte en USB ; le lecteur
DAPLINKapparaît. - Déposez
firmware.hexsur le lecteur ; la LED d'activité clignote pendant la copie. - Une fois le copier terminé, appuyez sur Boot/Reset : la carte redémarre sur le nouveau firmware.
Étape 3 — L'alternative en ligne de commande : pyOCD
La sonde embarquée parle CMSIS-DAP ; pyocd (installable via pip) fait la même chose de façon scriptable :
pyocd flash -t nrf52840 firmware.hex
pyocd gdbserver # débuggage GDB via la même sonde
Vérifications si rien ne démarre
- SoftDevice non mergé : l'application BLE pointe sur une adresse où rien n'est exécuté sans le contrôleur S140 — voyez l'étape 1.
- Hex d'exemple invalide : certains hex précompilés du vieux dépôt sont cassés (issue #45) ; reconstruisez- vous-même.
- USB non énuméré : le lecteur
DAPLINKn'apparaît pas sur certaines machines (issues #53 et #37) ; testez câble/port/hôte différents. - Windows < 10 : installez le pilote de port série CDC Arm Mbed.
Ne pas confondre
Le bootloader UF2 (dépôt d'un .uf2) concerne uniquement la variante nRF52840 MDK USB Dongle, pas la carte à broches documentée ici. Sur le dongle, re-flasher l'hex du bootloader via le lecteur peut mettre l'appareil dans un état incohérent (rapport « Bricked device » sur le DevZone Nordic) — ne le faites que sur procédure officielle de récupération.