Библиотека LUFA (раннее название MyUSB) версия 101122
|
Если используемая модель AVR, частота тактов, плата или другие установки отличаются от текущих, они должны быть изменены и проект должен после этого перекомпилироваться их исходного кода, перед как его можно будет записать в микроконтроллер AVR. Большинство опций конфигурации проекта размещено в скрипте сборки "makefile", который имеется корневой папке каждого приложения LUFA, однако некоторые опции, специфические для демо или приложения (такие как выходной формат в демо AudioOut) размещны в одном или нескольких файлах исходного кода проекта. См. индивидуальную документацию каждого проекта для специфичных значений настроек приложения.
Каждый "makefile" проекта содержит все скрипты и данные конфигурации, необходимые для компилирования каждого проекта. Можно поменять настройки конфигурации сборки открытием и редактированием makefile в любом текстовом редакторе типа Notepad или WordPad (убедитесь, что формат, в котором файл будет сохранен, является чистым текстом ASCII).
Внутри каждого makefile размещено некоторое количество переменных конфигурации в формате "<ИМЯ ПЕРЕМЕННОЙ> = <ЗНАЧЕНИЕ>". Для каждого приложения имеются следующие важные переменные, которые можно поменять:
Эти значения должны быть изменены для того, чтобы сборка кода соответствовала аппаратуре.
Этот параметр показывает целевую модель AVR, для которой компилируется приложение. Должен быть установлен в соответствии с типом чипа AVR (таким как например AT90USB1287, или ATMEGA32U4), в нижнем регистре (маленькими буквами, например "at90usb1287"). Имейте в виду, что не все демки поддерживают все модели USB AVR, так как может использоваться периферия или режим, которые имеются не на всех чипах.
Для поддерживаемых моделей процессоров см. Поддержка устройств и аппаратуры.
Этот параметр показывает для компилируемого приложения целевую аппаратуру платы, на которой установлен AVR. Некоторые драйверы библиотеки LUFA зависят от платы, как например драйвер светодиодов (LED), и библиотеке нужно знать конфигурацию целевой платы. Если Вы используете одну из моделей плат, перечисленных на главной странице библиотеки, поменяйте этот параметр на имя платы, написанное в ВЕРХНЕМ регистре.
Если Вы не используете любые зависящие от платы драйвера из библиотеки LUFA, или испльзуете свою собственную конфигурацию платы, поменяйте этот параметр на значение "USER" (без кавычек) вместо стандартного имени платы. Если выбран тип платы USER, и приложение использует один или большее количество LUFA-драйверов аппаратуры, привязанной к плате, то должны быть скопироаны подходящие драйверы-заглушки из папки /BoardStubs/ в папку /Board/ внутри корневой папки приложения, и в заглушку драйвера должен быть дописан подходящий код для управления собственной аппаратурой платы.
Для плат, имеющих встроенную в библиотеку LUFA поддержку аппаратуры, см. Поддержка устройств и аппаратуры.
Этот параметр показывает входную тактовую частоту целевого AVR's в Гц. Это реальная тактовая частота, до предделителя (обычно это тактовая частота используемого кварцевого резонатора). В архитектуре USB AVR тактовая частота перед любым предделением поступает на прямо на подсистему PLL, таким образом PLL прямо зависит от тактового входа. Далее PLL питает USB и другие секции AVR корректными умноженными частотами, требуемыми для функционирования этих секций.
Имейте в виду, что эти значения не действительно *меняют* входную тактовую частоту AVR, это просто метод для указания библиотеке тактовой частоты AVR, как это установлено фьюзами AVR. Если значение не соответствует дейсвительной рабочей частоте AVR, то один или несколько компонентов библиотеки будут работать неверно.
Этот параметр показывает главную тактовую частоту в Гц ядра CPU целевого AVR.
Имейте в виду, что эти значения не действительно *меняют* тактовую частоту CPU AVR, это просто метод для указания библиотеке тактовой частоты ядра AVR, как это установлено фьюзами AVR. Если значение не соответствует дейсвительной рабочей частоте AVR, то один или несколько компонентов библиотеки будут работать неверно.
Многие приложения имеют особенности, которыми можно управлять путем задания специально именованных токенов препроцессора в точке компиляции - например, приложение может использовать токен времени компиляции для включения или выключения опциональных или взаимоисключающих порций кода. Токены для препроцессора можно определять здесь в виде списка с перечислением каждого токена с опцией -D командной строки, и каждый токен может быть опционально задан в определенное значение. Когда определения делаются в makefile проекта, они ведут себя так же, как если были бы определены через обычный оператор препроцессора (#define) в каждом из исходных файлов проекта.
Многие приложения имеют несколько строк/определений CDEF, которые соединяются друг с другом оператором "+=". Это обеспечивает читаемость для большого количества опций путем разбиения их на группы опций в отдельных строках.
Так как каждая программа LUFA нуждается в правильном компилировании исходного кода библиотеки LUFA, приложение должно знать, где находится библиотека LUFA. Этот параметр указывает значение пути до базового каталога библиотеки LUFA относительно пути расположения makefile проекта.
Этот параметр подобен параметру CDEFS, просто указанному в другом месте - реально удобное положение группирования токенов времени компиляции библиотеки в месте, отличающемся от группировки токенов времени компиляции приложения. Обычно эти опции менять не нужно, чтобы позволить приложению корректно компилироваться и запускаться на различных платах или AVR в текущей конфигурации - если опции некорректны, то демо наиболее вероятно несовместимо с выбранной моделью USB AVR и невозможно добиться его работы путем изменения каких-либо настроек makefile (или вообще ничего сделать нельзя). Здесь можно задать установки, такие как режим USB (устройство, хост или оба режима сразу - OTG), скорость интерфейса USB (Low или Full speed) и другие опции конфигурации LUFA - см. документацию Общая информация о токенах времени компиляции для подробностей по допустимым опциям времени компиляции LUFA.