Ник:
Пароль:

Контакты

Cтатус Skype: starterkit.ru
тел.: (+7 3412) 478-448
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
E-mail: info@starterkit.ru
Партнеры:
otladka.com.ua - г.Киев

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:3
Форум » starterkit.ru » Embedded Linux
проблема с прерываниями 9G45
alexmfivt
Добавлено 30.07.2014 05:10 Редактировалось 30.07.2014 08:21
0
Сообщение: 1
alexmfivt
0

Пункты: 3237
Регистрация: 07.11.2010
Пол: Мужчина
Из: Красноярск
в программе использую обработку прерывания на основе https://developer.ridgerun.com/wiki/index.php/Gpio-int-test.c

прерывания идут с частотой 50 герц. спустя некоторое время в отладочный компорт вываливается несколько одинаковых сообщений вида:
Bad IRQ4092589311
Bad IRQ4092589311
Bad IRQ4092589311
Bad IRQ4092589311
Bad IRQ4092589311
Bad IRQ4092589311
Bad IRQ4092589311
Bad IRQ4092589311
Bad IRQ4092589311
Bad IRQ4092589311


в программе других прерываний вроде нет. только SMC шина и сигналы-слоты из других потоков.

в чем может быть причина?

я так понял выполняется следующее:
65 void handle_IRQ(unsigned int irq, struct pt_regs *regs)
66 {
67 struct pt_regs *old_regs = set_irq_regs(regs);
68
69 irq_enter();
70
71 /*
72 * Some hardware gives randomly wrong interrupts. Rather
73 * than crashing, do something sensible.
74 */
75 if (unlikely(irq >= nr_irqs)) {
76 if (printk_ratelimit())
77 printk(KERN_WARNING "Bad IRQ%u\n", irq);
78 ack_bad_irq(irq);
79 } else {
80 generic_handle_irq(irq);
81 }
82
83 irq_exit();
84 set_irq_regs(old_regs);
85 }
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 30.07.2014 12:10 Редактировалось 30.07.2014 12:26 Сообщение: 2
sasamy
4.77

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

в чем может быть причина?


да в чем угодно :) прерывания от gpio - виртуальные, аппаратное прерывание одно на блок из 32 GPIO портов, возможно в атмеловской реализации gpio_chip где-то ошибка, возможно в коде для AIC. Какая у вас версия ядра ? В ядре у многих драйверов используются внешние прерывания от gpio - проблем вроде не замечал, так что возможно у вас в коде проблемы.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux