Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: "Подобие" прерываний NIOS на "обычный" процессор
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
misyachniy
Пол дня потратил на запуск прерывания от таймера(краснею от стыда ;-))

Оказалось что для первичного разрешения прерываний
нужно использовать

Код
  alt_irq_enable_all(NIOS2_STATUS_PIE_MSK);


А только потом использовать контекст возвращаемый при вызове alt_irq_disable_all (void).

Теперь хочу уяснить.

В "обычном" процессоре прерывание обычно блокирует все прерывания, до команды iret.
В NIOS также?
Stewart Little
Цитата(misyachniy @ Aug 7 2008, 13:50) *
В "обычном" процессоре прерывание обычно блокирует все прерывания, до команды iret.
В NIOS также?

А это смотря в каком "обычном" процессоре. Далеко не во всех ядрах прерывания блокируются. Вот в 51-м ядре все зависит от приоритета прерывания.
misyachniy
Цитата(Stewart Little @ Aug 7 2008, 18:37) *
А это смотря в каком "обычном" процессоре. Далеко не во всех ядрах прерывания блокируются. Вот в 51-м ядре все зависит от приоритета прерывания.


NIOS RISC процессор а не CISC.
Прервать обработку и затолкать в стек адрес возврата он не может(предполагаю а не утверждаю)
В ARM7(Atmel) для вложенности прерываний нужно предпринимать определенные программные ухищрения.
По моему у NXP было решение о выделение для каждого прерывания индивидуальных ячеек памяти(HW STACK).

По этому и переспрашиваю.

Если прерывания блокируются, то зачем приоритет?
Если вложеность допускается, то решается аппаратно или програмно?
Эти вопросы можно найти в документации.
Но еси кто недавно разбирался может по памяти подсказать.
Лень нужно лееять.
Она создала из обезьяны человека ;-)
Kuzmi4
2 misyachniy - на счёт реализции - я так думаю/ну почти уверен wink.gif , что реализация программная - посомтрите как там устроена регистрация прерывания..
Думаю раскопки в ф-циях разрешения/запрета прерывания дадут вам правильный ответ.
Stewart Little
У ниос2, по крайней мере в нынешней версии, нету аппаратного контроллера прерываний.
Имеется один адрес перехода по исключению, со смещением 0x20 в сегменте кода, если мне память не изменяет. А там обработчик должен определять, что явилось источником исключения (или прерывания), и принимать соотв. меры. Так что все там программно решается.
Там смотрели : Programming Model
Раздел Exception Processing
См. стр.35 : Table 3–31. Nios II Exceptions (In Decreasing Priority Order)

И еще там : Exception Handling
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.