Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
прерывания + linux + GPIO
alexmfivt
Добавлено 02.11.2012 10:40
0
Сообщение: 1
alexmfivt
0

Пункты: 3237
Регистрация: 07.11.2010
Пол: Мужчина
Из: Красноярск
Сломал голову. Есть код, который предположительно работает:

Код
/** Set pin as GPIO input, without internal pull up */
if(at91_set_gpio_input(AT91_PIN_PC12, 0)) {
printk(KERN_DEBUG"Could not set pin %i for GPIO input.\n", AT91_PIN_PC12);
}

/** Set deglitch for pin */
if(at91_set_deglitch(AT91_PIN_PC12, 1)) {
printk(KERN_DEBUG"Could not set pin %i for GPIO deglitch.\n", AT91_PIN_PC12);
}

/** Set the IRQ0 pin to Periph A */
at91_set_A_periph(AT91_PIN_PC12,0);

/** Request IRQ for pin */
if(request_irq(AT91SAM9260_ID_IRQ0, interrupt_handler_function, IRQF_TRIGGER_FALLING, "my_interrupt", NULL)) {
printk(KERN_DEBUG"Can't register IRQ %d\n", AT91_PIN_PC12);
return -EIO;
}


Как его скомпилить на ББ кросскомпилятором под G45 проц?

ЗЫ Прерывания будут с частотой 50 Гц.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 02.11.2012 11:13 Сообщение: 2
sasamy
4.71

Пункты: 83560
Регистрация: 14.08.2009
Это кусок кода из ядра, что такое ББ ?
Спуститься к концу Подняться к началу
Персональная информация
alexmfivt
Добавлено 02.11.2012 11:23 Сообщение: 3
alexmfivt
0

Пункты: 3237
Регистрация: 07.11.2010
Пол: Мужчина
Из: Красноярск
Цитата
Это кусок кода из ядра, что такое ББ ?


ББ - большой брат. Комп в общем.



Интересует возможность встроить ЭТОТ кусок кода в программу. Возможно ли такое?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 02.11.2012 11:36 Редактировалось 02.11.2012 11:39 Сообщение: 4
sasamy
4.71

Пункты: 83560
Регистрация: 14.08.2009
Именно этот кусок кода - нет, потому что ф-ции в юзерспейс ядром не экспортируются. Для GPIO в юзерспейс есть универсальный интерфейс

https://www.ridgerun.com/developer/wiki/index.php/How_to_use_GPIO_signals
Спуститься к концу Подняться к началу
Персональная информация
alexmfivt
Добавлено 06.11.2012 10:08 Сообщение: 5
alexmfivt
0

Пункты: 3237
Регистрация: 07.11.2010
Пол: Мужчина
Из: Красноярск
при выполнении команды:
echo rising > edge
вылетает ошибка:
setting trigger mode 1 for irq 121 failed (gpio_irq_type+0x0/0x20)

в чем может быть дело?
код взят с примера выше.
прерывания клавы обрабатываются нормально.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 06.11.2012 10:16 Редактировалось 06.11.2012 10:17 Сообщение: 6
sasamy
4.71

Пункты: 83560
Регистрация: 14.08.2009
Цитата

setting trigger mode 1 for irq 121 failed (gpio_irq_type+0x0/0x20)

в чем может быть дело?


предполагаю у вас процессор at91sam9xxx или подобный - у них контроллер GPIO может генерировать прерывания только по изменению состояния на входе, т.е. по обоим фронтам входного сигнала, соответсвенно нужно настраивать

echo both > edge
Спуститься к концу Подняться к началу
Персональная информация
alexmfivt
Добавлено 06.11.2012 10:35 Сообщение: 7
alexmfivt
0

Пункты: 3237
Регистрация: 07.11.2010
Пол: Мужчина
Из: Красноярск
а как часто можно обрабатывать прерывание?
с частотой 50 Гц сможет проц обработать/получить прерывания?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 06.11.2012 11:02 Сообщение: 8
sasamy
4.71

Пункты: 83560
Регистрация: 14.08.2009
Цитата

с частотой 50 Гц сможет проц обработать/получить прерывания?


Смотря какой процессор

http://www.at91.com/linux4sam/bin/view/Linux4SAM/RealTime#Latency_from_external_signal_thr
Спуститься к концу Подняться к началу
Персональная информация
alexmfivt
Добавлено 06.11.2012 11:10 Сообщение: 9
alexmfivt
0

Пункты: 3237
Регистрация: 07.11.2010
Пол: Мужчина
Из: Красноярск
g45
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 06.11.2012 11:14 Сообщение: 10
sasamy
4.71

Пункты: 83560
Регистрация: 14.08.2009
Цитата

g45


По ссылке есть бенчмарки для него.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux