Библиотека LUFA (раннее название MyUSB) версия 101122
|
Как только выполнили сборку приложения firmware, необходим способ, чтобы запрограммировать получившийся файл ".HEX" (и, если приложение использует переменные EEPROM с инициализированными значениями, также и файл ".EEP") в Ваш чип USB AVR. Традиционно микроконтроллер AVR должен перепрограммироваться на специальном оборудовании (программаторе), через один из поддерживаемый чипом AVR протокол программирования - ISP, HVSP, HVPP, JTAG или dW (debugWire). Это можно сделать через самодельный программатор, программатор производства какой-нибудь фирмы, или официальный инструмент Atmel AVR - чтобы получить больше информации, см. вебсайт Atmel.com.
Как альтернативу Вы можете использовать бутлоадер. Приходя с завода Atmel, каждый чип USB AVR имеет в себе прошитый бутлоадер Atmel класса DFU (расшифровывается как Device Firmware Update, обновление прошивки устройства) - маленькая часть firmware AVR, которая позволяет прошить остальную часть памяти AVR через нестандартные (в смысле перепрошивки) интерфейсы как например последовательный порт USART, SPI, или (в нашем случае) USB. Преимущество бутлоадеров в том, что не требуется специальная аппаратура для программирования (т. е. не нужен программатор), и бутлоадер обычно не можен быть стерт или поврежден без внешнего программирующего устройства (внешнего специального программатора). Однако есть и недостатки; нельзя поменять перемычки (фьюзы, fuses) AVR (специальные конфигурационные установки самого чипа), и маленькая порция памяти FLASH AVR должна быть зарезервирована для кода firmware бутлоадера, и эта память не может использоваться для загрузки приложения пользователя. Бутлоадер Atmel DFU занимает либо 4 килобайта (для младших USB AVR), или 8 килобайт (для более мощных USB AVR).
Если Вы хотите использовать бутлоадер DFU для программирования в вашем приложении, обратитесь к документации на Ваш программатор DFU. Atmel предоставляет бесплатную утилиту FLIP, совместимую с USB AVR, и также есть open source (совместимая с Linux) альтернативная утилита, называемая "dfu-programmer".