|
|
  |
драйвер GPIO, linux, реализация |
|
|
|
Nov 28 2011, 07:08
|
Частый гость
 
Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337

|
DpInRock, понимаю Вас прекрасно но если все же к реализации, то, наверное, следует создать файл устройства, например, /dev/led этот файл символьного устройства будет интерфейсным между пользователем и ядром, т.е. запись "1" в этот файл устройства даст на соответствующей ноге GPIO высокий сигнал, где прикручен светодиод, ну и, соответственно, наоборот, записывая "0" в /dev/led на ноге GPIO будет низкий сигнал. (смотря еще как подключен сам светодиод, но не в этом суть, главное - менять с высокого на низкий согнал и наоборот) все как бы понятно, но вот реализовать не получается, может кто поможет на примере!? хотя может быть можно и как то по другому реализовать интерфейс драйвера и еще, вроде бы та же задачка, но вместо диода - кнопка. как мне прерывание поймать и обработать?
|
|
|
|
|
Nov 28 2011, 09:59
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861

|
Код static struct gpio_led xxx_leds[] = { { .name = "red", .gpio = , }, { .name = "yellow", .gpio = , }, { .name = "green", .gpio = , .default_trigger= "heartbeat", }, { .name = "onboard", .gpio = , .default_trigger= "default-off", }, };
static struct gpio_led_platform_data xxx_led_data = { .num_leds = ARRAY_SIZE(xxx_leds), .leds = xxx_leds, };
static struct platform_device xxx_leds_device = { .name = "leds-gpio", .id = -1, .dev.platform_data = &xxx_led_data, }; ... platform_add_devices(&xxx_leds_device,1); Только вот появится он там же: /sys/class/leds/ . Не вижу проблем дергать ножками через /sys . Кнопки
--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
|
|
|
|
|
Nov 29 2011, 21:12
|

Местный
  
Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647

|
В теме последнее сообщение. Там пример программки моргания светодиодом через юзер-спейс и обработка внешнего прерывания через драйвер.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|