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

 
 
> Вложенные прерывания на Microblaze, ISE 14.7
DenisKuzovin
сообщение Aug 3 2015, 07:48
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 6-03-12
Пользователь №: 70 659



Добрый день!

Не могу разобраться с одной проблемой. Есть у меня проект с Микроблейзом и контроллером прерываний (axi_intc 1.04.a). Так как используется ISE 14.7, то и версия контроллера прерывания соответствующая.

Хочу сделать многопоточную систему в процессоре. Есть несколько потоков, более высокоприоритетные могут прерывать более низкоприоритетные. Потоки создаются с помощью таймеров и прерываний. Соответственно необходимо, чтобы более высокоприоритетное прерывание прерывало текущее более низкоприоритетное прерывание, а не просто становилось в очередь.

Судя по всему, ближайшая реализация этого Xilinx появилась лишь в версии 4 axi_intc, доступной для Vivado, что нам не очень подходит..

Ткните носом, пожалуйста, может кто сталкивался с подобной проблемой, может кто видел реализацию вложенных прерываний на Microblaze в ISE 14.7?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DenisKuzovin
сообщение Jun 1 2016, 21:34
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 6-03-12
Пользователь №: 70 659



По всей видимости, проблема решилась и без особых трудозатрат.

Взял стандартный хендлер прерываний из BSP, который генерирует Vivado 2015.4. В этом хендлере есть работа с регистром ILR, который появился в AXI_INTC v4.1. Через него и организованы вложенные прерывания в новой версии контроллера прерываний. Работу данного регистра можно эмулировать программными средствами, вручную запрещая прерывания уровнями ниже или равным текущему в регистре IER. Кроме этого стандартный хендлер в каждом своём вызове сохраняет регистр r14 и восстанавливает его значение после своей работы.

Немного преобразовав работу стандартного хендлера, как написано выше, я получил нормальную работу вложенных прерываний в микроблейзе в ISE 14.7 на Virtex6.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 05:28
Рейтинг@Mail.ru


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