Библиотека LUFA (раннее название MyUSB) версия 101122
|
LUFA поставляется с несколькими предварительно созданными базовыми драйверами платы, для управления аппаратурой, имеющейся на поддерживаемых платах - такой как микросхемы Dataflash IC, светодиоды LED, джойстики (в виде кнопок), или другая аппаратная периферия. Когда компилируется приложение, которое использует одно или несколько драйверов платы, размещенных в LUFA/Drivers/Board, Вам нужно также показать в makefile проекта, какую аппаратуру платы используете. Это делается путем определения макроса BOARD, передаваемого компилятору с использованием переключателя -D, в константу BOARD_{имя_платы}. Например, -DBOARD=BOARD_USBKEY инструктирует компилятор об использовании драйверов аппаратуры платы USBKEY.
Если Ваше приложение не использует *любые* драйверы уровня платы, можно опустить определение макроса BOARD. Однако некоторые пользователи могут захотеть написать собственные драйверы оригинальной аппаратуры, которые останутся совместимыми с LUFA API аппаратуры. Чтобы сделать это, должен быть определен макрос BOARD в значение BOARD_USER. Это указывает, что драйверы уровня платы должны размещаться в папке под названием "Board", имеющейся внутри корневой папки проекта.
Когда такая возможность используется, файлы заглушки драйвера, расположенные в папке LUFA/CodeTemplates/DriverStubs, должны быть скопированы в пользовательский папку Board/ и доработаны, чтобы включить переменные и код, необходимый для управления пользовательскими аппаратными средствами платы. Как только это выполнено, существующее LUFA API уровня платы (доступное обычно через папку LUFA/Drivers/Board/) будет перенаправлено к пользовательким драйверам платы, с сохранением совместимости кода, что позволяет выбирать различные платы через makefile проекта, без изменений в основном коде проекта.