|
alt_irq_register()? |
|
|
|
 |
Ответов
|
Feb 18 2012, 04:56
|
студент
   
Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712

|
Цитата(vadimuzzz @ Dec 27 2010, 09:14)  обычно там передается указатель на файл устройства, от которого приходит прерывание. если не нужен, можно 0 передавать. Доброго времени! Никак не получается вызвать свою процедуру по пррыванию. Сделал вроде все как описано, но не получается. В SOPC назначил приоритет, в NIOS SBT, регистрирую таким образом: CODE static void ISR_Name();
void Registration(alt_u32 base, alt_u8 irq_number) { contx.base = base; alt_irq_register(irq_number, &contx, ISR_Name); }
прерывание возникает каждую ms но не вызывается процедура ISR_Name... не заходит у меня туда отладчик... Как считаете, куда нужно обратить ещё внимание??? Можетчего-то забыл? Кстати, в руководстве описана функция alt_irq_register, которая располагается в файле <sys/alt_irq.h>, а реально я там не смог её найти, вместо неё описана функция alt_ic_isr_register()... Я сначало подумал, что на этапе компиляции даст ошибку, о том что данной функции нет, но нет...всё прошло нормально...И непоняно откуда он её берет...
--------------------
С Уважением...
|
|
|
|
|
Feb 18 2012, 06:50
|
Знающий
   
Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831

|
Цитата(Fynjisx @ Feb 18 2012, 14:56)  Кстати, в руководстве описана функция alt_irq_register, которая располагается в файле <sys/alt_irq.h>, а реально я там не смог её найти, вместо неё описана функция alt_ic_isr_register()... Я сначало подумал, что на этапе компиляции даст ошибку, о том что данной функции нет, но нет...всё прошло нормально...И непоняно откуда он её берет... alt_irq_register - это сейчас устаревшая функция, вместо нее спользуется alt_ic_isr_register. И функцию alt_irq_register выкинули из sys/alt_irq.h в файл, название которого сейчас не скажу - какой-то набор из слов "приватный" (prev), irq, alt, legacy. Можете все-таки найти функцию поиском. По существу вашей проблемы сказать что либо трудно. Остальные прерывания работают? Бит, соответствующий прерыванию в регистре ienable выставлен? Вы точно уверены, что флаг прерывания выставляется?
|
|
|
|
|
Feb 18 2012, 14:45
|
студент
   
Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712

|
Цитата(barabek @ Feb 18 2012, 09:50)  alt_irq_register - это сейчас устаревшая функция, вместо нее спользуется alt_ic_isr_register. И функцию alt_irq_register выкинули из sys/alt_irq.h в файл, название которого сейчас не скажу - какой-то набор из слов "приватный" (prev), irq, alt, legacy. Можете все-таки найти функцию поиском. понятно, спасибо... Цитата(barabek @ Feb 18 2012, 09:50)  Остальные прерывания работают? остальных пока нет, это первое... попробовал от системного таймера прерваться, для этого тоже зарегал функцию подобным образом...но такая же байда - кручусь в бесконечном цикле и ни каких намеков на переброс в функцию-обработчик... Цитата(barabek @ Feb 18 2012, 09:50)  Бит, соответствующий прерыванию в регистре ienable выставлен? Вы точно уверены, что флаг прерывания выставляется? да, в режиме отладки когда уже зарегил ф-ию, кручусь в бесконечном цикле и жду прерывания, ienable в окне registers при этом равен 1. Цитата(barabek @ Feb 18 2012, 09:50)  Вы точно уверены, что флаг прерывания выставляется? запрос прерывания точно выставляется, смотрел сигналтапом. Кстати это мой собственный компонент... Может чего то не так сделал? но в sopc в принципе только выставляю приоритет, а в sbt при регистрации использую базовый адрес компонента и номер запроса... грешил на свой компонент, что говорить, но у меня даже от таймера не получается прерваться... что то я не так пишу, какие еще тонкости могут быть??? может static не надо писать у функции обработчика или в режиме отладки невозможно попасть в обработчик по прерыванию... Если произойдет прерывание от таймера то куда нужно глядеть, на какой регистр?
--------------------
С Уважением...
|
|
|
|
|
Feb 19 2012, 01:08
|
Знающий
   
Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831

|
Цитата(Fynjisx @ Feb 19 2012, 00:45)  остальных пока нет, это первое... попробовал от системного таймера прерваться, для этого тоже зарегал функцию подобным образом...но такая же байда - кручусь в бесконечном цикле и ни каких намеков на переброс в функцию-обработчик... да, в режиме отладки когда уже зарегил ф-ию, кручусь в бесконечном цикле и жду прерывания, ienable в окне registers при этом равен 1. грешил на свой компонент, что говорить, но у меня даже от таймера не получается прерваться... что то я не так пишу, какие еще тонкости могут быть??? может static не надо писать у функции обработчика или в режиме отладки невозможно попасть в обработчик по прерыванию... Если произойдет прерывание от таймера то куда нужно глядеть, на какой регистр? Функции прерывания написаны в таком виде void COM_ISR(void * Context,alt_u32 id) (или при Enhansed void COM_ISR(void * Context) )? Соответствующий бит разрешения всех прерываний в регистре status выставлен? При возникновении (по сигналтапу или по "ЗубДаюВыставлен") флага прерывания соответствующий бит в ipending (такой же по номеру как и в ienable) возводится? И еще нужно попробовать поставить брекпоинт в обработчике прерываний alt_irq_handler. UPD А для таймера должен быть выставлен бит ITO и с приходом переполнения выставляется флаг TO. Все это можно посмотреть в memory. Добейтесь сперва работоспособности прерывания от таймера.
|
|
|
|
Сообщений в этой теме
juvf alt_irq_register()? Dec 27 2010, 06:04 juvf Цитата(vadimuzzz @ Dec 27 2010, 14:14) об... Dec 27 2010, 06:25     Fynjisx Давайте по порядку.
Цитата(barabek @ Feb 19 2... Feb 19 2012, 03:30      barabek Цитата(Fynjisx @ Feb 19 2012, 13:30) Дале... Feb 19 2012, 05:58       Fynjisx Цитата(barabek @ Feb 19 2012, 08:58) И бр... Feb 19 2012, 06:18        barabek Цитата(Fynjisx @ Feb 19 2012, 16:18) из о... Feb 19 2012, 06:27         Fynjisx Цитата(barabek @ Feb 19 2012, 09:27) Може... Feb 19 2012, 08:46          barabek А какая у Вас версия? А то у меня при переходе с 9... Feb 19 2012, 09:18           Fynjisx Цитата(barabek @ Feb 19 2012, 12:18) А ка... Feb 19 2012, 11:02 vadimuzzz Цитатачто значит "файл устройства"?
я не... Dec 27 2010, 07:11
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|