Я хочу запрограммировать микроконтроллер (AVR) для управления некоторыми светодиодами через USB. Это просто из интереса к тому, как создавать и программировать USB-устройства. Есть несколько микроконтроллеров AVR, которые поддерживают протокол USB, или я мог бы сам реализовать протокол USB в другом микроконтроллере, но мне интересно, что использовать для написания собственных драйверов на компьютере.
Мой уровень в системном программировании: полный нуб (отсюда и вопрос)
Итак, какую литературу вы могли бы посоветовать людям, чтобы получить хорошие знания о технологии USB и о том, как писать свои собственные драйверы и не только?
P.S.: Я знаю:
C (вероятно, он понадобится здесь)
Java (вероятно, здесь она не понадобится)
Python (надеюсь, можно использовать его здесь)
ассемблер (надеюсь, здесь он не понадобится XD).
...
P.P.S: разработка драйверов для разных ОС отличается. Я использую Linux и Windows, поэтому приветствуются любые материалы, относящиеся к одной или обеим этим системам.