Что такое at90usb162-cdc-1_0_1

Вступление.

at90usb162-cdc-1_0_1 – демострационные исходники от ATMEL для микроконтроллера с аппаратным USB-интерфейсом AT90USB162. Представляют из себя реализацию профиля COM-порта.

Первое впечатление.

Написано с моей точки зрения крайне ужасно. Проект можно размещать только в заданном каталоге (или править пути в cdc.aps). Структура проекта состоит большого числа папок с частично дублирующимися файлами. Сократить число папок простым удалением невозможно – ВСЕ участвуют в проекте. Разобраться даже во взаимосвязях исходных файлов очень трудно. Проект, с моей точки зрения, перегружен абстракциями. Некий планировщик задач Sheduler занимает две вложенные папки, состоит из двух файлов в них и дополнительного в папке conf для его настройки, а выполняет всего лишь последовательный вызов прописанных в нем функций. На переферийные устройства выделена отдельная папка lib_mcu в ней в подпапках лежат файлы на устройства. Более того, папка дублируется.

Объяснить такое можно несколькими способами:

  1. Я отстал от жизни, любой проект (даже небольшой) сейчас так выглядит.
  2. Исходники предназначены для написания очень больших проектов. Правда на AT90USB162 очень большой физически не реализуешь – размер памяти не позволит.
  3. ATMEL пишет схожие демострашки для различных контроллеров. Так удобнее их поддерживать.
  4. Это такой прикол. Не для средних умов. Вроде того что не разобрался – нечего загрязнять “эфир” своими поделками.

Спустя некоторое время.

Наоборот, написано хорошо. Абстракции выполняют роль драйверов и дают возможность переносимости проекта на другие МК. Если конечно у них есть похожий контроллер USB. Структура папок тоже вполне логична:

  • at90usb162
    Файлы для проектов на at90usb162
    • demo
      Демонстрационные примеры на МК at90usb162.
      • demo\XXX
        Проект под IAR
      • demo\XXX\conf
        Конфигурации проекта
      • demo\XXX\gcc
        Проекта под AVR Studio
    • lib_board
      Драверы под разные демонстрационные платы с данным МК.
    • lib_mcu
      Драйверы для конкретного МК at90usb162.
    • modules
      Программные модули, предназначенные в первую очередь под данный МК.
  • common
    Драйверы и программные модули, подходящие под различные МК.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *