Tengo un atmega32u4 de fábrica con dfu dentro. El HWB está desplegado y el pin RESET está levantado.
El primer conector USB, el programador dfu aparece en mi caja de Linux. Subo el firmware sin problema. Ahora, cada vez que conecto mi atmega a USB, la aplicación se ejecuta primero, en lugar de dfu. Pero, cuando se restablece el mcu por software, se ejecuta el código del cargador de arranque.
Según la hoja de datos, los fusibles predeterminados son: BOOTRST = 1 y HWBE = 0. Con estos fusibles y señales, el comportamiento esperado debe ser siempre el primero como se muestra en la imagen.
No sé por qué se reinicia con el software, se ejecuta el gestor de arranque.