🛠 Programmer par glisser-déposer via le DAPLink
El principio
El depurador DAPLink integrado en el nRF52840-MDK expone una función de almacenamiento masivo: aparece una unidad extraíble DAPLINK en su máquina. Al colocar un archivo .hex en ella, se programa la memoria flash — sin SDK, sin programador, sin línea de comandos. Después de copiar y pegar, pulse el botón Boot/Reset para ejecutar el nuevo firmware.
Paso 1 — Obtener el .hex correcto
Hay dos casos:
- Aplicación «desnuda» (sin SoftDevice, por ejemplo, una compilación de Zephyr): el archivo
build/zephyr.hexse coloca tal cual. - Aplicación nRF5 SDK con SoftDevice (todo lo que use BLE): es necesario fusionar el SoftDevice y la aplicación en una sola imagen. Esta es la causa n.º 1 de «se flashea pero no pasa nada» (issue #31 del rastreador de MakerDiary):
mergehex -m s140_nrf52_6.1.1_softdevice.hex \
_build/mon_app_nrf52840_mdk.hex \
-o firmware.hex
mergehex se incluye con las nRF Command Line Tools (también instaladas por nRF Connect for Desktop).
Paso 2 — Programar mediante arrastrar y soltar
- Conecte la placa por USB; aparece la unidad
DAPLINK. - Coloque
firmware.hexen la unidad; el LED de actividad parpadea durante la copia. - Una vez finalizada la copia, pulse Boot/Reset: la placa se reinicia con el nuevo firmware.
Paso 3 — La alternativa por línea de comandos: pyOCD
La sonda integrada habla CMSIS-DAP; pyocd (instalable mediante pip) hace lo mismo de forma programable:
pyocd flash -t nrf52840 firmware.hex
pyocd gdbserver # débuggage GDB via la même sonde
Verificaciones si nada arranca
- SoftDevice no fusionado: la aplicación BLE apunta a una dirección donde no se ejecuta nada sin el controlador S140 — vea el paso 1.
- Hex de ejemplo inválido: algunos hex precompilados del antiguo repositorio están rotos (issue #45); vuelva a compilarlos usted mismo.
- USB no enumerado: la unidad
DAPLINKno aparece en algunas máquinas (issues #53 y #37); pruebe con otro cable/puerto/host. - Windows < 10: instale el controlador de puerto serie CDC Arm Mbed.
No confundir
El bootloader UF2 (carga de un .uf2) concierne únicamente a la variante nRF52840 MDK USB Dongle, no a la placa con pines documentada aquí. En el dongle, volver a flashear el hex del bootloader a través de la unidad puede dejar el dispositivo en un estado inconsistente (informe «Bricked device» en el DevZone de Nordic) — hágalo solo siguiendo el procedimiento oficial de recuperación.