USB device firmware update class
Клас USB-пристроїв, що оновлюють прошивку (або USB DFU) — клас USB пристроїв, що можуть отримувати свою «прошивку» по відкритому протоколу USB DFU.
З 2010 року з'явилось багато мікроконтролерних плат, основною периферією яких є USB. Щоб позбавити розробників необхідності придбання спеціалізованих плат для доступу до відлагоджувальних портів таких як JTAG та унеможливлювати «оцеглинювання» пристроїв, виробники добавили в ROM окремий завантажувач, котрий працює з USB протоколом DFU та вміє «прошивати» власне вбудоване програмне забезпечення.
Є багато способів перевести пристрій у режим DFU.
Команди:
- DFU_DETACH — посилається хостом працюючому пристрою для його переведення в режим DFU.
- DFU_DNLOAD — передає блок прошивки з хоста на пристрій.
- DFU_UPLOAD — передає блок прошивки з пристрою на хост.
- DFU_GETSTATUS — посилається хостом, щоб дізнатись чи пристрій закінчив запис і готовий отримати наступний блок.
Для подальшого спрощення процесу прошивання, Microsoft запропонувала новий формат файлу прошивки .UF2 в якому вказуються адреси для окремих шматків прошивки.
А також окремий UF2 бутлоадер (який запускається або з прошивки або затисканням іншої комбінації кнопок під час включення). Цей бутлоадер є складнішим і не знаходиться в ROM, він декларує клас USB MSC і емулює віртуальний диск. Після копіювання на нього файлу прошивки стандартним копіюванням операційної системи хоста, здійснюється прошивання. Цей метод більш гнучкий і дозволяє обновити окремі розділи прошивки чи сам UF2 бутлоадер, оскільки це залежить лише від вмісту .UF2 файлу.