Написание драйверов устройств для микроконтроллера (любого) - PullRequest
2 голосов
/ 19 февраля 2010

Я очень увлечен написанием драйверов устройств для микроконтроллера (таких как PIC, Atmel и т. Д.). Поскольку я новичок в этой области кодирования контроллера, я просто хочу знать, является ли написание драйверов устройств для контроллера таким же, как мы пишем для Linux (или любой другой ОС)?

Также кто-нибудь может предложить какое-нибудь интерактивное руководство по сборке драйверов устройств для того же ..?

Спасибо

Ответы [ 3 ]

3 голосов
/ 19 февраля 2010

Если вы думаете о разработке драйверов устройств для взаимодействия вашего устройства с хост-компьютером (возможно, с использованием USB), то в настоящее время большинство микроконтроллеров реализуют классы по умолчанию, которые полагаются на собственные драйверы.:

Если вы используете PIC18F4555, вы можете использовать обычный драйвер Windows HID (устройство интерфейса пользователя) для связи с вашим микроконтроллером (если вы правильно его реализовали).Нет необходимости разрабатывать драйвер.

2 голосов
/ 19 февраля 2010

Написание драйвера устройства для MCU довольно далеко от написания его для ОС. На большинстве микроконтроллеров вообще не будет работать ОС. Как правило, в конечном итоге вы пишете некоторые низкоуровневые подпрограммы обработки прерываний (ISR) и заполняете буферы, чтобы ваше прикладное программное обеспечение заканчивало опустошением. Вам не нужно вписываться в какую-либо парадигму драйвера устройства, определенную O / S. В основном вам нужно прочитать таблицу данных для устройства, с которым вы хотите взаимодействовать, и прочитать и записать в его память через любой интерфейс, который он может использовать (например, SPI, I2C, UART и т. Д.). В конечном итоге драйвер устройства должен обеспечивать интуитивно понятные вызовы функций для прикладного программного обеспечения.

0 голосов
/ 19 сентября 2017

Если вы используете AVR MCU, как Atmega, то вы можете использовать vusb (https://www.obdev.at/products/vusb/index.html) для тех MCU, которые не имеют HID и обрабатывают прерывания, подключая выводы D + и D- USB к цифровому I/ O порты MCU. Пакеты atmegaU2 имеют свои собственные порты связи USB и HID.

...