Написание драйверов устройств для микроконтроллера (любых)

StackOverflow https://stackoverflow.com/questions/2293864

  •  21-09-2019
  •  | 
  •  

Вопрос

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

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

Спасибо,

Это было полезно?

Решение

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

Конкретный пример:

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top