реклама на сайте
подробности

 
 
> Прерывания в Microblaze
mikki
сообщение May 8 2007, 08:39
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 28-03-07
Пользователь №: 26 559



Всем привет.
Пытался завести прерывания по таймеру в собранной системе на Microblaze.
Для чего использую opb_taimer и opb_intc.
После некоторой заморочки с определением таймера и контроллера прерываний прерывания стали срабатывать.

Проблема в том что после того как одно прерывание сработало остальные запускаются самостоятельно.
И вот тут , что не делал ничего не помогает, просветите в какую сторону копать.
Может что в обработчик прерывания вставить, типа программный сброс какого битика.
help.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
CodeWarrior1241
сообщение May 8 2007, 13:39
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 496
Регистрация: 14-03-07
Из: In The District
Пользователь №: 26 165



Покажите interrupt код?


--------------------
In Mozilla, you keep tabs on your browser. In the USSR, your browser keeps tabs on you.
Go to the top of the page
 
+Quote Post
mikki
сообщение May 9 2007, 12:59
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 28-03-07
Пользователь №: 26 559



Да, всегда нашим пацанам нехватает чуть чуть времени...
Вобщем я разобрался сам.
Задал в гугле запрос handler(void *baseaddr_p ) и получил много ссылок на примеры обработки прерываний..


Оказалось, что надо опросить флаг срабатываниЯ прерывания в регистре, например, для таймера CSR, о том что случилось прерывание и потом его же записать в тот же регистр CSR.
Типа сгенерить acknowledge соответствующего прерывания.

В этом случае запрос на прерывание сбрасывается и прерывание не автозапускается.


Я попробывал это в случае использования ядра opb_intc. Как это будет в случае прямой генерации прерывания не пробовал, но думаю также.

Спасибо отозвавшимся, надеюсть что мой опыт пригодится начинающим, типра меня.
Go to the top of the page
 
+Quote Post
-=Vitaly=-
сообщение May 10 2007, 08:20
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 468
Регистрация: 31-08-06
Из: Киев
Пользователь №: 19 991



Цитата(mikki @ May 9 2007, 15:59) *
Спасибо отозвавшимся, надеюсть что мой опыт пригодится начинающим, типра меня.


С вашего позволения задам вопросик здесь, чтобы не плодить топиков.
Прикупил стартер борд на Спартане- 3Е. Поставил ЕДК 9.1 . Не могу ни в одном проекте сгенерировать нетлист пишет:

Код
Creating stub ...

ERROR:PersonalityModule:7 - Unable to open Xilinx data file for Vendor/Device
   Module "spartan3adspsd".  Please make sure that it has been correctly
   installed before continuing.

make: *** [implementation/microblaze_0_wrapper.ngc] Error 33


Взял пример из ЕДК, то же самое. В чем модет быть трабла??
СПС!!
Go to the top of the page
 
+Quote Post
LMT
сообщение May 10 2007, 15:38
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 22-02-07
Пользователь №: 25 599



Может, апдейты накатить ?
Go to the top of the page
 
+Quote Post
CodeWarrior1241
сообщение May 10 2007, 15:46
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 496
Регистрация: 14-03-07
Из: In The District
Пользователь №: 26 165



Цитата(LMT @ May 10 2007, 11:38) *
Может, апдейты накатить ?

Есть какие-то проблемы с ISE9.1 SP3... Совет LMT-a хороший, для EDK9.1 есть service pack.
http://www.xilinx.com/xlnx/xil_ans_display...eceihdffhdfjf.0


--------------------
In Mozilla, you keep tabs on your browser. In the USSR, your browser keeps tabs on you.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 01:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01382 секунд с 7
ELECTRONIX ©2004-2016