Мой собственный драйвер клавиатуры Linux и интерфейс для моего встроенного приложения

379
coolmadu

Я хочу разработать свой собственный драйвер клавиатуры для своей клавиатуры. Я должен использовать GPIO для идентификации ключевых событий и I2c для получения кода сканирования. Я собираюсь разработать драйвер, как это.

#include <linux/gpio.h>  #include <linux/interrupt.h>  #define GPIO 1 //gpio PIN ... if(gpio_request(GPIO, "Description")){ Exception }  gpio_direction_input(GPIO); ... int irq = 0; if((irq = gpio_to_irq(GPIO)) < 0 ){ Exception } …  int init_module(){ int result = request_irq(GPIO, handler_func, IRQF_TRIGGER_LOW,"Description", "Device id"); if(result){ Exception } }  void handler_func(...){ //get scan code via i2c } 

Мне нужно разработать интерфейс и выполнить следующие операции.

  На моей клавиатуре выведите «1abc» на [KEY1].
  1. При нажатии клавиши отобразите первые символы как есть -> «1».
  2. Для ввода трех других символов используются специальные комбинации клавиш.
     Например:
          операции клавишного ввода выполняются следующим образом;

          KEY1 (прямое нажатие) должно отображать «1»
          F1 + KEY1 (одновременное нажатие) должно отображать «a»
          F2 + KEY1 (одновременное нажатие) должно отображать «b»
          F3 + KEY1 (одновременное нажатие) должно отображать «c»

Моя проблема в том, как я должен разработать этот интерфейс?

1

0 ответов на вопрос

Похожие вопросы